Автор | Сообщение |
Andrey
|
| постоянный участник
|
Пост N: 1929
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)
Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \MiniGUI\SAMPLES\Advanced\AVI_Animation - не работает под Win7 (наверно AVI-шки нет в ресурсах) Предложение Григорию: Можно ли добавить еще один пример с отдельным AVI-файлом в ресурсах проекта и показом такого же бегунка ? Пример: \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.
|
|
|
Ответов - 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" - это инф. об окне и его реальный тип
|
|
|
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.) }
|
|
|
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.) Может я и не прав...
|
|
|
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 )
|
|
|
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 остаются на экране. Чего и добивался, значит проверка помогла.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6350
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.07.19 08:05. Заголовок: Всем привет ! Увидел..
Всем привет ! Увидел новую команду: SET DIALOGBOX CENTER OF PARENT Для чего она ? Просветите пожалуйста.
|
|
|
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 |
|
|
|
|
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 } ... В этом заковыка, может, кто сталкивался и есть решение.
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1534
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.07.19 19:17. Заголовок: SergKis пишет: може..
SergKis пишет: цитата: | может, кто сталкивался и есть решение |
| Да, есть такая проблема с фокусировкой при взаимодействии TBrowse и GetBox Но готового решения у меня нет Хотя вроде все работает, если нажимать на кнопки мышкой, а не использовать клавиатуру... SergKis пишет: цитата: | Пример Tsb_ReportAge с карточкой |
| Пример очень понравился Планируете ли продолжать работу над ним (сохранение изменений также в DBF-файл, а не только в массив)?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2691
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.07.19 19:42. Заголовок: gfilatov2002 пишет Х..
gfilatov2002 пишет цитата: | Хотя вроде все работает, если нажимать на кнопки мышкой, а не использовать клавиатуру... |
| Так клиенты хотят клавой рулить, а тут визуально окно в фокусе, а TAB, Shift+TAB отключены и пока манипуляциями разными не удалось получить нажатие F3 автоматом для установки фокуса. цитата: | Планируете ли продолжать работу над ним (сохранение изменений также в DBF-файл, а не только в массив)? |
| Да, уже подключил в массив RecNo, потихоньку двигаю вперед
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1535
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.07.19 19:47. Заголовок: SergKis пишет: Да, ..
SergKis пишет: цитата: | Да, уже подключил в массив RecNo |
| Отлично Да, у меня после небольших изменений карточка выглядит так
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2692
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.07.19 22:05. Заголовок: gfilatov2002 Сохране..
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1536
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.07.19 22:46. Заголовок: SergKis пишет: Сохр..
SergKis пишет: цитата: | Сохранение изменений в DBF-файл сделал |
| Спасибо
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6369
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.07.19 22:50. Заголовок: Всем привет ! У меня..
Всем привет ! У меня в тестовом примере стоит: SET DIALOGBOX CENTER OF PARENT Вывожу HMG_Alert() - а он по центру экрана. Разве он не должен быть по центру приложения ?
|
|
|
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 |
|
|
|
|
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. ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1538
Зарегистрирован: 11.02.10
|
|
Отправлено: 29.07.19 13:04. Заголовок: SergKis пишет: буд..
SergKis пишет: цитата: | будут клавиши управления на карточке повторять кнопки |
| Добавил эти изменения в пример Благодарю за помощь
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6378
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.08.19 17:04. Заголовок: Всем привет ! Можно ..
Всем привет ! Можно ли сделать, когда программа сваливается по ошибке, выполнить еще доп.действие ? Просто при расчётах вывожу нужные мне данные в лог-файл, хотелось бы чтобы после вылета программы этот лог-файл поднялся по команде ShellExecute(, "open", "notepad.exe", M->SetTemp + MyLog,, 1 ) Как это сделать ? На моём компе база считается без ошибок, а у юзера одного вылетает. Одна база у меня и у юзера, а поведение разное.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6380
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.08.19 18:51. Заголовок: Andrey пишет: Как э..
Andrey пишет: Придумал. Нужно запустить маленькую внешнюю программу через c 2 кнопками "Просмотр журнала" и "Выход" ShellExecute(, "open", "MyLogView.exe", M->SetTemp + MyLog,, 1 ) Запомнить его хендл. Если расчёт прошёл без ошибок, то убить эту прогу через хендл. Если нет, то можно смотреть лог-ошибки при расчётах.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2715
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.08.19 19:48. Заголовок: Andrey пишет Нужно з..
Andrey пишет цитата: | Нужно запустить маленькую внешнюю программу |
| BEGIN SEQUENCE WITH {|o| break(o)} RECOVER END SEQUENCE Маловато будет ?
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|