Форум » 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.

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

Andrey: C иконками в меню и кнопками теперь понятно ! Спасибо БОЛЬШОЕ Григорий !!! Возник теперь другой вопрос. Можно ли как то передать на форму (которую еще не создали), то что нужно нарисовать ? Т.е. объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME ? Ну вот так примерно: ACTION {|| nRet := MenuList(aCaptions, aIcons, aButton, aWindow, aImage, aNewObj ),; MsgInfo( 'Action menu = ' + hb_ntos(nRet), wMain.Button_1.Caption) } передаю в aNewObj массив чего надо нарисовать на форме. А как тогда на форме (которая будет новая) создавать это объекты ? Или это вообще неправильный подход ???? Нужно сначала нарисовать форму, объекты, а уж потом вызывать функцию обработки этого окна ?

gfilatov2002: Andrey пишет: объекты произвольного значения, допустим: линию по координатам, надпись по координатам или допустим объект FRAME Любой объект в минигуи сводится к вызову функции, поэтому ничего не мешает передать в массиве кодовый блок с вызовом этой функции с необходимыми параметрами, а затем выполнить этот блок, использовав событие формы ON INIT. Пример использования этих функций вместо минигуи-команд можно посмотреть в папке samples\Advanced\TSB_MENU. Но, конечно, это требует хорошего знания внутреннего устройства библиотеки и не рекомендуется из-за сложности использования

Andrey: Спасибо БОЛЬШОЕ ! Григорий, а если я в функции MenuList(cParent, aCaptions, aIcons, aButton, aRunFunc) добавлю идентификатор окна cParent (ну и соответственно везде поменять, где есть вызовы "Win_1"), то я смогу вызывать эту функцию и в других окнах ? Конфликтов не будет ?


Andrey: В FW на плитке есть возможность использования левой клавиши мыши. А на объекте ButtonEx можно задействовать левую клавишу мышки ? Есть ли обработчик какой ?

evgeny2006: Andrey пишет: Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Присоединяюсь к поставленному вопросу Одновременно хотел задать еще вопрос. Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах. Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые. Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?

evgeny2006: Andrey пишет: Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Присоединяюсь к поставленному вопросу Одновременно хотел задать еще вопрос. Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах. Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые. Скорее всего необходимо подключать дополнительные библиотеки, но как о них узнать?

Andrey: evgeny2006 пишет: Создается впечатление, что система либо очень сырая, или авторы молчаливо используют библиотеки, отличные от приведенных в примерах. Нет, неправ ты. Просто Windows-программирование очень отличается от стандартного Клиперного. Это нужно понять, а на понятие уходит много времени. Я уже второй год (правда наскоками) разбираюсь. Просто у Григория в библиотеки нет руководства для новичков. Я сам разбирался с нуля, а потом уже с помощью всех присутствующих на форуме. Результатами сейчас доволен, много можно делать. Начни потихоньку осваивать примеры. Своё приложение сразу писать НЕТ СМЫСЛА, пока не поймешь как можно использовать МиниГуи. Вот выкладываю образцы первых шагов. https://cloud.mail.ru/public/e17020852d3f/1_OnInitWindows.7z

Haz: evgeny2006 пишет: Например, DIRECTORY а GUI то тут с какого боку ? Давайте по существу что именно не так в GUI ? Думаю вместе поможем разобраться. И поверьте авторам есть чем заняться кроме молчаливого использования каких то библиотек.

Andrey: Andrey пишет: А на объекте ButtonEx можно задействовать левую клавишу мышки ? Есть ли обработчик какой ? Для RightClick надо использовать DEFINE CONTEXT MENU CONTROL ... или DEFINE CONTEXT MENU CONTROLS <cControlName1> [, cControlNamen ] смотри \samples\Basic\ControlsContextMenu Спасибо большое SergKis ! А для TBROWSE есть обработка RightClick ?

Vlad04: evgeny2006 Например, DIRECTORY. Должна выдавать пять компонент. Вроде бы она это делает, но второй и третий компонент - пустые. все заполнено Проверил в хХарбор 1 и Харбор 3.2

Andrey: Блин, ну почему все пишут в моей теме ? Что нельзя отдельную ветку завести ? Повторяю свой вопрос: А для TBROWSE есть обработка RightClick ?

Dima: Andrey пишет: Блин, ну почему все пишут в моей теме ? Что нельзя отдельную ветку завести ? Те жалко ? Считаешь нужно завести еще одну такую же тему ?

Andrey: Dima пишет: Те жалко ? Да пишут про другое совершенно ! А мой вопрос просто теряется....

Haz: Andrey пишет: Повторяю свой вопрос: А для TBROWSE есть обработка RightClick ? есть

Andrey: Haz пишет: есть А если не сложно, пожалуйста ткните в пример !

Haz: Andrey пишет: пожалуйста ткните в пример не в пример, а опять же в исходник TSCOLUMN.PRG. В данных класса определены блоки реакции на разные клики. DATA bFLClicked // Block to be evaluated on footer left clicked DATA bFRClicked // Block to be evaluated on footer right clicked DATA bHLClicked // Block to be evaluated on header left clicked DATA bHRClicked // Block to be evaluated on header right clicked DATA bSLClicked // Block to be evaluated on Special header left clicked DATA bSRClicked // Block to be evaluated on Special header right clicked DATA bLClicked // Block to be evaluated on cell left clicked DATA bRClicked // Block to be evaluated on cell right clicked Все что нужно сделать так это назначить этот блок BRW:aColumns[n]:bFLClicked := { || Msgbox('Block to be evaluated on footer left clicked') } PS. Класс TSBROWS отлично прокомментирован в исходниках. Все данные и методы понятны и читаемы. на нем же легко сделать кнопку с реакцией на правый клик к примеру - как ответ на вопрос выше (бровс по массиву с одной ячейкой без скроллов и заголовка , плюс с возможность фантазий типа динамической смены цвета этой кнопки, ее активности и прочего вплоть до контекстного меню по ней ). Но для этого нужно смотреть исходник и разбираться в нем.

