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

Ответов - 151, стр: 1 2 3 4 5 6 7 8 All

SergKis: rvu пишет Вот что это и как быть? Без примера, организации вызовов новых окон, трудно понять суть, можно только фантазировать. Посмотрите пример APP_OOPEvens и попробуйте хотя бы новые окна создавать через сообщения. Возможно TEXTBOX заменять на GETBOX/

rvu: SergKis пишет: Возможно TEXTBOX заменять на GETBOX В свое время чем-то он мне не понравился.

rvu: Я попробую, конечно, разные варианты, просто, может, кто-то уже с таким сталкивался. Или есть догадки.


Andrey: rvu пишет: Вот что это и как быть? Сделать маленький и самодостаточный пример. А на вызовы функций типа: ToOnTablo() - навесить MsgDebug() ! Тогда можно будет понять свой промах. Без этого примера, ничего не выйдет.

rvu: Andrey пишет: Сделать маленький Так в том и проблема, что пока программа маленькая, она работает. Но я для себя проблему решил, просто отказался от этого тулбара, сделал свои кнопки, с ними все нормально.

Andrey: Пример \MiniGUI\SAMPLES\Advanced\Tsb_filter Добавляю строку показа клавиатуры в пример: [pre2] DEFINE TEXTBOX Text_1 ROW 5 COL 90 WIDTH 345 HEIGHT 21 ON CHANGE {|| RefreshBrowse()} END TEXTBOX @ 5, 450 LABEL Label_KB VALUE '('+KB_LANG()+')' ; WIDTH 50 HEIGHT 21 SIZE 11 BOLD FONTCOLOR BLACK TRANSPARENT // "RUS/LAT" [/pre2] Ну и добавил саму функцию KB_LANG() [pre2]/*------------------------------------------------------------------------------ * http://clipper.borda.ru/?1-4-0-00000995-000-0-0-1408978369 * lis_eng := lis_eng_kbd(@rsl) ... KB_ENG() ... KB_RUS() ... */ Function lis_eng_kbd(rsl) rsl:=RASKLADKA() return (rsl== "00000409") //eng Function lis_rus_kbd(rsl) rsl:=RASKLADKA() return (rsl== "00000419") //rus Function KB_LANG() Local rsl, cRet := "???" rsl:=RASKLADKA() IF rsl == "00000409" cRet := "ENG" ELSEIF rsl == "00000419" cRet := "RUS" ENDIF return cRet #pragma BEGINDUMP #include "Windows.h" #include "hbapi.h" HB_FUNC(KB_RUS) { LoadKeyboardLayout("00000419", KLF_ACTIVATE) ; } HB_FUNC(KB_ENG) { LoadKeyboardLayout("00000409", KLF_ACTIVATE) ; } HB_FUNC(RASKLADKA) { TCHAR m_PreviousLayout[KL_NAMELENGTH] ; GetKeyboardLayoutName(m_PreviousLayout); hb_retc(m_PreviousLayout); } #pragma ENDDUMP [/pre2] Как заставить правильно отображать клавиатуру находясь в TEXTBOX Text_1 ? А то переходишь на русскую клавиатуру, внизу правильно, а в LABEL Label_KB неправильная, пока не нажмешь любую букву. Для TBROWSE знаю, что нужно добавить: [pre2] // Вывод подсказки с использованием внутреннего цикла TBrowse oBrw:bEvents := { |a,b| MyEventBrowse(a,b) } ....[/pre2] В KeyUserEdit() добавить: [pre2] CASE nKey == 16 .OR. nKey == 17 // Shift+Alt Shift+Ctrl "RUS/LAT" SetProperty(cForm, "Label_KB", "Value", '('+KB_LANG()+')' ) lRet := .F. [/pre2] И внести функцию: [pre2]STATIC FUNCTION MyEventBrowse(oBrw, nMsg) // "RUS/LAT" LOCAL cForm := oBrw:cParentWnd, cAlias := oBrw:cAlias IF _IsControlDefined( "Label_KB", cForm ) .and. !(nMsg==WM_PAINT) SetProperty(cForm, "Label_KB", "Value", '('+KB_LANG()+')' ) ENDIF RETURN 0 [/pre2]

Haz: Andrey пишет: Добавляю строку показа клавиатуры в пример: А зачем? Пример показывает как можно обработать фильтр в бровсе и все. Зачем все в один компот сливать? Хочется поупражняться, есть пример( или аппликуха) LangIndicator кажется, так называется. Или сделай новый, хотя и так от tsb_***** в примерах уже в глазах мелькает.

