Автор | Сообщение |
|
| постоянный участник
|
Пост N: 3144
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.12.13 23:55. Заголовок: А можно ли в Xbrowse показывать BMP 32x32 ?
Доброй ночи пользователям FiveWin ! Можно ли в таблице показывать BMP 32x32 24bit ? И как это выглядит (код и пример готовый) ? Покажите пожалуйста неразберающемуся в FiveWin... Заранее огромное спасибо...
|
|
|
Новых ответов нет
, стр:
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 можно и такое ....
|
|
|
Новых ответов нет
, стр:
1
2
All
[см. все]
|
|