Форум » 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.

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

Andrey: Dima пишет: Andrey StrFile() Неудобен. Нет вывода массива, и т.д., т.е. нужно ручками преобразовывать в строку нужные тебе переменные. А в функции MsgLog() это делается автоматом... И не задумываешься, что делать, написал MsgLog("aDim=", aDim) и всё. Я эту функцию тащу в каждый свой проект. Даже небольшой пример и то удобней с ней отлаживать. Вот и хотелось бы иметь встроенную функцию MsgLog(), как и MsgDebug() !

SergKis: Andrey пишет Может поместишь в библиотекуфункцию SergKis - MsgLog() ? тогда другой вариант [pre2] FUNCTION MLogFile( cFile ) // Получить \ установить имя файла вывода ф-ии MLog(...) LOCAL cOld STATIC MLog_File := "_MsgLog.txt" cOld := MLog_File If cFile != NIL; MLog_File := cFile EndIf RETURN cOld FUNCTION MLog( ... ) // Сначала идет CRLF (первый параметер .T.\.F.) потом данные вывода LOCAL i, k LOCAL aParams := hb_aParams() LOCAL nParams := len(aParams) LOCAL hFile, cFile := MLogFile(), xVal, cTp, lCrLf := .T. hFile := iif( File(cFile), FOpen(cFile, 2) , FCreate(cFile) ) IF hFile < 1; RETURN .F. ENDIF FSeek( hFile, 0, 2) IF nParams > 0 k := 1 If hb_IsLogical(aParams[1]) k := 2 lCrLf := aParams[1] EndIf If lCrLf FWrite( hFile, CRLF, 2 ) EndIf FOR i := k TO nParams xVal := aParams[ i ] cTp := ValType( xVal ) IF cTp == 'C' ; xVal := iif(Empty(xVal), "'"+"'", trim(xVal)) ELSEIF cTp == 'N' ; xVal := hb_ntos(xVal) ELSEIF cTp == 'L' ; xVal := iif(xVal, ".T.", ".F.") ELSEIF cTp == 'D' ; xVal := hb_DtoC(xVal, 'DD.MM.YYYY') ELSEIF cTp == 'A' ; xVal := "ARRAY[" + hb_NToS( Len(xVal) ) + "]" ELSEIF cTp == 'H' ; xVal := "HASH[" + hb_NToS( Len(xVal) ) + "]" ELSEIF cTp == 'B' ; xVal := "'" + "B" + "'" ELSEIF cTp == 'T' ; xVal := hb_TSToStr(xVal, .T.) ELSEIF cTp == 'U' ; xVal := 'NIL' ELSE ; xVal := "'" + cTp + "'" ENDIF FWrite(hFile, xVal + Chr(9) ) NEXT ELSE FWrite( hFile, CRLF, 2 ) ENDIF FClose( hFile ) RETURN .T. в комплекте с: #command ? [<explist,...>] => MLog( .T., <explist> ) #command ?? [<explist,...>] => MLog( .F., <explist> ) #command ?a [<arr>] => aEval( <arr>, {|xv,ne| MLog(.T., ne, xv), MLog() }) #command ?v [<arr>] => aEval( <arr>, {|xv,ne| MLog(.T., ne, iif( Valtype(xv)=="A", hb_valtoexp(xv), xv )), MLog() }) использовать ? nKey, chr(nKey), cKey, cTxt, aDim ?a aDim ?v aDim ... [/pre2]

SergKis: Andrey пишет Я эту функцию тащу в каждый свой проект А сделать общую для всех проектов lib и туда складывать полезное и одинаково используемое пробовал ?


Andrey: SergKis пишет: А сделать общую для всех проектов lib и туда складывать полезное и одинаково используемое пробовал ? Нет. Люблю держать всё в исходниках. Очень редко использую свои Lib. Но это дело вкуса...

SergKis: Andrey пишет Очень редко использую свои Lib тогда положи в ch файл и подключай в исходнике

Dima: Andrey пишет: Может поместишь в библиотеку функцию SergKis - MsgLog() Почему бы нет , я за

Andrey: Вопрос по ходу создания кода на МиниГуи. Нужны периодически делать разные менюшки. Всегда делаю ручками. Устал... Времени тратиться куча. Кто на чём делает менюшки, типа вот такую надо ?