Dima: Haz пишет: LangIndicator Есть такой в Advanced\LANG_INDICATOR\ но у меня на семерке работает криво. На переключение раскладки не реагирует , пока хотя бы раз не нажать в трее на этом LANG_INDICATOR

Haz: Dima пишет: На переключение раскладки не реагирует , пока хотя бы раз не нажать в трее на этом LANG_INDICATOR Вот тем более. Есть куда приложить руку и приписать свой (с)

Dima: Haz

Andrey: Haz пишет: А зачем? Пример показывает как можно обработать фильтр в бровсе и все. А чтобы понять, как заставить изменить показ клавиатуры для этого фильтра и бровса. Пример выбран специально, чтобы потом посмотреть как это всё вместе будет работать и перенести к себе в проект.

Haz: Andrey пишет: чтобы понять, как заставить Так и спрашивай, как из текстбокса перехватить клаву. С бровсом я так понял проблем нет. А то не понятно, толи ты улучшайзингом примеров занимаешься, толи конкретную свою задачу решаешь. Текстбокс, неполноценный контрол. Замени на гетбокс. Да и способов отобразить какой язык в системе текущий можно без отлова везде горячей комбинации. Самый простой и надёжный это таймер, сложнее это поток. А так появится на форме датапикер, будешь здесь писать как на нем поймать.

Andrey: Haz пишет: Так и спрашивай, как из текстбокса перехватить клаву. С бровсом я так понял проблем нет. А то не понятно, толи ты улучшайзингом примеров занимаешься, толи конкретную свою задачу решаешь. В этом примере с бровсом разобрался, думал не смогу. Вот и остался один объект (текстбокс) где не смог перехватить клаву. Чтобы другой пример не плодить, остался на этом примере. Насчёт гетбокс понял, буду смотреть. Спасибо !

Haz: Andrey пишет: Вот и остался один объект (текстбокс) где не смог перехватить клаву. А если на форме будет 100 контролов, все перехватывать будешь.? Проще повесить таймер на форму с интервалом 1000 в котором сравнивать текущй язык с твоей лейбой. Не совпало, значит что то из них надо поменять и скорее всего это лейба.

Vlad04: Как заставить правильно отображать клавиатуру находясь в TEXTBOX Text_1 Я при входе в Box сам устанавливаю нужную раскладку, чтобы юзер и не парился

Andrey: Vlad04 пишет: Я при входе в Box сам устанавливаю нужную раскладку, чтобы юзер и не парился Справочник оборудования, список на русском и английском. Какую тогда раскладку ставить ?

Alex_Cher: Vlad04 пишет: Я при входе в Box сам устанавливаю нужную раскладку чем, не подскажешь ...

Dima: Вопрос по примеру WEBCAM_2 Жму кнопку Capture , картинка после первого нажатия не меняется , хотя файл снимок и появляется. Проверял hBitmap в процедуре CaptureImage и он не пустой. Жму повторно на Capture , картинка под этой кнопкой поменялась. Далее сворачиваю окно и после снова его поднимаю а картинки под Capture уже нет. Как лечить ?

SergKis: Dima пробни так [pre2] *-----------------------------------------------------------------------------* Procedure Main *-----------------------------------------------------------------------------* SET OOP ON ... ON INIT ( (This.Object):PostMsg(1), DoEvents(), ; (This.Object):PostMsg(1) ) ; // CaptureImage() ; // capture initialization ON RELEASE CloseWebCam() ; ON RESTORE ( (This.Object):PostMsg(1), DoEvents(), ; (This.Object):PostMsg(1) ) (This.Object):Event( 1, {|| CaptureImage() }) ... DEFINE BUTTON Button_3 ROW 80 COL 315 WIDTH 80 CAPTION 'Capture' ACTION ( (ThisWindow.Object):PostMsg(1), DoEvents() ) END BUTTON [/pre2]

Dima: SergKis пишет: пробни так Не помогло однако ON INIT сделал такой , но картинка сразу не появляется. [pre2] ON INIT ( (This.Object):PostMsg(1), DoEvents(CaptureImage()) ,(This.Object):PostMsg(1)) [/pre2] Фокус с ON RESTORE не сработал .... ACTION в Button_3 сделал такой , работает теперь нормально [pre2] ACTION ( (ThisWindow.Object):PostMsg(1),DoEvents(CaptureImage()) ) [/pre2] PS По большому счету в ON INIT можно и убрать CaptureImage() , как и сам ON INIT



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