Форум » 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: Спасибо БОЛЬШОЕ Григорий !

Andrey: gfilatov2002 пишет: Для этого надо определять дочерние окна без слова CHILD (как определяется стандарное окно при работе в IDE). Для ХР работает, а в Win8 нет. Я понял что сама Win8 группирует по названию ехе-ника. Как это убрать, кто знает ? Хотя это вопрос и не по МиниГуи.... gfilatov2002 пишет: hb_IsFunction() Спасибо БОЛЬШОЕ Григорий !

Andrey: Народ, подскажите кто знает, как лучше сделать меню настроек для своей задачи. Что бы не изобретать велосипед, решил делать в стиле Skype: Какие объекты из МиниГуи лучше использовать ? Про чекбоксы понятно. Как сделать меню слева, из каких объектов ?


Andrey: Как в МиниГуи зная хендл окна получить путь запущенной программы ? Или название ЕХЕ-ника по хендлу с путем... Нашел в MSDN http://msdn.microsoft.com/en-us/library/aa366789%28v=vs.85%29.aspx Как перевести для Харбора ?

Andrey: Есть ли функция для МиниГуи аналогичной MsgDebug() - но чтобы выводила значения в заданный файл ? Конечно можно сделать и самому, но может готовое есть ?

gfilatov2002: Andrey пишет: чтобы выводила значения в заданный файл ? Может подойдет такая [pre2] *-----------------------------------------------------------------------------* PROCEDURE LogFile( cFileName, acInfo ) *-----------------------------------------------------------------------------* LOCAL hFile, cLine := DToC( Date() ) + " " + Time() + " : ", n For n = 1 to Len( acInfo ) cLine += acInfo[ n ] + Chr( 9 ) Next cLine += CRLF if ! File( cFileName ) FClose( FCreate( cFileName ) ) endif if( ( hFile := FOpen( cFileName, FO_WRITE + FO_SHARED ) ) != -1 ) FSeek( hFile, 0, FS_END ) FWrite( hFile, cLine, Len( cLine ) ) FClose( hFile ) endif Return [/pre2] Полный пример использования есть в папке samples\Applications\SendMail

Andrey: gfilatov2002 пишет: Может подойдет такая Спасибо БОЛЬШОЕ ! А как насчет предыдущего вопроса ?

gfilatov2002: Andrey пишет: как насчет предыдущего вопроса ? По Вашей ссылке на MSDN лежит функция с хорошим названием, но предназначенная для другого случая. По секрету: ждите следующей сборки. В ней будет пример использования требуемой функции

SergKis: Andrey пишет:чтобы выводила значения в заданный файл ? вот еще пару вариантов : [pre2] FUNCTION MsgLog2( ... ) //! все переменные выводятся как : nVar -> "nVar", nVar //! Не нужно писать по два раза имя , значение - достаточно только один раз LOCAL i, k, aParams, nParams, xVal, cTp, cTx LOCAL hFile, cFile:="_MsgLog.txt" aParams := hb_aParams() nParams := PCount() IF nParams < 1 ; RETURN NIL ENDIF hFile := iif( File(cFile), FOpen(cFile,2) , FCreate(cFile) ) FSeek( hFile, 0, 2) k := nParams/2 FOR i := 1 TO k FWrite(hFile, aParams[ i+k ] + Chr(9) + _uVal2Txt( aParams[ i ] ) + Chr(9) ) NEXT FWrite(hFile, Chr(13)+Chr(10), 2 ) FClose( hFile ) RETURN FUNCTION MsgLog( ... ) LOCAL i, k, aParams, nParams, xVal, cTp, cTx LOCAL hFile, cFile:="_MsgLog.txt" aParams := hb_aParams() nParams := PCount() IF nParams < 1 ; RETURN NIL ENDIF hFile := iif( File(cFile), FOpen(cFile,2) , FCreate(cFile) ) FSeek( hFile, 0, 2) FOR i := 1 TO nParams FWrite(hFile, _uVal2Txt( aParams[ i ] ) + Chr(9) ) NEXT FWrite(hFile, Chr(13)+Chr(10), 2 ) FClose( hFile ) RETURN NIL STATIC FUNCTION _uVal2Txt( xVal ) LOCAL cTx, cTp:= ValType( xVal ) IF cTp=='C' ; cTx := AllTrim(xVal) ; RETURN iif(Empty(cTx), "'"+"'", cTx) ELSEIF cTp=='N' ; RETURN LTrim(Str(xVal)) ELSEIF cTp=='L' ; RETURN iif(xVal, ".T.", ".F.") ELSEIF cTp=='D' ; cTx := DToS( xVal ) ; RETURN Right(cTx,2)+'.'+subs(cTx,5,2)+'.'+Left(cTx,4) ELSEIF cTp=='A' ; RETURN "ARRAY[" + hb_NToS( Len(xVal) ) + "]" ELSEIF cTp=='H' ; RETURN "HASH[" + hb_NToS(Len(xVal)) + "]" ELSEIF cTp=='B' ; RETURN "{|| ... }" ELSEIF cTp=='O' ; RETURN "O:"+xVal:ClassName ELSEIF cTp=='T' ; RETURN hb_TSToStr( xVal, .T. ) ELSEIF cTp=='U' ; RETURN 'NIL' ENDIF RETURN "'" + cTp + "'" [/pre2]