Петр: Andrey пишет: Кто на чём делает менюшки, типа вот такую надо ? А где там меню?

Dima: Петр пишет: А где там меню? +1

Andrey: SergKis пишет: тогда другой вариант FUNCTION MLogFile( cFile ) // Получить \ установить имя файла вывода ф-ии MLog(...) LOCAL cOld STATIC MLog_File := "_MsgLog.txt" cOld := MLog_File If cFile != NIL; MLog_File := cFile EndIf RETURN cOld Что то сменить имя файла вывода не получается. Постоянно выводит _MsgLog.txt

SergKis: Andrey используй SET LOGFILE TO "_debug.txt" ? ...,... это уже в МиниГуи есть и глянь FUNCTION _SetGetLogFile( cFile ) и FUNCTION _LogFile( lCrLf, ... ) сам же просил

Andrey: SergKis пишет: сам же просил Да не знал, что Григорий так быстро вставил в эту версию. А как быть с #command ? [<explist,...>] => _LogFile( <explist> ) #command ?a [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( ne, xv ) }) #command ?v [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( ne, iif(valtype(xv) == "A", hb_valtoexp(xv), xv )) }) У меня первый параметр вывода пропадает...

Andrey: Сделал так: #command ? [<explist,...>] => _LogFile( .t.,<explist> ) #command ?a [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( .t., ne, xv ) }) #command ?v [<arr>] => aEval(<arr>, {|xv,ne| _LogFile( .t., ne, iif(valtype(xv) == "A", hb_valtoexp(xv), xv )) })

SergKis: Andrey пишет Сделал так ... в i_ini.ch и так все нормально [pre2] #command ? [<explist,...>] => _LogFile( .T., <explist> ) #command ?? [<explist,...>] => _LogFile( .F., <explist> ) #command ?a [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( .T., ne, xv ), _LogFile() } ) #command ?v [<arr>] => aEval( <arr>, { |xv, ne| _LogFile( .T., ne, iif( Valtype(xv)=="A", hb_valtoexp(xv), xv ) ), _LogFile() } ) [/pre2]

Andrey: SergKis пишет: в i_ini.ch и так все нормально А я через свой mydefines.ch делал...

Andrey: Всем привет ! Решил добавить на кнопки (объект BUTTONEX ) вызов контекстного меню. Не получается, выдаёт ошибку: Error BASE/1132 Переполнение массива: Неверное количество аргументов Called from _ENDMENU(530) Called from METRO_BUTTON(382) Called from (b)ADDITION_MAINFORMS(161) Called from AEVAL(0) Called from ADDITION_MAINFORMS(161) Called from (b)MAIN(96) Called from (b)_DEFINESPLASHWINDOW(134) По коду у меня это выглядит так: DEFINE BUTTONEX &cObject PARENT &cForm ...... END BUTTONEX DEFINE CONTEXT MENU CONTROL &cObject cInfo1 := cCaption cInfo2 := "Object: "+cObject MENUITEM cInfo1 MENUITEM cInfo2 SEPARATOR MENUITEM "Запуск старой программы" ACTION { || MsgDebug(cObject) } SEPARATOR MENUITEM "Запуск новой программы" ACTION { || MsgDebug(cObject) } SEPARATOR MENUITEM "Выход из меню" ACTION {|| Tone(100,0.1) } END MENU // строка 382 Если убрать DEFINE CONTEXT MENU CONTROL &cObject ... то всё работает нормально ! Что за ошибка такая ? Как преодолеть её ?

Andrey: Разгадал загадку... Достаточно было поставить - DEFINE CONTEXT MENU CONTROL &cObject OF &cForm Хотя на маленьком примере можно и не ставить OF &cForm ... и без него работает...

Andrey: По доке: Enable and disable Context Menu Control SET CONTEXT MENU CONTROL <cControlName> OF <cParentName> ON | OFF Что то не работает... SET CONTEXT MENU CONTROL "oBut_6" OF 'Form_Main' OFF Всё равно по правой кнопки мышки появляется контекстное меню...

gfilatov2002: Andrey пишет: Что то не работает... SET CONTEXT MENU CONTROL "oBut_6" OF 'Form_Main' OFF А если попробовать записать без кавычек SET CONTEXT MENU CONTROL oBut_6 OF Form_Main OFF

Andrey: Понял. Спасибо !



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