Форум » GUI » Вопросы новичка [MiniGUI] » Ответить

Вопросы новичка [MiniGUI]

Dima: MAIN окно не получило фокус ввода при запуске , почему ? Пример самодостаточный. [pre2] #include "minigui.ch" REQUEST HB_CODEPAGE_RU1251, HB_CODEPAGE_RU866, HB_LANG_RUWIN REQUEST HB_LANG_RUWIN REQUEST HB_LANG_RU866 Func Main() DEFINE WINDOW Form_0 AT 321 , 491 WIDTH 558 HEIGHT 175 TITLE "Почему окно не в фокусе при запуске ?" ; MAIN NOSIZE NOSYSMENU TOPMOST ON INIT {|| MdiMain()} DEFINE BUTTONex Button_1 ROW 32 COL 424 WIDTH 110 HEIGHT 28 CAPTION "Вход" ACTION { || ret:=.t., DoMethod("Form_0","Hide") , DoMethod("Form_1","show") } FONTBOLD .t. END BUTTONex DEFINE BUTTONex Button_2 ROW 71 COL 424 CAPTION "Отмена" ACTION { || DoMethod("Form_0","Release") } WIDTH 110 HEIGHT 28 FONTBOLD .t. END BUTTONex END WINDOW Form_0.Activate Form_0.Setfocus return nil ***************************** Func Mdimain() DEFINE WINDOW Form_1 at 0,0 ; WIDTH 200 HEIGHT 300 TITLE "MDI windows" ; MDI ; NOSHOW END WINDOW Form_1.Center Form_1.Activate Form_0.Release return [/pre2]

Ответов - 289, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

SergKis: PS Базы в utf-8, программа в 1251 hb сам будет делать перекодировку

SergKis: PS2 В примере Tsb_UserKeysEvent line 290 ставим свой вариант bmp :aSortBmp := { LoadImage("br_up"), LoadImage("br_dn") }

rvu: SergKis пишет: Нет. Треугольники - это зашитые в hmg bmp, можете вместо ни исп. свои варианты bmp. Но ведь в UTF-8 есть и просто треугольники. ▼▽ Их-то можно в текст вставлять?


rvu: SergKis пишет: Базы в utf-8, программа в 1251 hb сам будет делать перекодировку Кстати, мне это не очень нравится, я бы перекодировал сам. В базах у меня есть разные поля, и utf-8 и win-1251. SergKis пишет: Если у вас только русский В интерфейсе пока да, но в перспективе возможны разные языки. А в базах у меня что угодно.

SergKis: rvu пишет В интерфейсе пока да, но в перспективе возможны разные языки. А в базах у меня что угодно. Не забывайте HMG Ext. не уникодная и в одном контроле (font) разные языки не прокатят

SergKis: rvu пишет Их-то можно в текст вставлять? Вставлять можете только те символы, которые есть в используемом фонте контрола. Т.е. используя кодировку RU866 в контролах, можете исп. символы треугольников и вставлять в текст.

rvu: SergKis пишет: Не забывайте HMG Ext. не уникодная и в одном контроле (font) разные языки не прокатят Т.е. для каждого элемента свой font? Для которого его возможно задавать. Это, если я правильно ваш ответ понял. И, есть ли здесь ограничения по поддержке фонтов. Или не всякий язык вообще можно использовать?

SergKis: rvu пишет Т.е. для каждого элемента свой font? Для которого его возможно задавать. Это, если я правильно ваш ответ понял. Контрол имеет только один назначенный фонт, к примеру[pre2] #command @ <row>,<col> LABEL <name> ; ... [ FONT <fontname> ] ; [ SIZE <fontsize> ] ; [ <bold : BOLD> ] ; [ <italic : ITALIC> ] ; [ <underline : UNDERLINE> ] ; [ <strikeout : STRIKEOUT> ] ; ... [/pre2] т.е. 2а назначить не можете, имеем контрол -> язык. Для разных языков в фонте исп. charset [pre2] #command DEFINE FONT <name> ; FONTNAME <fontname> ; [ SIZE <fontsize> ] ; [ <bold : BOLD> ] ; [ <italic : ITALIC> ] ; [ <underline : UNDERLINE> ] ; [ <strikeout : STRIKEOUT> ] ; [ CHARSET <charset> ] ; [ ANGLE <Angle> ] ; [ <default : DEFAULT> ] ; => ; _DefineFont ( ; <"name">, ; <fontname>, ; <fontsize>, ; <.bold.>, ; <.italic.>, ; <.underline.>, ; <.strikeout.>, ; <Angle>, ; <.default.>, ; <charset> ) [/pre2] Тогда создав для разных языков свои фонты с charset используете их по имени в контролах по конкретному языку и данные в контрол даете в нужной языковой кодировке

rvu: SergKis пишет: Это что?

SergKis: Это 2а фонта контролу не назначить

rvu: Очередные вопросы накопились: Нажимаю F1, появляется "Почему не удается получить справку по этой программе? Справка для этой программы была создана в формате справки Windows, который зависит от компонента, не входящего в данную версию Windows...." Как это убрать? Можно ли по F1 сделать вызов своей справки? Наверное, можно, но как? Как вообще можно использовать клавиши F?

