Автор | Сообщение |
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.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
Andrey
|
| постоянный участник
|
Пост N: 3724
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.14 18:48. Заголовок: Как мне до создания ..
Как мне до создания окна MAIN показать окно CHILD (или другое) с сообщением типа - "Подождите, создаю базы..." ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 429
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.11.14 20:41. Заголовок: Andrey пишет:с сообщ..
Andrey пишет: цитата: | с сообщением типа - "Подождите, создаю базы..." ? |
| может подойдет схема из BASIC\WAIT_WINDOW\*.* с MAIN NOSHOW и окном сообщения в ON INIT, а после всех дел MAIN перевести в show.
|
|
|
Dima
|
| |
Пост N: 4268
Зарегистрирован: 17.05.05
|
|
Отправлено: 15.11.14 20:53. Заголовок: Andrey У тебя склер..
Andrey У тебя склероз ? Ты этот вопрос уже задавал. Поиск на форуме по слову SPLASH или пример MiniGUI\SAMPLES\BASIC\SPLASHDEMO_3
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 467
Зарегистрирован: 13.10.05
|
|
Отправлено: 15.11.14 21:03. Заголовок: Примеры WAIT_WINDOW..
Примеры WAIT_WINDOW_FOX TimedMsgBox посмотри
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3725
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.14 22:36. Заголовок: Dima пишет: У тебя ..
Dima пишет: Vlad04 пишет: А прочитать внимательно можно ? Andrey пишет: цитата: | Как мне до создания окна MAIN показать окно |
| Если нельзя это делать - так напишите что НЕЛЬЗЯ !
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3726
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.11.14 22:40. Заголовок: SergKis пишет: с MA..
SergKis пишет: цитата: | с MAIN NOSHOW и окном сообщения в ON INIT, а после всех дел MAIN перевести в show. |
| Да я знаю про этот вариант, просто принципиально понять хочу. Если нет MAIN окна, то выводить другие окна нельзя получается ? Т.е. такой код никогда не будет работать: Show_MyInfo(.T.) // показ сообщения Open_MyDbf Show_MyInfo(.F.) // скрыть сообщение DEFINE WINDOW Form_Main AT 0,0 WIDTH 720 HEIGHT 560 ; MAIN ; ..... END WINDOW ACTIVATE WINDOW Form_Main ----------------------------------- Почему тогда окна из MsgDebug(), MsgInfo() - всегда показывать можно ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 430
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.11.14 23:43. Заголовок: Andrey пишет: Show_M..
Andrey пишет: цитата: | Show_MyInfo(.T.) // показ сообщения Open_MyDbf Show_MyInfo(.F.) // скрыть сообщение |
| ты пропустил, сначала CreateWindow_MyInfo()+Title+Menu+кнопки(min,max,exit)+контроы окна+... потом Show_MyInfo(.T.) Open_MyDbf() // здесь возможны сообщения для окна, причем разные ... ... и не забудь про Release, Destroy окна а теперь сравни с DEFINE ... END WINDOW, которые ты писал а CHILD сразу говорит дочернее, т.е. есть главное уже должно быть - это возвращаясь к твоему вопросу
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3729
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.11.14 01:16. Заголовок: Andrey пишет: Как м..
Andrey пишет: цитата: | Как мне до создания окна MAIN показать окно CHILD (или другое) с сообщением типа - "Подождите, создаю базы..." ? |
| В моёй вопросе есть ещё фраза - (или другое) ! Т.е. можно значит создать окно до MAIN ?
|
|
|
Softlog86
|
| |
Пост N: 192
Зарегистрирован: 03.12.08
|
|
Отправлено: 16.11.14 12:30. Заголовок: Всё как вы и хотели ..
Всё как вы и хотели : Запускается SPLASCH окошко ("Ждите подключение к БД и тд") - и по завершении включает главное окно : #include "minigui.ch" #define WM_PAINT 15 #command DEFINE WINDOW <w> ; [ AT <row>,<col> ] ; [ WIDTH <wi> ] ; [ HEIGHT <h> ] ; PICTURE <bitmap> ; SPLASH ; [ DELAY <delay> ] ; [ ON RELEASE <ReleaseProcedure> ] ; => ; _DefineSplashWindow( <"w">, <row>, <col>, <wi>, <h>, <bitmap>, <delay>, <{ReleaseProcedure}> ) /* */ 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 /* */ Procedure _DefineSplashWindow( name, row, col, width, height, cbitmap, nTime, Release ) Local aBmpSize := BmpSize( cbitmap ) DEFAULT row := 0, col := 0, width := aBmpSize[1], height := aBmpSize[2], nTime := 2 DEFINE WINDOW &name ; AT row, col ; WIDTH width HEIGHT height ; CHILD TOPMOST ; NOSIZE NOMAXIMIZE NOMINIMIZE NOSYSMENU NOCAPTION ; ON INIT _SplashDelay( name, nTime ) ; ON RELEASE Eval( Release ) @ 0,0 IMAGE Image_1 ; PICTURE cbitmap ; WIDTH width ; HEIGHT height END WINDOW IF EMPTY(row) .AND. EMPTY(col) CENTER WINDOW &name ENDIF SHOW WINDOW &name Return /* */ Procedure _SplashDelay( name, nTime ) Local iTime := Seconds() SendMessage( GetFormHandle(name), WM_PAINT, 0, 0 ) Do While Seconds() - iTime < nTime Do Events EndDo DoMethod( name, 'Release' ) Return
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3731
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.11.14 16:13. Заголовок: Andrey пишет: Всё к..
Andrey пишет: Я хотел поменьше кода и не такой геморой с передачей/возвратом.... //Показать окно // Создать базы //скрыть окно // А потом уж DEFINE WINDOW Form_Main ; MAIN ;
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3786
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.11.14 22:41. Заголовок: Вопрос к Григорию, н..
Вопрос к Григорию, насчет кнопок ! Есть в рабочем примере такая конструкция: DEFINE BUTTONEX &cObject PARENT &cForm .......... HANDCURSOR .T. ONMOUSEHOVER ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco2), SetProperty(ThisWindow.Name, cObject, "fontcolor", aFontColorInvert ) ) ONMOUSELEAVE ( SetProperty(ThisWindow.Name, cObject, "ICON", cResIco) , SetProperty(ThisWindow.Name, cObject, "fontcolor", aFontColor) ) END BUTTONEX Пытаюсь сделать то же самое, только без DEFINE: @ nButtY,nWinWidth-20-nLenButt BUTTONEX BUTTON_4 WIDTH nLenButt HEIGHT nHButt ; CAPTION "Выход" ; ICON "iExit48x1" ; FONTCOLOR aFontColor ; BACKCOLOR MAROON ; SIZE nFBSize BOLD ; NOHOTLIGHT NOXPSTYLE HANDCURSOR ; ONMOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ; ONMOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ; ACTION ( aRetColor := {} , aUslColor:= {}, ThisWindow.Release ) Не собирается, выдает ошибку: Form_color.prg(120) Error E0030 Syntax error "syntax error at '@'" Где неправильно делаю ? И как правильно заменить в SetProperty( ThisWindow.Name, "BUTTON_4", ...) - BUTTON_4 на аналогичное, короткое название ? ThisWindow.Name - _HMG_THISFORMNAME ?????? - _HMG_THISCONTROLNAME Где то встречал, но сейчас не нашёл.
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 692
Зарегистрирован: 11.02.10
|
|
Отправлено: 30.11.14 23:47. Заголовок: Andrey пишет: ONMOU..
Andrey пишет: цитата: | ONMOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ; ONMOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ; |
| Для такой команды синтаксис д.б. с пробелом цитата: | ON MOUSEHOVER ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x2" ) ) ; ON MOUSELEAVE ( SetProperty( ThisWindow.Name, "BUTTON_4", "ICON", "iExit48x1" ) ) ; |
| Andrey пишет: This.Name пробовал
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3787
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.14 01:28. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: Ну точно помню что видел такую конструкцию, лазил даже в i_this.ch - там не нашёл. Спасибо БОЛЬШОЕ за помощь !!!
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3788
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.12.14 13:17. Заголовок: Что то не работает п..
Что то не работает переключение иконок. Вторая иконка появляется только при нажатии кнопки. Почему ? Как исправить ? @ nButtY,nWinWidth-20-nLenButt BUTTONEX BUTTON_4 WIDTH nLenButt HEIGHT nHButt ; CAPTION "Выход" ; ICON "iExit48x1" ; BACKCOLOR MAROON ; FONTCOLOR aFontColor ; SIZE nFBSize BOLD ; NOHOTLIGHT NOXPSTYLE HANDCURSOR ; ON MOUSEHOVER ( SetProperty( ThisWindow.Name, This.Name, "ICON", "iExit48x2" ) ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFontColor2 ) ) ; ON MOUSELEAVE ( SetProperty( ThisWindow.Name, This.Name, "ICON", "iExit48x1" ) ,; SetProperty(ThisWindow.Name, This.Name, "fontcolor", aFontColor ) ) ; ACTION ( aRetColor := {} , aUslColor:= {}, ThisWindow.Release )
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3790
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.14 16:29. Заголовок: А можно как то сдела..
А можно как то сделать перевод с одного языка на другой на лету программы ? Т.е. я не хочу делать отдельный языковой файл для программы, хочу просто переводить на другой язык в момент показа формы. Можно ли как то все сообщения программы записать в файл (включая имена переменных) ? А потом можно сделать отдельный модуль с переводом на другой язык. Т.е. форма всегда выводиться на русском, а если установлен другой язык, то переменные на форме перечитываются на нужный язык.
|
|
|
Dima
|
| |
Пост N: 4291
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.12.14 16:54. Заголовок: посмотри для примера..
|
|
|
petr707
|
| |
Пост N: 118
Зарегистрирован: 21.04.13
|
|
Отправлено: 03.12.14 16:55. Заголовок: Перевод...на другой язык
Кто переводить-то будет ? Перевод сильно зависит от контекста. Отдельное слово часто невозможно перевести без контекста. "Мир" как переведешь ? "World" или "peace" ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 444
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.12.14 17:27. Заголовок: Andrey пишет:А можно..
Andrey пишет: цитата: | А можно как то сделать перевод с одного языка на другой на лету программы ? |
| petr707 пишет: цитата: | Кто переводить-то будет ? |
| можно пойти по такому пути: Переводчик Google
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3791
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.12.14 19:23. Заголовок: Можно ли как то все ..
Dima пишет: цитата: | посмотри для примера сырец dbedit.prg от Паши |
| Посмотрел. Я примерно так же раньше делал. Потом у Григория взял в качестве примера MiniGUI\SAMPLES\Applications\DBFview\source\DBFview.lng но это не совсем то. Я проще хочу поступить. Можно ли как то все сообщения программы записать в файл (включая имена переменных) ? Т.е. по кнопке обход всех форм, считывание Label, FRAME, BUTTONEX и сброс их в файл. А уж из этого файла можно будет отдельную функцию в программе сделать.
|
|
|
Haz
|
| |
Пост N: 382
Зарегистрирован: 20.02.11
|
|
Отправлено: 05.12.14 13:24. Заголовок: Context MENU
Григорий, добрый день. Есть маленький, но неприятный глючок в CONTEXT MENU, причем проявляется не всегда ( Andrey тоже писал тут про него ) Суть его в том , что после выбора пункта меню, само меню не закрывается ( только со второго раза ). У меня это проявляется при использовании контекста в TSBrowse DEFINE CONTEXT MENU CONTROL oBrw OF Win MENUITEM 'Добавить новую статью ' ACTION {|| ... } NAME CM_1 MENUITEM 'Удалить текущую статью' ACTION {|| ... } NAME CM_2 END MENU иногда глюк решался забором фокуса от меню через вывод сообщения по окончании ACTION - MsgBox('что то там выполнено'), но не всегда это вписывается в логику. Перечитав исходники MiniGui нашел в h_Events.prg такие строки: =================[ От сюда ]================= 1400: // Process Menus ....................................... IF HiWord( wParam ) == 0 .AND. _HMG_aControlType == "MENU" _DoControlEventProcedure ( _HMG_aControlProcedures , i ) RETURN 0 ENDIF =================[ До сюда ]================= Судя по всему это и есть вызов того самого ACTION, и подумав что меню лучше закрывать ПЕРЕД этим вызовом - добавил строку =================[ От сюда ]================= 1400: // Process Menus ....................................... IF HiWord( wParam ) == 0 .AND. _HMG_aControlType == "MENU" _CloseMenu() _DoControlEventProcedure ( _HMG_aControlProcedures , i ) RETURN 0 ENDIF =================[ До сюда ]================= Глючок то исчез Грирогий, если эта корректировка правильна, может ее внести в след версию ?
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|