On-line: NickSam, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
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.



Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


SergKis



Пост N: 2599
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.06.19 21:01. Заголовок: PS nTyp это, к приме..


PS
nTyp это, к примеру
0 - main
1 - standatt
2 - child
3 - modal

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6314
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.19 13:34. Заголовок: SergKis пишет: Если..


SergKis пишет:

 цитата:
Если надо усложнить добавь в #xcommand переменную WTYPE <nTyp> и в ф-ю параметр nTyp и обрабатывай как надо


Понял, СПАСИБО !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6315
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.19 16:36. Заголовок: Собираю тестовые про..


Собираю тестовые проги в Far'e на МиниГуи.
После того как ехе-ник запустится, каждый раз приходится мышкой тыкать на запущенную прогу, т.к.
Far всегда поверх запущенной программы.
Можно ли как то сделать, чтобы после запуска программа МиниГуи выходила на передний план ?
У меня тестовые проги имеют код такой (специфика тестирования):
 
DEFINE WINDOW Form_Main ;
AT 20 , 20 ;
WIDTH 500 HEIGHT 480 ;
TITLE "Test-MiniGui" ;
MAIN ;
.....
ON INIT {|| Form_Main.Minimize, TestPrint("Печать",,,cDebugPath) , Form_Main.Release }
....

Т.е. далее запускается TestPrint("Печать",,,cDebugPath) и это окно всегда под Far'ом.
Я знаю что можно сделать в окне TestPrint() следующую конструкцию:
   DEFINE WINDOW wTestPrint ; 
....
MODAL
....
END WINDOW

CENTER WINDOW wTestPrint // переносим сюда, чтобы не дергалось окно
ACTIVATE WINDOW wTestPrint ON INIT {|| This.Minimize, This.Restore, ;
This.Label_0.SetFocus }

RETURN NIL

Но потом после переноса в основную программу, это окно wTestPrint появляется снизу - это не совсем красиво для основной программы.
Можно как то сделать "передёргивание окна wTestPrint" из основной программы ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6316
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.19 19:55. Заголовок: Сделал так: ..


Сделал так:
Скрытый текст

В Win8.1 отрабатывает нормально, а в WinXP окошко сворачивается и разворачивается - остановить нельзя...
Бесконечный цикл, можно только снять программу через менеджер программ.
Почему остановка таймера не происходит ?

Спасибо: 0 
Профиль
SergKis



Пост N: 2603
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.19 20:37. Заголовок: Andrey Добавь в TIM..


Andrey
Добавь в TIMER параметр ONCE (вып. один раз) см. i_timer.ch
А topmost пробовал ?
 
DEFINE WINDOW wTestPrint ;
...
ON INIT This.Topmost := .F. ;
...
ACTIVATE WINDOW wTestPrint ON INIT {|| This.Minimize, This.Restore, This.Topmost := .T., ;
This.Label_0.SetFocus }


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6317
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.19 21:27. Заголовок: Что то в доке нет ON..


Что то в доке нет ONCE !
Как писать правильно ?
 
DEFINE TIMER Timer_1 ;
INTERVAL 500 ;
ACTION Bring_window_to_front() ONCE

Так ?

Спасибо: 0 
Профиль
SergKis



Пост N: 2604
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.19 21:33. Заголовок: Andrey i_timer.ch#c..


Andrey
i_timer.ch
#command DEFINE TIMER <name> ; 
[ <dummy1: OF, PARENT> <parent> ] ;
[ INTERVAL <interval> ] ;
[ ACTION <action> ] [ <lOnce: ONCE> ] ;
=> ;
_DefineTimer ( <"name">, <"parent">, <interval>, <{action}>, <.lOnce.> )


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6318
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.06.19 21:40. Заголовок: Да так сработало ! Н..


Да так сработало !
На XP и 8-ке работает теперь одинаково !
СПАСИБО БОЛЬШОЕ !

SergKis пишет:

 цитата:
А topmost пробовал ?


Пробовал так:
 
DEFINE WINDOW wTestPrint ;
...
ON INIT {|| OnInitPrintF5(), This.Topmost := .F., oBrwP:Setfocus() }
...
ACTIVATE WINDOW wTestPrint ON INIT {|| This.Topmost := .T. }

Окно на переднем плане, т.е. поверх Far'a, но при прокрутке колесиком мышки - ездит по папкам Far'a.
Лучший вариант для отладки всё таки таймер !

