Автор | Сообщение |
Andrey
|
| постоянный участник
|
Пост N: 1929
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы.....
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \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
|
| постоянный участник
|
Пост N: 2944
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.08.13 12:44. Заголовок: Спасибо БОЛЬШОЕ. Сд..
Спасибо БОЛЬШОЕ. Сделал, работает. Теперь другой вопрос. Как вернуть текущему окну (в котором работает юзер) фокус ввода из моей задачи ? А то, после запуска моей задачи из трея, приходится мышкой тыкать в то окно, с которым работал.
|
|
|
Haz
|
| |
Пост N: 88
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.08.13 12:27. Заголовок: Как вернуть текущему окну
на вскидку два варианта 1) получить указатель окна пользователя ( ShrinkIt из примеров минигуи в помощь ) и читать типа этого http://www.wasm.ru/forum/viewtopic.php?pid=123607 2) Вообще не забирать фокус у окна пользователя а писать статистику в лог ( базу ). Из программы пользователя анализировать этот лог ( базу ) и выводить сообщения из нее.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2949
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.08.13 13:20. Заголовок: Haz пишет: на вскид..
Haz пишет: Спасибо БОЛЬШОЕ ! Второй вариант лучше. Меньше "париться" !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2950
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.08.13 13:31. Заголовок: Если я создаю объект..
Если я создаю объект: DEFINE WINDOW Win_Zaiv ; MODAL ; NOSHOW ; ..... END WINDOW Win_Zaiv.Center Win_Zaiv.Activate То почему то окно все равно показывается на экран. Что не так делаю ?
|
|
|
Haz
|
| |
Пост N: 89
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.08.13 15:01. Заголовок: все так
вроде все так, без живого примера не понять перед Win_Zaiv.Center добавь Win_Zaiv.Hide и забудь
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2954
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.08.13 18:46. Заголовок: Haz пишет: перед Wi..
Haz пишет: цитата: | перед Win_Zaiv.Center добавь Win_Zaiv.Hide и забудь |
| Не получается ! Окно все равно выводиться. Почему ? Я же ставлю при создание окна NOSHOW ! А окно появляется: Вот полный код: Скрытый текст //////////////////////////////////////////////////////////// // создание БД измененных записей FUNCTION CHANGE_ZAIVKI(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) LOCAL cTitle := "Подготовка измененых записей" LOCAL cDbfZip := "" DEFAULT cTypeWin TO "" DEFINE WINDOW Win_Zaiv ; ROW 0 COL 0 ; WIDTH 480 ; HEIGHT 240 ; TITLE cTitle ; ICON "ICON2SITE" ; MODAL ; NOSHOW ; NOSIZE NOSYSMENU ; FONT 'Tahoma' SIZE 10 ; ON INIT { || cDbfZip := InitChangeZaivki(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) } @ 80, 0 LABEL Label_Up VALUE "" ; WIDTH 480 HEIGHT 260 ; BACKCOLOR COLOR_BUTTONE_LIGHT_RED @ 10,80 ANIMATEBOX Avi_1 ; WIDTH 32 HEIGHT 40 ; FILE 'AVICHECK' AUTOPLAY TRANSPARENT NOBORDER @ 120,20 PROGRESSBAR Progress_1 ; RANGE 0,100 ; VALUE 0; WIDTH 430 HEIGHT 34 @ 100,10 LABEL Label_1 ; WIDTH 450 HEIGHT 16 ; VALUE '0%' ; BOLD ; BACKCOLOR COLOR_BUTTONE_LIGHT_RED ; CENTERALIGN @ 155,10 LABEL Label_2 ; WIDTH 450 HEIGHT 46 ; VALUE "создаю БД" ; BOLD ; BACKCOLOR COLOR_BUTTONE_LIGHT_RED ; CENTERALIGN END WINDOW Win_Zaiv.Hide Win_Zaiv.Center Win_Zaiv.Activate RETURN cDbfZip //////////////////////////////////////////////////////////// // Инициализация формы FUNCTION InitChangeZaivki(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) LOCAL nJ, nI, aFieldArray, lRet, cFileDbf, bErrHandler, aDbf, nAllRecno LOCAL aRecno := {}, cDateZ, cTimeZ, cNumZ, cID, cMsg MsgDebug(cTypeWin)
| У Григория есть пример \MiniGUI\SAMPLES\BASIC\SPLASHDEMO\demo.prg Там нормально отрабатывает NOSHOW: Скрытый текст Function Main DEFINE WINDOW Form_Main ; AT 0,0 ; WIDTH 640 HEIGHT 480 ; TITLE 'Main Window' ; MAIN ; NOSHOW END WINDOW DEFINE WINDOW Form_Splash ; PICTURE 'DEMO' ; SPLASH ; DELAY 4 ; ON RELEASE Form_Main.Show END WINDOW CENTER WINDOW Form_Main ACTIVATE WINDOW ALL Return Nil
| По доке окно MODAL тоже может быть NOSHOW... Или глюк какой то ?
|
|
|
Haz
|
| |
Пост N: 90
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.08.13 19:40. Заголовок: видимо косячек
видимо косячек в минигуи с модальным окном. как вариант в ON INIT засунуть ThisWindow.hide , прячет но мелькает всеравно
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 241
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.08.13 19:50. Заголовок: Haz пишет:видимо кос..
Haz пишет: цитата: | видимо косячек в минигуи с модальным окном. |
| и не только в модальном (было в версии 2.07) всегда show
|
|
|
Haz
|
| |
Пост N: 91
Зарегистрирован: 20.02.11
|
|
Отправлено: 26.08.13 20:52. Заголовок: ТАБЛЕТКА
Андрей , держи таблетку и играй в прятки с модальными окнами в h_windows.prg в строке 1295 вместо If _HMG_aFormType == "M" _ShowWindow ( _HMG_aFormNames , .F. ) нужно прописать условие IF ... и пересобратьбиблиотеки минигуи If _HMG_aFormType == "M" if _HMG_aFormNoShow == .F. _ShowWindow ( _HMG_aFormNames , .F. ) ELSE _hIDEWindow ( _HMG_aFormNames , .F. ) end
|
|
|
Панченко
|
| |
Пост N: 52
Зарегистрирован: 13.06.12
|
|
Отправлено: 29.08.13 18:09. Заголовок: Андрей, убери Win_Za..
Андрей, убери Win_Zaiv.Activate (ну и Hide перед ним тоже не нужен)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2960
Зарегистрирован: 12.09.06
|
|
Отправлено: 29.08.13 19:51. Заголовок: Панченко пишет: Анд..
Панченко пишет: цитата: | Андрей, убери Win_Zaiv.Activate (ну и Hide перед ним тоже не нужен) |
| Конечно. Ставил я это из-за того: Haz пишет: цитата: | видимо косячек в минигуи с модальным окном. |
|
|
|
|
|
Панченко
|
| |
Пост N: 53
Зарегистрирован: 13.06.12
|
|
Отправлено: 30.08.13 08:42. Заголовок: Andrey пишет: Haz п..
Andrey пишет: цитата: | Haz пишет: цитата: видимо косячек в минигуи с модальным окном. |
| Андрей, описываешь модальное окно с NOSHOW. ACTIVATE не надо !!! (это активация окна, которая выводит его на экран). Окно нормально создается, но на экран не выводится.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2962
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.08.13 20:36. Заголовок: Панченко пишет: Окн..
Панченко пишет: цитата: | Окно нормально создается, но на экран не выводится. |
| Да, создается. Только при повторном обращении к этой функции, теперь программа слетает ! С ошибкой: Error: Window: Win_Zaiv is already defined.</p><BR> Called from _DEFINEMODALWINDOW(440) Called from CHANGE_ZAIVKI(311) А с Win_Zaiv.Activate нормально работает. Т.е. если я делаю модальное окно: DEFINE WINDOW Win_Zaiv ; MODAL ; NOSHOW ; ON INIT { || cDbfZip := InitChange(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) } ..... END WINDOW Win_Zaiv.Center RETURN NIL //////////////////////////////////////////////////////////// // Инициализация формы FUNCTION InitChange(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) ..... IF LEN(cTypeWin) == 0 Win_Zaiv.Show ELSE Win_Zaiv.Hide // "NOWIN" ENDIF ............ То программа с параметром "NOWIN" - работает один раз. При повторном обращении падает с ошибкой указанной выше... Где и что править ? Или придется делать ДВЕ отдельные функции: с окном и без окна ? Но это же неправильно !
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 244
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.08.13 21:39. Заголовок: Andrey для проверки ..
Andrey для проверки наличия есть: _IsWindowDefined('Form_1') - для окон _IsControlDefined('Label_1', 'Form_1') - для контролов
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2964
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.08.13 22:09. Заголовок: SergKis пишет: для ..
SergKis пишет: цитата: | для проверки наличия есть: _IsWindowDefined('Form_1') - для окон _IsControlDefined('Label_1', 'Form_1') - для контролов |
| СПАСИБО БОЛЬШОЕ ! Буду пользоваться. Я не пойму только одного у себя, если модальное окно с NOSHOW и БЕЗ Win_Zaiv.Activate у меня окно показывается. А у Григория в примере \MiniGUI\SAMPLES\BASIC\SPLASHDEMO\demo.prg стоит ACTIVATE WINDOW ALL то у него все работает. Панченко пишет: цитата: | Андрей, убери Win_Zaiv.Activate (ну и Hide перед ним тоже не нужен) |
| Тогда неправ Панченко ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 245
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.08.13 05:32. Заголовок: Andrey пишет:А у Гри..
Andrey пишет: цитата: | А у Григория в примере \MiniGUI\SAMPLES\BASIC\SPLASHDEMO\demo.prg стоит ACTIVATE WINDOW ALL то у него все работает |
| У него другая схема - сначала MAIN, потом другое окно. Начинать приложение сразу с MODAL у меня тоже были проблемы с управлением в окне. Сделал как у Григория, сначала MAIN в небольших координатах, сверху в OnInit MODAL и hide MAIN, но фокус эта конструкция будет забирать на себя при запуске из Tray - возможно запускать надо раньше, при старте своей проги и пусть сидит в фоне, или управлять заголовками (переключением фокуса между окнами по HWND)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 246
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.08.13 06:07. Заголовок: Andrey при вызове (c..
Andrey при вызове (click-ом) из Tray фокус на Tray меню, hide в новом запуске вернет фокус на последний фокус где был, т.е. на окно задачи не вернет.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 2968
Зарегистрирован: 12.09.06
|
|
Отправлено: 31.08.13 11:47. Заголовок: SergKis пишет: Начи..
SergKis пишет: цитата: | Начинать приложение сразу с MODAL у меня тоже были проблемы с управлением в окне. |
| Так у меня тоже приложение начинается не с MODAL, а с MAIN. У меня в трее сидит приложение. Через 5 минут идет (открытие/проверка), выводит окно MODAL -бегунка подготовки БД. Вот это окно, я хочу убрать это окно, не показывать вообще (NOSHOW). А это окно все равно показывается на экране. У меня 2-3 места в программе, где я не хочу показывать такие MODAL-окна. Вот и получается, что есть тогда 3 варианта: 1) Исправить этот баг в библиотеке МиниГуи 2) написать аналогичные процедуры у себя в программе - без использования окон 3) переключением фокуса между окнами по HWND Пока хочу попробовать 3-вариант. SergKis пишет: цитата: | или управлять заголовками (переключением фокуса между окнами по HWND) |
| А как вы это делаете ? Подскажите пожалуйста.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 248
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.08.13 15:58. Заголовок: Andrey Я это делаю A..
Andrey Я это делаю AutiIt3, мы это уже обсуждали, в hb через FindWindow в ваших темах где-то было
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 249
Зарегистрирован: 17.02.12
|
|
Отправлено: 31.08.13 16:04. Заголовок: Andrey пишет:А это о..
Andrey пишет: цитата: | А это окно все равно показывается на экране. |
| NOSHOW я не использую, когда надо делаю DoMethod(cWnd, 'Hide', .T.) или .F., работает как надо, претензий нет
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|