On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
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 
Профиль
Ответов - 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. Заголовок: Спасибо БОЛЬШОЕ. Сд..


Спасибо БОЛЬШОЕ.
Сделал, работает.

Теперь другой вопрос.
Как вернуть текущему окну (в котором работает юзер) фокус ввода из моей задачи ?

А то, после запуска моей задачи из трея, приходится мышкой тыкать в то окно, с которым работал.

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 88
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.08.13 12:27. Заголовок: Как вернуть текущему окну


на вскидку два варианта

1) получить указатель окна пользователя ( ShrinkIt из примеров минигуи в помощь ) и читать типа этого http://www.wasm.ru/forum/viewtopic.php?pid=123607

2) Вообще не забирать фокус у окна пользователя а писать статистику в лог ( базу ). Из программы пользователя анализировать этот лог ( базу ) и выводить сообщения из нее.


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




Пост N: 2949
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.08.13 13:20. Заголовок: Haz пишет: на вскид..


Haz пишет:

 цитата:
на вскидку два варианта


Спасибо БОЛЬШОЕ !
Второй вариант лучше. Меньше "париться" !

Спасибо: 0 
Профиль
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

То почему то окно все равно показывается на экран.
Что не так делаю ?


Спасибо: 0 
Профиль
Haz
администратор




Пост N: 89
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.08.13 15:01. Заголовок: все так


вроде все так, без живого примера не понять

перед Win_Zaiv.Center добавь Win_Zaiv.Hide и забудь


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




Пост N: 2954
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.08.13 18:46. Заголовок: Haz пишет: перед Wi..


Haz пишет:

 цитата:
перед Win_Zaiv.Center добавь Win_Zaiv.Hide и забудь



Не получается !
Окно все равно выводиться. Почему ?
Я же ставлю при создание окна NOSHOW !
А окно появляется:


Вот полный код:
Скрытый текст


У Григория есть пример \MiniGUI\SAMPLES\BASIC\SPLASHDEMO\demo.prg
Там нормально отрабатывает NOSHOW:
Скрытый текст


По доке окно MODAL тоже может быть NOSHOW...
Или глюк какой то ?



Спасибо: 0 
Профиль
Haz
администратор




Пост N: 90
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 26.08.13 19:40. Заголовок: видимо косячек


видимо косячек в минигуи с модальным окном.
как вариант в ON INIT засунуть ThisWindow.hide , прячет но мелькает всеравно

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




Пост N: 241
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.08.13 19:50. Заголовок: Haz пишет:видимо кос..


Haz пишет:
 цитата:
видимо косячек в минигуи с модальным окном.


и не только в модальном (было в версии 2.07) всегда show


Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
Панченко





Пост N: 52
Зарегистрирован: 13.06.12
ссылка на сообщение  Отправлено: 29.08.13 18:09. Заголовок: Андрей, убери Win_Za..


Андрей, убери Win_Zaiv.Activate (ну и Hide перед ним тоже не нужен)

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




Пост N: 2960
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.08.13 19:51. Заголовок: Панченко пишет: Анд..


Панченко пишет:

 цитата:
Андрей, убери Win_Zaiv.Activate (ну и Hide перед ним тоже не нужен)



Конечно. Ставил я это из-за того:

Haz пишет:

 цитата:
видимо косячек в минигуи с модальным окном.




Спасибо: 0 
Профиль
Панченко





Пост N: 53
Зарегистрирован: 13.06.12
ссылка на сообщение  Отправлено: 30.08.13 08:42. Заголовок: Andrey пишет: Haz п..


Andrey пишет:

 цитата:
Haz пишет:

 цитата:
видимо косячек в минигуи с модальным окном.




Андрей, описываешь модальное окно с NOSHOW. ACTIVATE не надо !!! (это активация окна, которая выводит его на экран). Окно нормально создается, но на экран не выводится.


Спасибо: 0 
Профиль
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" - работает один раз. При повторном обращении падает с ошибкой указанной выше...
Где и что править ?
Или придется делать ДВЕ отдельные функции: с окном и без окна ? Но это же неправильно !


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




Пост N: 244
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.08.13 21:39. Заголовок: Andrey для проверки ..


Andrey
для проверки наличия есть:
_IsWindowDefined('Form_1') - для окон
_IsControlDefined('Label_1', 'Form_1') - для контролов

Спасибо: 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 перед ним тоже не нужен)



Тогда неправ Панченко ?


Спасибо: 0 
Профиль
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)

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




Пост N: 246
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.13 06:07. Заголовок: Andrey при вызове (c..


Andrey
при вызове (click-ом) из Tray фокус на Tray меню, hide в новом запуске вернет фокус на последний фокус где был, т.е. на окно задачи не вернет.

Спасибо: 0 
Профиль
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)


А как вы это делаете ?
Подскажите пожалуйста.

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




Пост N: 248
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.13 15:58. Заголовок: Andrey Я это делаю A..


Andrey
Я это делаю AutiIt3, мы это уже обсуждали, в hb через FindWindow в ваших темах где-то было

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




Пост N: 249
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.08.13 16:04. Заголовок: Andrey пишет:А это о..


Andrey пишет:
 цитата:
А это окно все равно показывается на экране.


NOSHOW я не использую, когда надо делаю DoMethod(cWnd, 'Hide', .T.) или .F., работает как надо, претензий нет

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