Спасибо: 0 
Профиль
SergKis



Пост N: 2605
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 25.06.19 23:24. Заголовок: Andrey Попробуй так..


Andrey
Попробуй так (с SET OOP ON)
 
DEFINE WINDOW wTestPrint ;
...
ON INIT ( This.Topmost := .F., _wPost(1), DoEvents() )
...
(This.Object):Event(1, {|| OnInitPrintF5(), oBrwP:Setfocus() })
END WINDOW
ACTIVATE WINDOW wTestPrint ON INIT {|| This.Topmost := .T. }


Спасибо: 0 
Профиль
SergKis



Пост N: 2606
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.06.19 07:39. Заголовок: PS И Form_Main попра..


PS
И Form_Main поправь
 
DEFINE WINDOW Form_Main ;
AT 20 , 20 ;
WIDTH 500 HEIGHT 480 ;
TITLE "Test-MiniGui" ;
MAIN ;
.....
ON INIT ( This.Minimize, _wPost(1), DoEvents() )
...
(This.Object):Event( 1, {|| TestPrint("Печать",,,cDebugPath) , This.Release } )
....


Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6319
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.06.19 14:59. Заголовок: Сделал ! Всё равно к..


Сделал !
Всё равно колесико мышки и клавиши продолжают ездить по Far'у.
Хотя окно программы Минигуи становится поверх всех окон.
Нужно кликнуть мышкой по форме, тогда на ней можно нажимать клавиши и мышку.
Вообще то я с таким поведением давно сталкиваюсь, но всё некогда было разобраться с таким поведением.

И ещё ошибка появилась, при выходе из окна wTestPrint, у меня на кнопку выход назначено:
ACTION { || wTestPrint.Release() } 

Выдает теперь ошибку:
Error MGERROR/0 Control: Of Form_Main Not defined. Program terminated.
--------------------------------- Stack Trace ---------------------------------
Called from MSGMINIGUIERROR(99) in module: h_error.prg
Called from DOMETHOD(5205) in module: h_controlmisc.prg
Called from (b)MAIN(349) in module: f5main.prg
Called from DO_WINDOWEVENTPROCEDURE(82) in module: h_objmisc.prg
Called from TWNDDATA:DOEVENT(667) in module: h_objects.prg
Called from DO_ONWNDLAUNCH(234) in module: h_objmisc.prg
Called from (b)INIT(123) in module: h_init.prg
Called from EVENTS(1215) in module: h_events.prg
Called from DOEVENTS(0)
Called from (b)MAIN(323) in module: f5main.prg
Called from _PROCESSINITPROCEDURE(1672) in module: h_windows.prg
Called from _ACTIVATEWINDOW(1487) in module: h_windows.prg
Called from MAIN(354) in module: f5main.prg

 
Строка 349 - (This.Object):Event( 1, {|| TestPrint("Печать",,,cDebugPath) , This.Release } )
Строка 354 - ACTIVATE WINDOW Form_Main

This.Release - не срабатывает ....

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6320
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.06.19 18:39. Заголовок: А есть такая команда..


А есть такая команда, которая бы эмулировала нажатие мышки на окне, чтобы фокус окну переходил ?

Спасибо: 0 
Профиль
SergKis



Пост N: 2619
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.07.19 11:00. Заголовок: Возможно, будет инте..


Возможно, будет интересно.
Пример по окнам с DEF WINDOW ... и WTYPE nTypWindow :
0 - main
1 - child
2 - modal
3 - standart
и галочка для :Action := .T.\.F. окна
Если галочки нет, окно не активно и сообщения не работают, убрать окно по [X] крестику нельзя, кнопки не работают.
Если галочка есть, окно активно и все кнопки работают.
Пример тут https://TransFiles.ru/s4x9y

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6322
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.07.19 15:52. Заголовок: SergKis пишет: Прим..


SergKis пишет:

 цитата:
Пример по окнам с DEF WINDOW ... и WTYPE nTypWindow :


Пример интересный !
Можно применять в ситуациях, когда юзеру нужно запретить выходить из окна пока все GETBOX не заполнит
или пока что-то не посчитается....
Применений много.
Спасибо !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6323
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.19 14:15. Заголовок: Всем привет ! Появил..


