On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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: 2637
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.07.19 08:57. Заголовок: PS Кнопка "Refre..


PS
Кнопка "Refresh" - это инф. об окне и его реальный тип

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




Пост N: 2638
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.07.19 10:30. Заголовок: Andrey пишет b..


Andrey пишет
 цитата:
bAction := { || SetProperty(ThisWindow.Name, This.Name, "Enabled", .F.),;
ReportTxtOne( cFileError, .T. ) ,;
SetProperty(ThisWindow.Name, This.Name, "Enabled", .T.) }



Выделенная строка может приводить к ошибке, если в ReportTxtOne будут окна, среда This может быть другая.
Уже говорили на эту тему. Надо сохранять среду. К примеру _ThisInfo() из примера или
 
bAction := { |cw,cn| cw := ThisWindow.Name, cn := This.Name, ;
SetProperty(cw, cn, "Enabled", .F.),;
ReportTxtOne( cFileError, .T. ) ,;
SetProperty(cw, cn, "Enabled", .T.) }


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




Пост N: 6332
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.07.19 11:03. Заголовок: SergKis пишет: Выде..


SergKis пишет:

 цитата:
Выделенная строка может приводить к ошибке, если в ReportTxtOne будут окна, среда This может быть другая.


Скорее всего не будет, там простое окно.
Наверное как то туда нужно засунуть проверку на
If _IsWindowActive( cw ) 
SetProperty(cw, cn, "Enabled", .T.)
Endif

Как это в блок кода написать ?
Так как форма закрывается, а по кнопке у всех 3 окон остается действие - SetProperty(cw, cn, "Enabled", .T.)
Может я и не прав...

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




Пост N: 2639
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.07.19 13:44. Заголовок: Andrey пишетСкорее в..


Andrey пишет
 цитата:
Скорее всего не будет, там простое окно.


Если с простого окна переключить focus на окно standart выполнить кнопку (блок кода) на нем, вернуться фокусом не простое, то что в This - надо посмотреть.

 цитата:
Так как форма закрывается, а по кнопке у всех 3 окон остается действие - SetProperty(cw, cn, "Enabled", .T.)


В каждом блоке будут свои local переменные cw, cn со своими значениями.

 цитата:
Как это в блок кода написать ?


iif( _IsWindowActive(cw), Setproperty(...), Nil )

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




Пост N: 6333
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 16.07.19 01:18. Заголовок: Спасибо БОЛЬШОЕ за п..


Спасибо БОЛЬШОЕ за помощь !
Вот так теперь не вылетает:
      bAction := {|cw,cn| cw := ThisWindow.Name, cn := This.Name  ,;  
SetProperty(cw,cn, "Enabled", .F.) ,;
ReportTxtOne( cFileError, .T. ) ,;
iif( _IsWindowActive(cw), Setproperty(cw,cn, "Enabled", .T.), Nil ) }

Т.е. после закрытия окна Form_Calc все доп. окна WINDOWTYPE STANDARD остаются на экране.
Чего и добивался, значит проверка помогла.

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




Пост N: 6350
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.19 08:05. Заголовок: Всем привет ! Увидел..


Всем привет !
Увидел новую команду:
SET DIALOGBOX CENTER OF PARENT
Для чего она ?
Просветите пожалуйста.

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




Пост N: 1526
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.07.19 09:12. Заголовок: Andrey пишет: Для ч..


Andrey пишет:

 цитата:
Для чего она ?



 цитата:

- New: SET DIALOGBOX POSITION: Sets the position of the dialog boxes
(GetColor, GetFile, GetFolder, GetFont, MessageBoxTimeout, MsgXXX,
PutFile, SELECT PRINTER
, etc.)
Added the following commands:
- SET DIALOGBOX [ POSITION ] ROW <nRow>|<@VarCodeBlockRow>|<NIL> ;
COL <nCol>|<@VarCodeBlockCol>|<NIL>
- SET DIALOGBOX [ POSITION ] CENTER OF PARENT
- SET DIALOGBOX [ POSITION ] CENTER OF <hWnd>
- SET DIALOGBOX [ POSITION ] CENTER OF DESKTOP
- SET DIALOGBOX [ POSITION ] DISABLE



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




Пост N: 2690
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.07.19 00:35. Заголовок: gfilatov2002 Приме..


gfilatov2002

Пример Tsb_ReportAge с карточкой https://TransFiles.ru/of7u3

Проявилась проблемка, если активировать карточку (press Enter),
то без изменения данных в GetBox - все ok. Фокус стоит на <Down> и нажатие
Enter или Space перемещают курсор в тсб, фокус на той же кнопке.
Если измнить что то в GetBox, сделать <Save>, данные сохранятся, фокус встает
на кнопку <Down> и нажатие Enter или Space перемещают курсор в тсб, но фокус
улетает куда то. Нажатие мышкой на эту же кнопку ситуацию не меняет.
Тсб перемешает курсор, фокус с кнопки улетает.
На кл. F3 повешена попытка узнать где фокус ?
GetFocus() в лог выдает 0, т.е. в фокусе нет контрола hmg.
Следующие команды кл. F3 фокус на кнопку восстанавливают
 
ON KEY F3 ACTION ( _LogFile(.T., 'GetFocus =', GetFocus()), ;
SetFocus(ThisWindow.Handle), ;
SetFocus(This.Btn_01.Handle) )

Использование вместо BUTTONEX обычных BUTTON, ситуацию не меняют.
STATIC FUNC AgeCard( oWnd, oBrw, oCnl )
LOCAL nRet
LOCAL bInit := {|| bAgeCard(oWnd, oBrw, oCnl) }
LOCAL aClr := NIL // { GRAY , GRAY, GREEN, RED }

