Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... (продолжение) » Ответить

Примеры из Минигуи -ошибки, вопросы..... (продолжение)

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \MiniGUI\SAMPLES\Advanced\DisplayMode - не работает под ХР и далее.... Пример: \MiniGUI\SAMPLES\Advanced\Tsb_filter - вылетает на ХР -------------------------------------------------------------------------------- Harbour MiniGUI Errorlog File Harbour MiniGUI Extended Edition 2.0.1 - 2011.09.21 -------------------------------------------------------------------------------- Date: 11/15/2011 Time: 22:13:24 Error BASE/1124 Argument error: LEFT Called from LEFT(0) Called from SCANSOFT(195) Called from MAIN(84) Пример: \MiniGUI\SAMPLES\BASIC\MsgEdit - не собирается... Z:\MiniGUI\SAMPLES\BASIC\MsgEdit>call ..\..\..\batch\compile.bat demo /L shell32 Harbour 3.1.0dev (Rev. 17042) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'demo.prg'... Lines 20133, Functions/Procedures 30 Generating C source output to 'demo.c'... Done. Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland demo.c: Error E2141 demo.prg 993: Declaration syntax error *** 1 errors in Compile *** C compile error.

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

Andrey: Dima пишет: а что кажет IsWindowVisible(hwnd) если окно скрыто ? [pre2] ? " #### " + ProcNL(), cAppTitle, hWnd, IsWindowVisible(hWnd) Выдаёт в лог: #### Call from: ONLYONEINSTANCE(27) --> main_misc.prg Template of the finished program on MiniGui 263598 .F. [/pre2] Программа cAppTitle должна запускаться ТОЛЬКО ОДИН раз ! Повторные запуски из других каталогов - запретить ! Программа cAppTitle имеет всегда видимое окно Forma_MenuMain. Нужно достучаться до второго окна допустим Forma_MenuMain. И если уже ранее было запущено, то поднять нужно на передний план экрана. Это можно как то сделать ?

Andrey: Фигня какая то при выводе больших строк в AlertInfo(): Как это исправить ?

SergKis: Andrey Выведи весь список Label и увидишь, что они формируются по окну, т.е. длинные строки разбиваются на несколько Label, делай как надо сам, например так [pre2] /* * MINIGUI - Harbour Win32 GUI library Demo */ #define _HMG_OUTLOG #include "hmg.ch" #include "TSBrowse.ch" /////////////////////////////////////////////////////////////////////////////// FUNCTION Main() LOCAL aGrOver, aBtn, aGrFill, aGrOverX, aGrFillX LOCAL cLog := "_msg.log" SET OOP ON _SetGetLogFile(cLog) ; fErase(cLog) // Button Colors aGrOver := { { 0.5, CLR_BLACK, CLR_VK }, { 0.5, CLR_VK , CLR_BLACK } } aGrFill := { { 0.5, CLR_VK , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_VK } } aGrOverX := { { 0.5, CLR_RED , CLR_HRED }, { 0.5, CLR_HRED , CLR_RED } } aGrFillX := { { 0.5, CLR_HRED , CLR_WHITE }, { 0.5, CLR_WHITE , CLR_HRED } } aBtn := {} // 1.NameObj 2.Text 3.ExtFuncRun or CodeBlock 4.Icons.5 6.Colors.7 8.HotKey 9.nFSize AADD( aBtn, { "Btn_01", "1. Selection menu (pg)", {|p1,p2,p3,p4| MyTest(1,p1,p2,p3,p4)} , "iSantax1", "iSantax2", aGrOver , aGrFill , { VK_F1, 49 }, 0 } ) AADD( aBtn, { "Btn_02", "2. Selection menu (pg)", {| | MyTest(2) } , "iFolder1", "iFolder2", aGrOver , aGrFill , { VK_F2, 50 }, 0 } ) AADD( aBtn, { "Btn_03", "3. Selection menu (pg)", "MyTest(3)" , "iHPx1" , "iHPx2" , aGrOver , aGrFill , { VK_F3, 51 }, 0 } ) AADD( aBtn, { "Btn_04", "4. Selection menu (pg)", "MyTest(4)" , "iHMGx1" , "iHMGx2" , aGrOver , aGrFill , { VK_F4, 52 }, 0 } ) AADD( aBtn, { "Btn_05", "Exit programm" , "MyExit(99)" , "iExitx1" , "iExitx2" , aGrOverX, aGrFillX, VK_ESCAPE , 0 } ) ToAlertDim(aBtn) RETURN NIL ////////////////////////////////////////////////////// FUNCTION MyTest( nPar, oWnd, nBtn, aSel, aBtn ) MsgDebug( nPar, pCount(), Valtype(oWnd), Valtype(nBtn), Valtype(aSel), Valtype(aBtn) ) RETURN Nil //////////////////////////////////////////////////////////////////////////// FUNCTION ToAlertDim(aBtn) LOCAL bOnInit, aColors, cText := "" // for HMG_Alert() and AlertXXX() DEFINE FONT DlgFont FONTNAME "DejaVu Sans Mono" SIZE 10 SET MSGALERT BACKCOLOR TO {248,209,211} aColors := { { 210, 225, 240 }, { 210, 225, 240 } } ?v aBtn ? cText := "" AEval(Array(Len(aBtn)), {|a| a := repl("*", 50), cText += a + CRLF}) bOnInit := {|| // свои параметры окна Local nW := System.DesktopWidth * 0.95 Local ow := ThisWindow.Object Local oc, cv, nn, nL, nG := 10 This.Width := nW This.Center nL := This.ClientWidth - This.Say_01.Col - nG ? "window Width", This.Width, ow:Width, nL ? ?v aBtn ? FOR EACH oc IN ow:GetObj4Type("LABEL") nn := hb_enumindex(oc) cv := hb_ntos(nn) + ". " + hb_valtoexp(aBtn[ nn ]) ? nn, oc:type, oc:name, oc:Width, cv oc:Width := nL oc:Value := cv NEXT This.Btn_01.Col := This.ClientWidth - This.Btn_01.Width - nG This.Btn_01.SetFocus Return Nil } //AlertInfo( Message, Title, Icon, nSize, aColors, lTopMost, bInit, lNoSound ) AlertInfo(cText,'Menu Array', , ,aColors, .F. /*topmost*/, bOnInit, .T.) RETURN cText [/pre2]


