Форум » GUI » Примеры из Минигуи -ошибки, вопросы..... » Ответить

Примеры из Минигуи -ошибки, вопросы.....

Andrey: Всем привет. Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ? А заодно может и исправить и добавить новые.... Очень красочный пример: \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.

Ответов - 301, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All

Andrey: Haz пишет: Form_9.Grid_log.Value := Len(aList) Спасибо БОЛЬШОЕ !

Andrey: Всем доброй ночи... Подскажите как проконтролировать ввод названия папки: M->cPubDirFlaska := "TEST\" ...... @ 128, 20 + 60 TEXTBOX Text_2 ; WIDTH 500 ; VALUE M->cPubDirFlaska ; FONT "Courier New" Size 12 BOLD ; ON LOSTFOCUS {|| M->cPubDirFlaska := AllTrim(Form_5.Text_2.Value) } Т.е. если юзер забыл в конце добавить знак "\", то нужно его добавить автоматом... Заранее спасибо за помощь !

Dima: Andrey пишет: Т.е. если юзер забыл в конце добавить знак "\", то нужно его добавить автоматом... Тупо проверить символ справа например или устроить разбор строки.


Andrey: Dima пишет: Тупо проверить символ справа например или устроить разбор строки. А как ? Я не могу понять как это реализовать в МиниГуи ? Где ставить вызов обрабатываемой функции ? Сама функция есть: Function MyFixDir(cDir) cDir := AllTrim(cDir) IF SubStr(cDir,Len(cDir),1) # "\" cDir := cDir + "\" ENDIF RETURN cDir

PSP: Andrey пишет: Я не могу понять как это реализовать в МиниГуи ? Где ставить вызов обрабатываемой функции ? У тебя ж есть блок кода в ON LOSTFOCUS. Туда и вставь.

Dima: Andrey пишет: А как ? Andrey пишет: M->cPubDirFlaska := "TEST\" Вот так наверное M->cPubDirFlaska :=Твоя функция

Andrey: PSP пишет: У тебя ж есть блок кода в ON LOSTFOCUS. Туда и вставь. Dima пишет: Вот так наверное M->cPubDirFlaska :=Твоя функция Не пашет !!! Только потом сообразил, что нужно перепоказать значение в TEXTBOX Text_2 .... Вот так работает: @ 128, 20 + 60 TEXTBOX Text_2 ; WIDTH 500 ; VALUE M->cPubDirFlaska ; ON LOSTFOCUS {|| M->cPubDirFlaska := MyFixDir(Form_5.Text_2.Value) } Сама функция: Function MyFixDir(cDir) cDir := AllTrim(cDir) IF SubStr(cDir,Len(cDir),1) # "\" cDir := cDir + "\" ENDIF Form_5.Text_2.Value := cDir RETURN cDir Спасибо за подсказку !

Andrey: Возможно ли выведенный объект на форме поменять цвет ? Допустим есть объект @ 275,20 PROGRESSBAR Progress_1 ; RANGE 0,100 ; VALUE 0; WIDTH 530 HEIGHT 25 После завершения пробега бегунка, я хочу закрасить его другим цветом. Как это сделать ? Может пример есть ?

Andrey: В Клипере и Харборе есть отличная функция: ColorWin() Replaces a color attribute in a screen region Есть ли аналог такой функции в МиниГуи ?

Andrey: Помогите понять ошибку. Прога сваливается с непонятной периодичностью... Ошибка вот такая: Time from start: 0 days 0 hours 5 mins 0 secs Error: Non Modal Window Win_Zaiv can't be activated when a Modal window is active. Called from _ACTIVATEWINDOW(1303) Called from DOMETHOD(4654) Called from CHANGE_ZAIVKI(343) Программа "сидит" в трее и функцию CHANGE_ZAIVKI(343) вызываю по таймеру через каждые 5 минут. Как долго работает прога, не знаю... Может свалиться и через 5 минут или через час... Непонятки сплошные...

Dima: Andrey пишет: Non Modal Window Win_Zaiv can't be activated when a Modal window is active. Не модальное окно Win_Zaiv не может быть активировано когда модальное окно активно. PS Прошу прощения за мой плохой англо русский перевод

Andrey: Dima пишет: Не модальное окно Win_Zaiv не может быть активировано когда модальное окно активно. Как такое может быть ? Работает прога нормально, посылает на сайт данные... а потом бац: Non Modal Window Win_Zaiv can't be activated when a Modal window is active.

Haz: Андрей , а что за окно Win_Zaiv? судя по ошибке ты пытаешься его активировать при активном модальном окне Проверь все окна