...

В этом заковыка, может, кто сталкивался и есть решение.

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




Пост N: 1534
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.07.19 19:17. Заголовок: SergKis пишет: може..


SergKis пишет:

 цитата:
может, кто сталкивался и есть решение


Да, есть такая проблема с фокусировкой при взаимодействии TBrowse и GetBox
Но готового решения у меня нет
Хотя вроде все работает, если нажимать на кнопки мышкой, а не использовать клавиатуру...

SergKis пишет:

 цитата:
Пример Tsb_ReportAge с карточкой


Пример очень понравился
Планируете ли продолжать работу над ним (сохранение изменений также в DBF-файл, а не только в массив)?

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




Пост N: 2691
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.07.19 19:42. Заголовок: gfilatov2002 пишет Х..


gfilatov2002 пишет
 цитата:
Хотя вроде все работает, если нажимать на кнопки мышкой, а не использовать клавиатуру...


Так клиенты хотят клавой рулить, а тут визуально окно в фокусе, а TAB, Shift+TAB отключены и пока манипуляциями разными не удалось получить нажатие F3 автоматом для установки фокуса.
 цитата:

Планируете ли продолжать работу над ним (сохранение изменений также в DBF-файл, а не только в массив)?


Да, уже подключил в массив RecNo, потихоньку двигаю вперед

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




Пост N: 1535
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.07.19 19:47. Заголовок: SergKis пишет: Да, ..


SergKis пишет:

 цитата:
Да, уже подключил в массив RecNo


Отлично

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



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




Пост N: 2692
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.07.19 22:05. Заголовок: gfilatov2002 Сохране..


gfilatov2002
Сохранение изменений в DBF-файл сделал, но без Ваших изменений.
Тут https://TransFiles.ru/qj664

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




Пост N: 1536
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.07.19 22:46. Заголовок: SergKis пишет: Сохр..


SergKis пишет:

 цитата:
Сохранение изменений в DBF-файл сделал


Спасибо

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




Пост N: 6369
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.07.19 22:50. Заголовок: Всем привет ! У меня..


Всем привет !
У меня в тестовом примере стоит:
SET DIALOGBOX CENTER OF PARENT

Вывожу HMG_Alert() - а он по центру экрана.
Разве он не должен быть по центру приложения ?

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




Пост N: 1537
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.07.19 11:40. Заголовок: Andrey пишет: SET D..


Andrey пишет:

 цитата:
SET DIALOGBOX CENTER OF PARENT

Вывожу HMG_Alert() - а он по центру экрана.


Эта команда предназначена для функции MsgInfo() и т.п.

Для функции HMG_Alert() используй другую команду:

 цитата:
SET CENTERWINDOW RELATIVE PARENT



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




Пост N: 2693
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.07.19 12:11. Заголовок: gfilatov2002 Поправ..


gfilatov2002
Поправьте пример, будут клавиши управления на карточке повторять кнопки
 
STATIC FUNC AgeCard( oWnd, oBrw, oCnl )
...
LOCAL aButt := {"&Down","&Up" ,"&Save"," &Cancel "}
...
STATIC FUNC bAgeCard( oWnd, oBrw, oCnl )
...
ON KEY ESCAPE ACTION Age_CardSave( oBrw, .F. )

ON KEY CONTROL+D ACTION iif( This.Btn_01.Enabled, Age_CardSkip( oBrw, .T. ), )
ON KEY CONTROL+U ACTION iif( This.Btn_02.Enabled, Age_CardSkip( oBrw, .F. ), )
ON KEY CONTROL+S ACTION iif( This.Btn_03.Enabled, Age_CardSave( oBrw, .T. ), )
ON KEY CONTROL+C ACTION Age_CardSave( oBrw, .F. )

RETURN NIL
...
STATIC FUNC Age_CardSkip( oBrw, lDown )
...
This.Btn_03.Enabled := .F.
ThisWindow.Cargo := .F.
ThisWindow.Closable := .T.

...


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




Пост N: 1538
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.07.19 13:04. Заголовок: SergKis пишет: буд..


SergKis пишет:

 цитата:
будут клавиши управления на карточке повторять кнопки


Добавил эти изменения в пример
Благодарю за помощь

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




Пост N: 6378
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.08.19 17:04. Заголовок: Всем привет ! Можно ..


Всем привет !
Можно ли сделать, когда программа сваливается по ошибке, выполнить еще доп.действие ?
Просто при расчётах вывожу нужные мне данные в лог-файл, хотелось бы чтобы
после вылета программы этот лог-файл поднялся по команде
   ShellExecute(, "open", "notepad.exe", M->SetTemp + MyLog,, 1 )

Как это сделать ?

На моём компе база считается без ошибок, а у юзера одного вылетает.
Одна база у меня и у юзера, а поведение разное.

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




Пост N: 6380
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.08.19 18:51. Заголовок: Andrey пишет: Как э..


Andrey пишет:

 цитата:
Как это сделать ?


Придумал.
Нужно запустить маленькую внешнюю программу через c 2 кнопками "Просмотр журнала" и "Выход"
ShellExecute(, "open", "MyLogView.exe", M->SetTemp + MyLog,, 1 )
Запомнить его хендл.
Если расчёт прошёл без ошибок, то убить эту прогу через хендл.
Если нет, то можно смотреть лог-ошибки при расчётах.

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




Пост N: 2715
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.08.19 19:48. Заголовок: Andrey пишет Нужно з..


Andrey пишет
 цитата:
Нужно запустить маленькую внешнюю программу


BEGIN SEQUENCE WITH {|o| break(o)}
RECOVER
END SEQUENCE

Маловато будет ?

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