Andrey: Спасибо БОЛЬШОЕ !

Andrey: Есть окно с POPUP меню. Что нужно поставить в ON INIT, чтобы при запуске это меню открывалось ? [pre2] DEFINE WINDOW Win1 AT 0, 0 WIDTH System.DesktopWidth HEIGHT 90 ; TITLE PROGRAM MAIN ON INIT {|| Nil } DEFINE MAIN MENU DEFINE POPUP 'Menu examples' MENUITEM 'Menu without icons' ACTION ... MENUITEM 'Menu with icons' ACTION ... Separator MENUITEM 'Exit' ACTION Win1.Release() END POPUP END MENU END WINDOW[/pre2]

Andrey: Пример \MiniGUI\SAMPLES\BASIC\ButtonEx_3 Там есть команды: [pre2] PICTALIGNMENT TOP PICTALIGNMENT LEFT PICTALIGNMENT RIGHT PICTALIGNMENT BOTTOM[/pre2] А как можно задать такие команды после построения кнопки ? Т.е. через SetProperty ( ххх, ххх, , ) Что-то в доке такого нет вообще...

gfilatov2002: Andrey пишет: Пример \MiniGUI\SAMPLES\BASIC\ButtonEx_3 Там есть команды: PICTALIGNMENT TOP PICTALIGNMENT LEFT PICTALIGNMENT RIGHT PICTALIGNMENT BOTTOM Эти команды предназначены только для совместимости с кодом официальной версии HMG. Это было сделано для удобства миграции кода с HMG в МиниГуи. Все подробности надо см. в файле minigui\include\i_hmgcompat.ch

Andrey: Понял. Надоело писать много IF в коде с кнопками, например в APP_OOPTEMPLATE функция util_button.prg Там сплошные IF.... Хотелось бы просто задавать свойства кнопки через SetProperty ( ххх, ххх, , ) или так This.&(cObj).Action := {|| .... } Кстати ещё вопрос, а можно после построения кнопки задать MOUSEHOVER и MOUSELEAVE ? [pre2] @ y, x BUTTONEX &cObj PARENT &cForm ; ... FONT aFnt[1] SIZE aFnt[2] BOLD VERTICAL ; ON MOUSEHOVER ( This.Backcolor := aBtnClr[2] , This.Fontcolor := aFntClr[2] ,; This.Icon := LoadIconByName(aIcon[2],nSizeIcon,nSizeIcon) ); ON MOUSELEAVE ( This.Backcolor := aBtnClr[1] , This.Fontcolor := aFntClr[1] ,; This.Icon := LoadIconByName(aIcon[1],nSizeIcon,nSizeIcon) ); [/pre2]

gfilatov2002: Andrey пишет: можно после построения кнопки задать MOUSEHOVER и MOUSELEAVE ? Да, это возможно в такой форме: This.Btn_01.OnGotFocus := {|| DrawRR( RED ) } This.Btn_01.OnLostFocus := {|| DrawRR( .F. ) } Рабочий пример demo9.prg см. в папке \minigui\SAMPLES\Advanced\Tsb_Basic_3

Andrey: Спасибо БОЛЬШОЕ ! Заработало у меня. Ещё вопрос по кнопкам: [pre2] @ .. BUTTONEX &cObj .... ; ..... IIF(lTextVert, VERTICAL, Nil) ; // так можно ? IIF(lTextLeft, LEFTTEXT, Nil) ; // так можно ? ON INIT {|| This.Cargo := nwPost } ; .....[/pre2] Попробовал, не компилируется.... Я вспомнил, что задавал этот вопрос, вы советовали использовать другой синтаксис этой команды. Григорий, можно как то добавить свойства для этого - SetProperty ( ххх, ххх, , ) ? Примерно такого нового синтаксиса: [pre2] ICO_LEFT 0 ICO_RIGHT 1 ICO_TOP 2 ICO_BOTTOM 3 .... SetProperty( ххх, ххх, "PICTALIGNMENT", ICO_LEFT ) или This.&(cObj).PICTALIGNMENT := ICO_BOTTOM [/pre2]



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