Andrey: Andrey пишет: Программа "сидит" в трее и функцию CHANGE_ZAIVKI(343) вызываю по таймеру через каждые 5 минут. Не правильно написал. Основной модуль: DEFINE WINDOW Form_1 ; AT 0,0 ; WIDTH 0 HEIGHT 0 ; TITLE PROGRAM ; MAIN NOSHOW ; NOTIFYICON '1MAIN_ICON' ; ..... DEFINE TIMER Timer_1 ; INTERVAL (M->TimeUpdate * 60) * 1000 ; ACTION AutoCheckZaiv() END WINDOW ..... Procedure AutoCheckZaiv() If !lActive lActive := .T. lInet := IsConnected() // см. InetState.prg IF lInet // Проверка доступности интернета ZaivkaSite_NoWin() // Выбираю и копирую из базы записи на сайт ....................... lActive := .F. Endif Return /////////////////////// Другой файл: FUNCTION ZaivkaSite_NoWin() LOCAL cDbfZaivIzm,cDbfZaivZip cDbfZaivIzm := "test_site.dbf" // создание БД измененных записей cDbfZaivZip := CHANGE_ZAIVKI(cDbfZaivIzm,M->cPubPathTemp,M->dPubZaivChancg,"NoWin") IF LEN(cDbfZaivZip) > 0 SaveToSiteZaivka2(cDbfZaivZip,M->cPubPathTemp,"NoWin") // отправка архива на сайт ENDIF RETURN NIL ............... FUNCTION CHANGE_ZAIVKI(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) LOCAL cTitle := "Подготовка измененных записей" LOCAL cDbfZip := "" DEFAULT cTypeWin TO "" DEFINE WINDOW Win_Zaiv ; ROW 0 COL 0 ; WIDTH 480 ; HEIGHT 240 ; TITLE cTitle ; ICON "ICON2SITE" ; CHILD ; NOSIZE NOMAXIMIZE NOMINIMIZE; FONT 'Tahoma' SIZE 10 ; ON INIT { || cDbfZip := InitChangeZaivki(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) } ............. END WINDOW Win_Zaiv.Center Win_Zaiv.Activate RETURN cDbfZip //////////////////////////////////////////////////////////// // Инициализация формы FUNCTION InitChangeZaivki(cDbfZaivIzm,cPathDbf,dZaivka,cTypeWin) ........... // открытие общей базы cFileDbf := M->cPubPathZaiv + "dbase.dbf" bErrHandler := ErrorBlock( { | VAR | BREAK( VAR ) } ) BEGIN SEQUENCE USE ( cFileDbf ) Alias BASEMAIN CODEPAGE "RU866" NEW SHARED RECOVER cMsg := "Ошибка ! НЕ могу открыть базу !" + CRLF + CRLF + cFileDbf MsgStop( cMsg , MSGTITLE ) Win_Zaiv.Release() RETURN "" END SEQUENCE ErrorBlock( bErrHandler ) // IF MyOpenSprav(@cErr) //открытие справочников ELSE cMsg := "Ошибка ! НЕ смог открыть СПРАВОЧНИКИ !" + CRLF + CRLF + cErr MsgStop( cMsg , MSGTITLE ) Win_Zaiv.Release() RETURN "" ENDIF ....... и т.д. Вроде всегда при ошибках делаю закрытие окна Win_Zaiv.Release() ! Вот прога уже три часа нормально в трее сидит, не ломается. Или нужно еще что-то делать, для обработок ошибок ?

Haz: самое простое - сделать Win_Zaiv модальным окном а не CHILD

SergKis: Andrey пишет:Или нужно еще что-то делать В AutoCheckZaiv() надо отключать timer на время выполнения работ и включать timer по завершению снова, где-то на эту тему мы уже общались

sashaBG: Я тоже так думаю

Andrey: Haz пишет: самое простое - сделать Win_Zaiv модальным окном а не CHILD Не ставиться ! Если меняю на: DEFINE WINDOW Win_Zaiv ; ........... TITLE cTitle ; MODAL; NOSIZE NOMAXIMIZE NOMINIMIZE; ........ То при сборке выдает кучу ошибок: Source\Zaiv_to_Site.prg(310) Error E0030 Syntax error "syntax error at 'WINDOW'" Source\Zaiv_to_Site.prg(341) Error E0030 Syntax error "syntax error at '.'" Source\Zaiv_to_Site.prg(342) Error E0030 Syntax error "syntax error at '.'" и т.д. SergKis пишет: В AutoCheckZaiv() надо отключать timer на время выполнения работ и включать timer по завершению снова, где-то на эту тему мы уже общались Пересмотрел форум, не нашел. Помню что вы рекомендовали, а что точно не помню. Если несложно, пожалуйста повторите что и как нужно сделать ? Заранее БОЛЬШОЕ спасибо.

Haz: Andrey пишет: TITLE cTitle ; MODAL; NOSIZE NOMAXIMIZE NOMINIMIZE; Синтаксис описания модального окна отличается от не модального. Сравни по мануалу. В частности там нет NOMAXIMIZE NOMINIMIZE

SergKis: Andrey пишет: повторите что и как нужно сделать Procedure AutoCheckZaiv() SetProperty('Form_1', 'Timer_1', 'Enabled', .F.) // выкл. или Form_1.Timer_1.Enabled := .F. ... SetProperty('Form_1', 'Timer_1', 'Enabled', .T.) // вкл. или Form_1.Timer_1.Enabled := .T. Return



полная версия страницы