Andrey: Всем доброй ночи. Наконец то дошли руки до новых непоняток в МиниГуи. Моих непоняток конечно.... Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ? Замену цвета сделал через контексное меню, и возврат цвета тоже скорее всего не работает... Вот мой код (который не работает...): ////////////////////////////////////////////////////////////////////// Function METRO_BUTTON( aDim ) LOCAL cObject := aDim[1], nRow := aDim[2], nCol := aDim[3] LOCAL nWidth := aDim[4], nHeight := aDim[5], cCaption := aDim[6] LOCAL cResIco1 := aDim[7], cResIco2 := aDim[8] LOCAL aFontColor := aDim[9], aBACKCOLOR := aDim[10] LOCAL bAction := aDim[11], cTooltip := aDim[12] LOCAL cInfo0, cInfo1, cInfo2, aVal DEFINE BUTTONEX &cObject ROW nRow COL nCol WIDTH nWidth HEIGHT nHeight //PICTURE cResPicture ICON cResIco1 CAPTION cCaption ACTION IIF(bAction=='EXIT',ThisWindow.Release,&(bAction)) VERTICAL .T. LEFTTEXT .F. FLAT .F. FONTSIZE 12 FONTBOLD .F. FONTCOLOR aFontColor BACKCOLOR aBACKCOLOR UPPERTEXT .F. TOOLTIP cTooltip NOHOTLIGHT .F. NOXPSTYLE .T. ONGOTFOCUS ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco2), SetProperty(ThisWindow.Name, cObject, "fontbold", .t.) ) ONLOSTFOCUS ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco1), SetProperty(ThisWindow.Name, cObject, "fontbold", .f.) ) END BUTTONEX DEFINE CONTEXT MENU CONTROLS &cObject cInfo0 := "Object: "+cObject cInfo1 := "Object ID: "+ltrim(str(_HMG_xControlsContextMenuID)) //cInfo2 := "Object Control name: "+_HMG_aControlNames[_HMG_xControlsContextMenuID] - не РАБОТАЕТ !!! cInfo2 := "" MENUITEM cInfo0 DISABLED MENUITEM cInfo1 DISABLED MENUITEM cInfo2 DISABLED SEPARATOR MENUITEM "Change color button" ACTION { || aVal := GetColor(aBACKCOLOR), SetProperty(ThisWindow.Name, cObject, "BACKCOLOR", aBACKCOLOR) } MENUITEM "Color to default" ACTION { || SetProperty(ThisWindow.Name, cObject, "BACKCOLOR", aBACKCOLOR ) } END MENU Return NIL

gfilatov2002: Andrey пишет: Как на "лету" (т.е. уже в запущенной программе поменять ЦВЕТ кнопок ? ITEM 'Set OButton BackColor' ACTION Form_1.OButton.BackColor := GetColor() Так определена эта кнопка на форме: DEFINE BUTTONEX OButton ROW 200 COL 400 WIDTH 90 HEIGHT 23 CAPTION "Computer" VERTICAL .t. // ICON "res\comp.ico" FLAT .f. FONTNAME "MS Sans serif" FONTSIZE 9 FONTCOLOR {0,128,0} // FONTBOLD .t. BACKCOLOR {240,255,240} UPPERTEXT .t. TOOLTIP "OButton with icon - vertical - uppertext - nohotlight - noxpstyle" NOHOTLIGHT .t. NOXPSTYLE .t. END BUTTONEX

Andrey: Спасибо за подсказку, получилось. Цвет кнопки менять на лету получилось ! https://cloud.mail.ru/public/8bb7a4832b49/MiniGui-TEST Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107 НЕ вызывается МЕНЮ ВООБЩЕ !!! Почему ? Что не так делаю ? И взял из примера \SAMPLES\BASIC\ControlsContextMenu\ccmenu.fmg // new syntax one menu for multi controls (ADV) DEFINE CONTEXT MENU CONTROLS Label_1, Button_1, CheckBtn_1, List_1, Combo_1 MENUITEM "Multi 1" ACTION MsgInfo( "Multi 1 ID: "+ltrim(str(_HMG_xControlsContextMenuID)) ) MENUITEM "Multi 2" ACTION MsgInfo( "Multi 2 Control name: "+ _HMG_aControlNames[_HMG_xControlsContextMenuID] ) а у меня не работает... //cInfo2 := "Object Control name: "+_HMG_aControlNames[_HMG_xControlsContextMenuID] Подскажите пожалуйста как сделать, чтобы заработало ?

Andrey: Andrey пишет: Не получается сделать вызов: DEFINE CONTEXT MENU CONTROL Label_Color2 - строка 107 Пошаговое разбирание примера (спасибо a_sidorov ) привело к неожиданному результату: В строке 72: @ 24, 0 LABEL Label_Color2 VALUE "" WIDTH nWidth HEIGHT 84 BACKCOLOR COLOR_BLUE_BLUE в конце нужно поставить TOOLTIP "" И меню начнет появляться. Это баг или так должно быть ?



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