Автор | Сообщение |
|
| постоянный участник
|
Пост N: 3144
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.12.13 23:55. Заголовок: А можно ли в Xbrowse показывать BMP 32x32 ?
Доброй ночи пользователям FiveWin ! Можно ли в таблице показывать BMP 32x32 24bit ? И как это выглядит (код и пример готовый) ? Покажите пожалуйста неразберающемуся в FiveWin... Заранее огромное спасибо...
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 137
Зарегистрирован: 29.05.10
|
|
Отправлено: 08.12.13 10:04. Заголовок: Andrey пишет: Добро..
Andrey пишет: цитата: | Доброй ночи пользователям FiveWin ! Можно ли в таблице показывать BMP 32x32 24bit ? И как это выглядит (код и пример готовый) ? |
| Доброе утро :) Можно в бровсе показывать разные картинки(по размеру). И примеры у Вас есть. Они лежат в "примерах". Вариантов несколько . Например так - @ 0,0 XBROWSE oBrw ; COLUMNS "First", "City", "State", "Married", "HireDate", "Age", "Salary" ; PICTURES ,,,,,,"999,999,999.99" ; // nil or ommit for default formatting OF ownd ; // automatic justification OBJECT oCust ; FOOTERS FASTEDIT ; AUTOSORT ; LINES CELL WITH OBJECT oBrw:Salary :nFooterType := AGGR_TOTAL :bLClickFooter := { |r,c,f,o| FooterAggrClick( r, c, f, o ) } END // Computed Column. Add Column depending on Salary oBrw:NewSalary := { || oBrw:Salary:Value * 1.1 } WITH OBJECT oBrw:NewSalary :cHeader := 'NewSalary' :nFooterType := AGGR_TOTAL :cEditPicture := oBrw:Salary:cEditPicture :bLClickFooter := { |r,c,f,o| FooterAggrClick( r, c, f, o ) } END WITH OBJECT oBrw:Married :cHeader := "MStat" :SetCheck( { "USERS", "..\bitmaps\32x32\user.bmp" }, .t. ) END AEval( oBrw:aCols, { |o| o:cToolTip := { 'Column :' + CRLF + o:cHeader, 'ToolTip' }, ; o:nEditType := EDIT_GET } ) WITH OBJECT oBrw :MoveCol( oBrw:Salary, oBrw:NewSalary ) :bPopUp := { |o| ColMenu( o ) } :MakeTotals() :CreateFromCode() END oWnd:oClient := oBrw Здесь картинка работает , как чекбокс. А можно "в процессе" подгружать картинки - @ 0,0 XBROWSE oBrw OF oDlg columns {1,2,3}; Array aArray sizes {100,300, 100} LINES CELL autocols fastedit oBrw:nMarqueeStyle := 1 oBrw:nRowHeight := 100 oBrw:aCols[ 1 ]:nEditType := TYPE_IMAGE oBrw:aCols[ 1 ]:lBmpStretch := .t. oBrw:aCols[ 1 ]:lBmpTransparent := .t. oBrw:aCols[ 1 ]:bStrImage := {|oCol, oBrw| oBrw:aRow[ 2 ] } oBrw:aCols[ 1 ]:nDataBmpAlign := AL_CENTER oBrw:aCols[ 1 ]:bPopUp := { |o| ColMenu( o ) } oBrw:aCols[ 2 ]:nEditType := EDIT_BUTTON oBrw:aCols[ 2 ]:bEditBlock := {|nRow, nCol, oCol| oCol:Value := cGetFile( "*.*", "Select a file" ) } oBrw:aCols[ 3 ]:nEditType := 1 oBrw:aCols[ 3 ]:bOnPostEdit := {|oCol, xVal, nKey| if ( alltrim( xVal ) == "1", oBrw:nMoveType := 5, oBrw:nMoveType := 6 ), oCol:Value( xVal ) } Ну и другие варианты ....
|
|
|
|
| постоянный участник
|
Пост N: 138
Зарегистрирован: 29.05.10
|
|
Отправлено: 08.12.13 10:50. Заголовок: С альфа каналом.... ..
С альфа каналом....
|
|
|
|
| постоянный участник
|
Пост N: 3145
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.13 18:53. Заголовок: ММК Спасибо БОЛЬШОЕ ..
ММК Спасибо БОЛЬШОЕ !!!
|
|
|
|
| постоянный участник
|
Пост N: 3146
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.13 19:03. Заголовок: А есть ли в FiveWin ..
|
|
|
|
| |
Пост N: 192
Зарегистрирован: 17.06.10
|
|
Отправлено: 08.12.13 21:07. Заголовок: Специальной функции ..
Специальной функции вроде нет, но как сделать могу скинуть примерчик
|
|
|
|
| |
Пост N: 3749
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.13 21:43. Заголовок: fil пишет: Специаль..
fil пишет: цитата: | Специальной функции вроде нет, но как сделать могу скинуть примерчик |
| Сюда и скинь если не сложно :)
|
|
|
|
| |
Пост N: 193
Зарегистрирован: 17.06.10
|
|
Отправлено: 08.12.13 21:47. Заголовок: #INCLUDE "FiveWi..
#INCLUDE "FiveWin.ch" #include "xbrowse.ch" Function Main() local ico, oIcon, oWnd, aRet aArr_g := {} for nI := 1 to 5 aadd( aArr_g, { "", Space( 50 ), 0 } ) next DEFINE WINDOW oWnd FROM 0, 0 TO 30, 60 TITLE "Test" @ 0,0 XBROWSE oBrw OF oWnd columns {1, 2, 3}; Array aArr_g sizes {100, 250, 1} LINES CELL autocols fastedit oBrw:nMarqueeStyle := 1 oBrw:nRowHeight := 33 // oBrw:aCols[ 1 ]:lBmpStretch := .t. oBrw:aCols[ 1 ]:lBmpTransparent := .t. oBrw:aCols[ 1 ]:nDataBmpAlign := AL_CENTER oBrw:aCols[ 1 ]:bStrData := {|| NIL } oBrw:aCols[ 1 ]:bBmpData := {| | oBrw:aRow[ 3 ] } oBrw:aCols[ 2 ]:nEditType := EDIT_BUTTON oBrw:aCols[ 2 ]:bEditBlock := {|nRow, nCol, oCol| aRet := file_load( oCol ), ; oBrw:aRow[ 3 ] := aRet[ 1 ],; oBrw:aRow[ 2 ] := aRet[ 2 ] } oBrw:aCols[ 3 ]:lHide := .T. oWnd:oClient := oBrw oBrw:CreateFromCode() ACTIVATE WINDOW oWnd //on paint( PalBmpDraw( hDC, 0, 0, hBmp ) ) return nil /*------------------------------------------------------------------------*/ FUNC file_load( oCol ) loca cname local hBmp local aRet local nIndex := 0 cname := cGetFile( "*.*", "Select file" ) if cname != NIL ico := EXTRACTASSICON( 0, cname, @nIndex ) hBmp := BmpFromIcon( ico ) oCol:oBrw:aCols[ 1 ]:AddBmpHandle( hBmp ) aRet := { Len( oCol:oBrw:aCols[ 1 ]:aBitmaps ), cName } endif RETURN aRet #pragma BEGINDUMP #include <hbapi.h> #include <windows.h> HB_FUNC( EXTRACTASSICON ) { HICON hIcon; LONG hInstance = hb_parnl( 1 ); char * lpIconPath = ( char * ) hb_parc( 2 ); WORD lpiIcon = hb_parnl( 3 ); hIcon = ExtractAssociatedIcon( ( HINSTANCE ) hInstance, lpIconPath, &lpiIcon ); hb_stornl( lpiIcon, 3 ); hb_retnl( ( LONG ) hIcon ); } HB_FUNC( ICON_EXEREAD ) { SHFILEINFO sfi; ZeroMemory(&sfi, sizeof(SHFILEINFO)); SHGetFileInfo(hb_parc(1), 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON ); hb_retnl( ( LONG ) sfi.hIcon ); } HB_FUNC( BMPFROMICON ) { HICON hIcon = ( HICON ) hb_parnl( 1 ); HDC HDCMem = GetDC( GetDesktopWindow() ); HDC hDC = CreateCompatibleDC( HDCMem ); HBITMAP hBitmap = CreateCompatibleBitmap(HDCMem, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)); HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDC, hBitmap); DrawIcon(hDC, 0, 0, hIcon); SelectObject(hDC, hOldBitmap); DeleteDC(hDC); hb_retnl( ( LONG ) hBitmap ); } #pragma ENDDUMP ************************************************* DLL32 FUNCTION GCP_ID() AS LONG ; PASCAL FROM "GetCurrentProcessID" LIB "kernel32.dll" DLL32 FUNCTION ExtractAssociatedIcon( hIns AS LONG, cPth AS LPSTR, nInd AS LONG ) ; AS LONG PASCAL FROM "ExtractAssociatedIconA" LIB "SHELL32.DLL"
|
|
|
|
| постоянный участник
|
Пост N: 3147
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.13 21:59. Заголовок: fil пишет: сделать..
fil пишет: цитата: | сделать могу скинуть примерчик |
| А готовый ехе-ник можешь скинуть, для просмотра ? А то еще не собирал ни разу примеры на FiveWin'e.
|
|
|
|
| |
Пост N: 194
Зарегистрирован: 17.06.10
|
|
Отправлено: 08.12.13 22:12. Заголовок: http://files.mail.ru..
|
|
|
|
| постоянный участник
|
Пост N: 3148
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.13 22:42. Заголовок: fil пишет: В колонк..
fil пишет: цитата: | В колонке А будет его иконка |
| Спасибо БОЛЬШОЕ ! Только небольшое уточнение: ico := EXTRACTASSICON( 0, cname, @nIndex ) hBmp := BmpFromIcon( ico ) А как получить не Хендл bmp, а сам bmp - для показа на форме ? fil пишет: цитата: | ************************************************* DLL32 FUNCTION GCP_ID() AS LONG ; PASCAL FROM "GetCurrentProcessID" LIB "kernel32.dll" DLL32 FUNCTION ExtractAssociatedIcon( hIns AS LONG, cPth AS LPSTR, nInd AS LONG ) ; AS LONG PASCAL FROM "ExtractAssociatedIconA" LIB "SHELL32.DLL" |
| И что это за уточнение ?
|
|
|
|
| |
Пост N: 3750
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.13 23:13. Заголовок: Andrey пишет: А то ..
Andrey пишет: цитата: | А то еще не собирал ни разу примеры на FiveWin'e. |
| С этого и начни а то смысла нет подобные вопросы задавать на мой взгляд ;)
|
|
|
|
|
| постоянный участник
|
Пост N: 3149
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.13 23:25. Заголовок: Dima пишет: С этого..
Dima пишет: цитата: | С этого и начни а то смысла нет подобные вопросы задавать на мой взгляд ;) |
| Да я на МиниГуи эти функции хочу использовать... А в лоб при использовании: #pragma BEGINDUMP ..... #pragma ENDDUMP Функция HB_FUNC( EXTRACTASSICON ) - что то не работает в МиниГуи... Я уже неделю разбираюсь....
|
|
|
|
| постоянный участник
|
Пост N: 139
Зарегистрирован: 29.05.10
|
|
Отправлено: 09.12.13 10:03. Заголовок: Andrey пишет: Да я ..
Andrey пишет: цитата: | Да я на МиниГуи эти функции хочу использовать... |
| :)
|
|
|
|
| постоянный участник
|
Пост N: 3150
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.13 11:17. Заголовок: Вот неработающий код..
|
|
|
|
| moderator
|
Пост N: 531
Зарегистрирован: 11.02.10
|
|
Отправлено: 09.12.13 17:16. Заголовок: Andrey пишет: Подск..
Andrey пишет: Отправил исправленный пример по почте
|
|
|
|
| постоянный участник
|
Пост N: 412
Зарегистрирован: 13.10.05
|
|
Отправлено: 09.12.13 17:29. Заголовок: А почему по почте? А..
А почему по почте? А не ссылочку выложить?
|
|
|
|
| |
Пост N: 114
Зарегистрирован: 20.02.11
|
|
Отправлено: 12.12.13 10:41. Заголовок: присоединяюсь к вопр..
присоединяюсь к вопросу, тоже хотелось бы глянуть на "исправленный пример"
|
|
|
|
| moderator
|
Пост N: 532
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.12.13 11:39. Заголовок: Haz пишет: хотелось..
Haz пишет: цитата: | хотелось бы глянуть на "исправленный пример" |
| Хотя и не в "своей" теме, но если есть интерес... Скрытый текст
/* * MINIGUI - Harbour Win32 GUI library Demo * */ #include "minigui.ch" ///////////////////////////////////////////////////////////////////// FUNCTION Main() LOCAL cTitle := 'Icon associated with the file type' LOCAL nY := 30, nX := 20 DEFINE WINDOW Form_File ; At 0, 0 ; WIDTH 500 ; HEIGHT 350 ; ICON "1MAIN" ; TITLE cTitle ; MAIN ; NOSIZE ; FONT 'Tahoma' SIZE 12 @ nY, nX LABEL Label_Clear WIDTH 460 HEIGHT 100 BACKCOLOR WHITE @ nY, nX+5 FRAME Frame_File ; CAPTION " File info " ; WIDTH 450 HEIGHT 95 ; FONTCOLOR RED BACKCOLOR WHITE @ nY+35,nX+20 IMAGE Image_File PICTURE 'TEST' WIDTH 32 HEIGHT 32 @ nY+42,nX+60 LABEL Label_File VALUE 'test file' WIDTH 400 HEIGHT 20 BACKCOLOR WHITE @ nY+35,nX+20 BUTTON BTN_EXE ICON '' EXTRACT 0 WIDTH 36 HEIGHT 36 INVISIBLE @ 200, 60 BUTTONEX Button_Copy ; WIDTH 180 HEIGHT 80 ; CAPTION 'Select to file' ; NOHOTLIGHT ; UPPERTEXT LEFTTEXT NOXPSTYLE ; FONTCOLOR WHITE BOLD ; BACKCOLOR { 35,179, 15} ; ACTION MyGetFile() @ 200, 260 BUTTONEX Button_Exit; WIDTH 180 HEIGHT 80 ; ICON "iExit" ; CAPTION 'Exit' ; NOHOTLIGHT ; UPPERTEXT LEFTTEXT NOXPSTYLE ; FONTCOLOR WHITE BOLD ; BACKCOLOR {254, 73, 83} ; ACTION Form_File.Release() END WINDOW ico:=ICON_EXEREAD(hb_ArgV(0)) SetImageControl ( "Form_File", "Image_File", BmpFromIcon( ico ) ) DEFINE BKGBRUSH Brush_1 PATTERN IN Form_File BITMAP WALL CENTER WINDOW Form_File ACTIVATE WINDOW Form_File RETURN NIL ///////////////////////////////////////////////////////////////////// // ЏаЁЄаҐЇЁвм д ©«л Є ЇЁбм¬г PROCEDURE MyGetFile() LOCAL aFiles, cFile, bmpPict LOCAL nIndex, ico, hBmp aFiles := GetFile( { {"‚бҐ д ©«л", "*.*"}, ; {"’ҐЄбвл Їа®Ја ¬¬", "*.prg;*.ch"}, {"‚бҐ д ©«л MSOFFICE", "*.doc;*.rtf;*.docx;*.odt;*.xls;" } }, ; "‚лЎҐаЁвҐ д ©«л", GetCurrentFolder() , .T. ) IF LEN( aFiles ) > 0 cFile := aFiles[1] Form_File.Label_File.Value := alltrim( cFile ) nIndex := 0 ico := EXTRACTASSICON( 0, cFile , @nIndex ) hBmp := BmpFromIcon( ico ) // нв® ў®§ўа в •…Ќ„‹Ђ bmp SetImageControl ( "Form_File", "Image_File", hBmp ) ENDIF RETURN ///////////////////////////////////////////////////////////////////////////// *-----------------------------------------------------------------------------* Static Procedure SetImageControl (cFormName, cControlImageName, hBitmap) *-----------------------------------------------------------------------------* Local hWnd, k k := GetControlIndex (cControlImageName, cFormName) IF k > 0 IF _HMG_aControlBrushHandle [k] <> 0 DeleteObject (_HMG_aControlBrushHandle [k]) ENDIF _HMG_aControlBrushHandle [k] := hBitmap hWnd := GetControlHandle (cControlImageName, cFormName) #define STM_SETIMAGE 0x0172 #define IMAGE_BITMAP 0 SendMessage (hWnd, STM_SETIMAGE, IMAGE_BITMAP, hBitmap) #undef IMAGE_BITMAP #undef STM_SETIMAGE ENDIF Return #pragma BEGINDUMP #include "hbapi.h" #include "windows.h" #include <shellapi.h> extern HBITMAP Icon2Bmp( HICON hIcon ); HB_FUNC( EXTRACTASSICON ) { HICON hIcon; LONG hInstance = hb_parnl( 1 ); char * lpIconPath = ( char * ) hb_parc( 2 ); WORD lpiIcon = hb_parnl( 3 ); hIcon = ExtractAssociatedIcon( ( HINSTANCE ) hInstance, lpIconPath, &lpiIcon ); hb_stornl( lpiIcon, 3 ); hb_retnl( ( LONG ) hIcon ); } HB_FUNC( ICON_EXEREAD ) { SHFILEINFO sfi; ZeroMemory(&sfi, sizeof(SHFILEINFO)); SHGetFileInfo(hb_parc(1), 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON ); hb_retnl( ( LONG ) sfi.hIcon ); } HB_FUNC( BMPFROMICON ) { HICON hIcon = ( HICON ) hb_parnl( 1 ); hb_retnl( ( LONG ) Icon2Bmp( hIcon ) ); } #pragma ENDDUMP
|
|
|
|
|
| постоянный участник
|
Пост N: 3532
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.14 16:25. Заголовок: Народ, поделитесь ва..
Народ, поделитесь вашими рабочими скриншотами навигации для XBROWSE ? Хочется посмотреть, проанализировать для себя. Заранее спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 165
Зарегистрирован: 29.05.10
|
|
Отправлено: 05.08.14 10:55. Заголовок: чисто для навигации ..
чисто для навигации набор достаточно конкретный и ограниченный, поэтому ,что бы он не "путался" с остальными размещаю его вертикально. Да так он и больше "стыкуется" с управлением с клав-ры. 1.Самый простой вариант [ 2. Не обязательно распологать управление рядом с бровсом. Вот в таком виде использую одно меню для разных бровсов(закладок) Естествено работает управление на уровне заголовко (например для выбора сортировки ) с соответствующей индикацией 3. При необходимости дополнителных операций с данными добавляю горизонтальное . Меньше кнопок в одном месте -легче искать нужную ....(подсказки работают) 4. Иногда в "управление" добавляю get'ы (в данном примере это процент запаса ) 5. Более сложный вариант, когда в бровсе используется "дерево" и одновременно несколько бровсов "управляет друг другом" Здесь даже внешнее меню "помогает" ;( 6. и если совсем уж хочется "потворить2 можно и такое ....
|
|
|
|
| постоянный участник
|
Пост N: 3535
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.08.14 15:24. Заголовок: Спасибо ! :sm36: ..
Спасибо !
|
|
|
|
|
| постоянный участник
|
Пост N: 5256
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.12.16 13:14. Заголовок: ММК пишет: TsBrows ..
ММК пишет: цитата: | TsBrows перестали использовать т.к. появился xBrows и вопросы отпали :) |
| С FW слабо знаком, а с xBrows тем более... Просвети пожалуйста немного о xBrows (лицензия, чем отличается и т.д.) !
|
|
|
|
| |
Пост N: 6214
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.12.16 14:15. Заголовок: Михаил просвети Андр..
Михаил просвети Андрея
|
|
|
|
| постоянный участник
|
Пост N: 265
Зарегистрирован: 29.05.10
|
|
Отправлено: 18.12.16 19:52. Заголовок: Dima пишет: Михаил ..
Dima пишет: Слушаюсь! Сейчас спою... Все ,что есть в TS есть и в XB . Точнее это всего лишь часть возможностей XB. Но бровс не существует вне среды, поэтому перенести его не получится т.к. минигуи все это не потянет поэтому наверное на этом можно было бы и закончить :)) Родился этот бровс в Индии, там и растет. Бывают проблемы при появлении новых возможностей, каких то системных изменениях, но они не критичны и быстро устаканиваются. В общем впечатление приятное. На такую ситуацию, как в TS не нарывался-видимо просто везет :) Перепробовать все возможности не получается - не хватает терпения. Давно уже казалось, что ничего нового быть не может ан нет - появляется. Андрей , на Ваши конкретные вопросы отвечу в той теме где Вы их задавали.
|
|
|
Ответов - 24
, стр:
1
2
All
[только новые]
|
|