Andrey: SergKis пишет: вот еще пару вариантов : Спасибо БОЛЬШОЕ ! Только хотелось бы имя файла иметь изменяемое !!! Наверно нужно сделать первый параметр ТОЛЬКО для имени файла. Я так у себя сделал уже... Вот еще возник вопрос, а как сделать ниспадающее меню ? Допустим для грида после нажатия мышки ?

gfilatov2002: Andrey пишет: как сделать ниспадающее меню ? Посмотри пример menudemo5 в папке samples\Basic\Menu Там используется такая команда: SHOW CONTEXTMENU OF Win_1

Andrey: gfilatov2002 пишет: Посмотри пример menudemo5 в папке samples\Basic\Menu То что надо ! Спасибо БОЛЬШОЕ !

Andrey: gfilatov2002 пишет: Посмотри пример menudemo5 в папке samples\Basic\Menu Меню сделал, но не совсем то что нужно. Нет возможности использовать крупный шрифт. Подскажите пожалуйста как можно сделать меню с иконкой и названием, типа объекта GRID ? Есть ли еще примеры для меню аналогичные объекту GRID ?

SergKis: Andrey может это \MiniGUI\SAMPLES\BASIC\MsgMenu

Andrey: SergKis пишет: может это \MiniGUI\SAMPLES\BASIC\MsgMenu Не совсем то, но попробую. В CONTEXT MENU я смог затолкать картинки 32x32 - выглядит получше ! Но опять беда, фон картинки нужно делать вручную под цвет МЕНЮ, иконка не подходит... На других компах, с другой цветовой темой то что делаю будет выглядеть КОРЯВО... Есть функции определения цвета по координатам окна ? И еще один вопрос, как сделать выход без выбора в CONTEXT MENU ? MENUITEM "Выход" ACTION {|| ?????? } IMAGE "EXIT32"

Andrey: Всем привет. Как переключиться на окно если оно находиться под другими открытыми окнами ? Имею такую конструкцию: IF !IsWindowActive( Form_Config ) DEFINE WINDOW Form_Config ; At 0, 0 ; ....... NOMAXIMIZE NOSIZE ......... END WINDOW // показываем форму ELSE RESTORE WINDOW Form_Config ENDIF // !IsWindowActive( Form_Config ) RESTORE WINDOW - срабатывает если окно свернуто. А если скрыто под другими окнами, то как сделать это окно ПОВЕРХ других окон задач ?

Dima: Andrey пишет: А если скрыто под другими окнами, то как сделать это окно ПОВЕРХ других окон задач ? Фокус ввода сделать на нужном окне

SergKis: Andrey пишет:Как переключиться на окно IF _IsWindowDefined('Form_Config') Form_Config.SetFocus Form_Config.Browse_1.SetFocus или др. нужный контрол Form_Config.Button_1.SetFocus ENDIF

Andrey: SergKis пишет: IF _IsWindowDefined('Form_Config') Form_Config.SetFocus Form_Config.Browse_1.SetFocus или др. нужный контрол Form_Config.Button_1.SetFocus ENDIF Не совсем понял... Окно уже открыто, но может быть несколько вариантов: 1) окно находиться под другими окнами задачи. 2) свернуто на панели задачи. как сделать код для этих 2х вариантов сразу ? IF _IsWindowDefined('Form_Config') // создание окна // показываем форму ACTIVATE WINDOW Form_Config ELSE // RESTORE WINDOW Form_Config // работает если окно свернуто на панели задач, НЕ работает если под другими окнами // Form_Config.SetFocus // Не работает если окно свернуто на панели задач, работает если под другими окнами ENDIF

gfilatov2002: Andrey пишет: Окно уже открыто, но может быть несколько вариантов: Попробуй так [pre2] *----------------------------------- Function SwitchToWin( cForm ) *----------------------------------- If _IsWindowDefined( cForm ) If IsIconic( GetFormHandle(cForm) ) _Restore( GetFormHandle(cForm) ) Else DoMethod( cForm, "SetFocus" ) EndIf EndIf Return Nil[/pre2]



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