SergKis: rvu пишет Как вообще можно использовать клавиши F? 1. Посмотрите примеры BASIC\ButtnEx_DinamicMenu\*.prg строки такие [pre2] ... IF ! Empty( aN ) // Define HotKey IF HB_ISARRAY( aN ) FOR nK := 1 TO Len( aN ) _DefineHotKey( This.Name , 0 , aN[ nK ] , hb_MacroBlock( "_wPost(2, , '"+cN+"')" ) ) NEXT ELSE _DefineHotKey( This.Name , 0 , aN , hb_MacroBlock( "_wPost(2, , '"+cN+"')" ) ) ENDIF ENDIF nY += nBtnH + nG // Row следующей кнопки NEXT ON KEY F10 ACTION _wPost(10) ... 2. Если на окне TsBrowse то я предпочитаю, клавиши ставить на него и держать тсб всегда в фокусе, при работе с окном, т.к. иногда клавиши по ON KEY ... перехватывает Far, с тсб такого не происходит. Advanced\Tsb_UserKeysEvent\demo.prg ... :bLDblClick := {|up1,up2,nfl,obr | up1 := up2 := nfl := Nil, ; obr:PostMsg( WM_KEYDOWN, obr:nFireKey, 0 ) } :UserKeys(VK_RETURN , {|obr | obr:PostMsg( WM_KEYDOWN, obr:nFireKey, 0 ) }) :UserKeys(VK_F2 , {|obr,nky,cky| Rec_Addr(obr,nky,cky)}) :UserKeys(VK_F3 , {|obr,nky,cky| Rec_Delr(obr,nky,cky)}) :UserKeys(VK_F5 , {|obr,nky,cky| Rec_Prn1(obr,nky,cky)}) :UserKeys(VK_F6 , {|obr,nky,cky| Rec_Ordn(obr,nky,cky)}) :UserKeys(VK_F7 , {|obr,nky,cky| Rec_Find(obr,nky,cky)}) :UserKeys(VK_F8 , {|obr,nky,cky| Rec_Expo(obr,nky,cky)}) :UserKeys(VK_F9 , {|obr,nky,cky| Set_Mode(obr,nky,cky)}) ... [/pre2]

SergKis: PS вариант для F1[pre2] :UserKeys(VK_F1 , {|obr,nky,cky| Msg_Keys(obr,nky,cky), .T.}) ... END TBROWSE ON KEY F1 ACTION oBrw1:PostMsg( WM_KEYDOWN, VK_F1, 0 ) ... [/pre2]

rvu: Есть картинка: @ <nRow> ,<nCol> IMAGE <ControlName> Кликаю, вызываю функцию. Можно ли определить в какое именно место картинки я кликнул?

gfilatov2002: rvu пишет: определить в какое именно место картинки я кликнул Лови рабочий пример: [pre2] #include "MiniGUI.ch" PROCEDURE Main() LOCAL nWidth, nHeight IF GetImageInfo( "logo.jpg", @nWidth, @nHeight ) DEFINE WINDOW Form_1 ; MAIN ; CLIENTAREA nWidth, nHeight + 30 ; TITLE "Test a mouse click on the one picture which is divided into 3 parts (" + __FILE__ + ")" @ 0,0 IMAGE Img_Logo PICTURE "logo.jpg" WIDTH nWidth HEIGHT nHeight ; ON MOUSEHOVER RC_CURSOR( "MINIGUI_FINGER" ) ; ACTION Determine_the_portion_of_the_picture() END WINDOW CENTER WINDOW Form_1 ACTIVATE WINDOW Form_1 ENDIF RETURN ///////////////////////////////////////////////////////////////////////////// #ifdef __XHARBOUR__ #define ENUMINDEX hb_EnumIndex() #else #define ENUMINDEX aPart:__EnumIndex #endif PROCEDURE Determine_the_portion_of_the_picture() STATIC aImage := {} LOCAL nY, nX, aCoords := GetCursorPos() LOCAL cMsg, aPart, nLeft, nWidth IF Empty( aImage ) AADD( aImage, { 0,000,149,200, "Part 1 of a picture" } ) AADD( aImage, { 0,202,149,488, "Part 2 of a picture" } ) AADD( aImage, { 0,693,149,239, "Part 3 of a picture" } ) ENDIF nY := aCoords[1] - Form_1.Row - GetTitleHeight() - GetBorderHeight() nX := aCoords[2] - Form_1.Col - GetBorderWidth() cMsg := "Pos y: " + hb_NtoS( nY ) + " Pos x: " + hb_NtoS( nX ) FOR EACH aPart IN aImage nLeft := aPart[2] nWidth := aPart[4] IF nX > nLeft .AND. nX < nLeft + nWidth cMsg += CRLF + CRLF + "Area #" + HB_NtoS( ENUMINDEX ) cMsg += CRLF + CRLF + aPart[5] MsgInfo( cMsg ) ENDIF NEXT RETURN STATIC FUNCTION GetImageInfo( cPicFile, nPicWidth, nPicHeight ) LOCAL aSize := hb_GetImageSize( cPicFile ) nPicWidth := aSize[1] nPicHeight := aSize[2] RETURN ( nPicWidth > 0 ) [/pre2]

rvu: Спасибо!

rvu: А можно в AlertInfo() убрать иконку? Как костыль могу прописать пустую, тогда ее не видно, но и текст сдвинут некрасиво.

SergKis: rvu AlertInfo( "MessageBox Info", "INFO", , 0 )

rvu: SergKis пишет: AlertInfo( "MessageBox Info", "INFO", , 0 ) Спасибо! Т.е. nSize к иконке относится. Так сразу и не догадаешься...

SergKis: rvu пишет Так сразу и не догадаешься... 10.05.20 08:59. SergKis пишет Предложение по hmg_alert(), AlertInfo() и др. - hmg_alert() значение nIcoSize сделать равным 0, тогда на окне нет DRAW ICO ... - в AlertInfo(), AlertExclamation(), AlertStop() добавить параметр lNoPlay, для отключения звук. сигнала gfilatov2002 пишет Все правки приняты



полная версия страницы