Всем привет !
Появилась ошибка у меня после изменения кода. Правда не всегда появляется.
Error BASE/1004 Message not found: NIL:EVENT
--------------------------------- Stack Trace ---------------------------------
Called from __ERRRT_SBASE(0)
Called from NIL:ERROR(0)
Called from (b)HBOBJECT(0)
Called from NIL:MSGNOTFOUND(0)
Called from NIL:EVENT(0)
Called from FORM_F5PRINT(191) in module: Source\form_f5print.prg
Called from FORMPRINTF5(106) in module: Source\form_f5print.prg

Код программы:
 
DEFINE WINDOW Form_F5 ;
.....
MODAL ;
.....
ON INIT ( This.Topmost := .F., _wPost(1), DoEvents() )

(This.Object):Event(1, {|| OnInitPrintF5(),; oBrwP:Setfocus(), nStaticViewRecno := 1 }) // строка 191

Почему и что нужно править ?

Спасибо: 0 
Профиль
SergKis



Пост N: 2622
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.07.19 15:22. Заголовок: Andrey пишет Появила..


Andrey пишет
 цитата:
Появилась ошибка у меня после изменения кода


NIL:EVENT(0) - нет объекта окна. Он создается в DEFINE WINDOW ...
SET OOP ON стоит, не отключен ?

#define _HMG_OUTLOG

LOCAL oWnd
...
DEFINE WINDOW Form_F5 ;
...

oWnd := This.Object

? This.Name, This.Handle, oWnd, _HMG_lOOPEnabled

oWnd:Event(1, {|| OnInitPrintF5(),; oBrwP:Setfocus(), nStaticViewRecno := 1 })

выделенным цветом это опечатка ?

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6324
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.19 18:20. Заголовок: SergKis пишет: выде..


SergKis пишет:

 цитата:
выделенным цветом это опечатка ?


Да, опечатка.
SergKis пишет:

 цитата:
SET OOP ON стоит, не отключен ?


Перепроверю.

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6327
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.07.19 20:49. Заголовок: В основной программе..


В основной программе не стоит у меня SET OOP ON .
А везде в других стоит. Пропустил наверное.
Буду проверять заново.
СПАСИБО БОЛЬШОЕ !

Спасибо: 0 
Профиль
Andrey
постоянный участник




Пост N: 6331
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.07.19 18:01. Заголовок: Всем привет. Непонят..


Всем привет.
Непонятка возникла по окнам.
Делаю форму:
 
DEFINE WINDOW Form_Calc ;
......
WINDOWTYPE STANDARD ;

с неё вызываются допустим 3 окна:
   cFormName  := "WinMemo_" + HB_NtoS( _GetId() )  
DEFINE WINDOW &cFormName ;
......
WINDOWTYPE STANDARD ;

После выхожу с формы Form_Calc и прога падает с ошибкой:
Error MGERROR/0 Window: Form_Calc is not defined. Program terminated.
--------------------------------- Stack Trace ---------------------------------
Called from MSGMINIGUIERROR(100) in module: h_error.prg
Called from GETPROPERTY(4387) in module: h_controlmisc.prg
Called from (b)PROVDB_3HMG(2458) in module: form_calc1.prg
Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg
Called from EVENTS(1828) in module: h_events.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg
Called from MSGEDIT(245) in module: Util_MsgEdit.prg
Called from REPORTTXTNOTEPAD(49) in module: ReportTxt.prg
Called from REPORTTXTONE(19) in module: ReportTxt.prg
Called from (b)PROVDB_2HMG(1422) in module: form_calc1.prg
Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg
Called from EVENTS(1828) in module: h_events.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg
Called from SHOW_CALC2(238) in module: form_calc.prg

Что не так делаю ?
Наверное нужно закрывать эти 3 открытые формы ?
А как их закрыть, если не знаю эти названия форм ?
Или эти окна могут оставаться на экране, даже если закрыта форма Form_Calc ?

P.S. Эти 3 формы вызываю по кнопке, типа:
      bAction := { || SetProperty(ThisWindow.Name, This.Name, "Enabled", .F.),; 
ReportTxtOne( cFileError, .T. ) ,;
SetProperty(ThisWindow.Name, This.Name, "Enabled", .T.) }


Спасибо: 0 
Профиль
SergKis



Пост N: 2636
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.07.19 08:29. Заголовок: Andrey Покрути прим..


Andrey
Покрути пример с окнами https://TransFiles.ru/vo4dq

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 674
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет