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

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

Dima: Andrey пишет: Очередная китайская загадка. Тема называется "Примеры из Минигуи -ошибки, вопросы"

Haz: Andrey пишет: пробовал и так: @ nY, nX TEXTBOX TbShbl_1 VALUE cFileSbln WIDTH nWtb1 HEIGHT nHTxt ; FONTCOLOR BLACK BACKCOLOR aBColorTxt ; ON CHANGE {|| cFileSbln := Form_SetCmp.TbSbln_1.Value } Как минимум в этом. Тема называется "Примеры из Минигуи -ошибки, вопросы" согласен с Димой, тема относится к примерам. Про личную невнимательность лучше писать не здесь.

Andrey: Haz пишет: Про личную невнимательность лучше писать не здесь Ну извините меня. Запутался в переменной... с кем не бывает ?


Andrey: А вот дальше у меня точно НЕ МОЯ ошибка или баг. При использовании отладки в лог-файл допустим _MsgLog.txt после использования команды GetFile(...) перестаёт писаться в текущий лог, создаёт НОВЫЙ лог в папке где был использован последний путь из GetFile(...) Почему ?

SergKis: Andrey пишет после использования команды GetFile(...) перестаёт писаться в текущий лог Исходники для того, что бы их смотреть h_ini.prg[pre2] *-----------------------------------------------------------------------------* FUNCTION _SetGetLogFile( cFile ) *-----------------------------------------------------------------------------* LOCAL cOld STATIC MLog_File cOld := MLog_File IF cFile != NIL MLog_File := cFile RETURN MLog_File ENDIF RETURN cOld *-----------------------------------------------------------------------------* #ifndef __XHARBOUR__ FUNCTION _LogFile( lCrLf, ... ) #else FUNCTION _LogFile( ... ) #endif *-----------------------------------------------------------------------------* LOCAL hFile, i, xVal, cTp LOCAL aParams := hb_AParams() LOCAL nParams := Len( aParams ) LOCAL cFile := hb_defaultValue( _SetGetLogFile(), GetStartUpFolder() + "\_MsgLog.txt" ) #ifdef __XHARBOUR__ LOCAL lCrLf #endif IF !Empty( cFile ) hFile := iif( File( cFile ), FOpen( cFile, FO_READWRITE ), FCreate( cFile, FC_NORMAL ) ) IF hFile == F_ERROR RETURN .F. ENDIF FSeek( hFile, 0, FS_END ) IF nParams > 1 #ifdef __XHARBOUR__ lCrLf := aParams[ 1 ] #endif IF ( lCrLf := hb_defaultValue( lCrLf, .T. ) ) FWrite( hFile, CRLF, 2 ) ENDIF IF nParams == 2 .AND. HB_ISNIL( aParams[ 2 ] ) .AND. lCrLf ELSE FOR i := 2 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." ) #ifdef __XHARBOUR__ ELSEIF cTp == 'D' ; xVal := DToC( xVal ) #else ELSEIF cTp == 'D' ; xVal := hb_DToC( xVal, 'DD.MM.YYYY' ) #endif 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 ENDIF ELSE FWrite( hFile, CRLF, 2 ) ENDIF FClose( hFile ) ENDIF RETURN .T. ... [/pre2] А GetFile() до фонаря эти ф-ии, внутри работает C ф-я, где то использована выделенная цветом

Andrey: Использую виндовую функцию GetColor() из h_dialogs.prg Открывается аж на другом конце экрана, по позиции окна примерно 10x10. Окно с ТСБ на весь экран, колонка с изменением цвета в правом углу. Вызываешь эту функцию и она показывается в левом углу... Блин юзера задолбают вопросом - сдвинуть там где колонка. А можно как то задать позицию этого GetColor() ? В старом примере Tsb_Config тоже так же, только там задание цвета в отдельном окне и выходит по центру. Более менее красиво.

gfilatov2002: Andrey пишет: А можно как то задать позицию этого GetColor() ? Попробуй задать команду SET DIALOGBOX CENTER OF PARENT

Andrey: gfilatov2002 пишет: Попробуй задать команду Так получше ! А как можно снять эту команду, т.е. отменить её потом ?

Dima: Andrey пишет: А как можно снять эту команду, т.е. отменить её потом ? Не судьба глянуть i_hmgcompat.ch ?

gfilatov2002: Andrey пишет: отменить её потом ? Dima пишет: глянуть i_hmgcompat.ch SET DIALOGBOX [ POSITION ] DISABLE

Andrey: Dima пишет: Не судьба глянуть i_hmgcompat.ch ? Да тормознул... gfilatov2002 пишет: SET DIALOGBOX [ POSITION ] DISABLE Спасибо !

Andrey: Всем привет. Фигня какая то получается. Пишу в коде:[pre2] #define VIRT_COLUMN_END 6 #define VIRT_COLUMN_MAX VIRT_COLUMN_END + 1 .... nCol0 := nCol - VIRT_COLUMN_MAX ? "nCol=",nCol, "- VIRT_COLUMN_MAX=",VIRT_COLUMN_MAX, "nCol0 =",nCol0[/pre2] В отладке выводит так: [pre2] nCol= 9 - VIRT_COLUMN_MAX= 7 nCol0 = 4 [/pre2] т.е. получается 9-7=4 Почему ?

SergKis: Andrey пишет #define VIRT_COLUMN_MAX VIRT_COLUMN_END + 1 Если используешь в вычислениях, то надо скобки #define VIRT_COLUMN_MAX ( VIRT_COLUMN_END + 1 )

Andrey: Спасибо !

rvu: C:\MiniGUI\SAMPLES\Advanced\ActiveX\ Пример браузера. Наблюдается такое: выделяешь выражение, если вызвать меню мышкой, то Копировать работает. А по CTRL+C не копирует. Как это исправить? Какие могут быть причины? По идее это виндовый браузер, в нем же это работает.

Andrey: Можно ли на объекте BUTTONEX сделать отключение показа окантовки кнопки внизу/вверху/справа/слева ? Очень удобно при совмещении кнопки и FRAME сделать объект единым, т.е. совмещать два объекта. В коде примерно так: @ nR, nC BUTTONEX Button_11 CAPTION "Page (1)" WIDTH nWBth HEIGHT nHBth ; PARENT &cForm FONTCOLOR BLACK BACKCOLOR aColors[1] FONT cFname SIZE nFSize BOLD ; SETBORDER {.T.,.T.,.T.,.F.} FLAT NOXPSTYLE ACTION {|| myAction(1), myFocus() } Да и для LABEL тоже бы такое хотелось бы.

Andrey: Можно ли при старте MAIN окна сделать запуск отдельной формы (с наворотами) в отдельном потоке ? Этот поток должен существовать до конца закрытия программы. И как тогда обращаться к этой форме в другом потоке (вывод на форму) ?

SergKis: Andrey пишет Можно ли при старте MAIN окна сделать запуск отдельной формы (с наворотами) в отдельном потоке ? А.Кресин (http://www.kresin.ru/hrbfaq_3.html#Doc11) Отдельные Public и Private переменные могут передаваться потоку при его создании ... Поэтому в тех случаях, когда потоки используют какие-либо общие ресурсы ( чаще всего - переменные ), необходимы средства синхронизации работы потоков, чтобы они не обращались к общим ресурсам одновременно. Такими средствами являются семафоры и одна из их разновидностей - mutex ... Учитывая что _HMG_SYSDATA это глобальный массив с ~ _HMG_SYSDATA\[455] (_HMG_aFormNames, _HMG_aFormHandles, ...) элементами, то совместный доступ организовать будет не возможно, учитывая, что обработчик всего общая ф-я Events(...). Забудь. Запускай свою же прогу повторно с др. параметрами при первом старте и общайся между ними по потребностям

Andrey: SergKis пишет: Запускай свою же прогу повторно с др. параметрами при первом старте и общайся между ними по потребностям Да уже ехе-ник перевалил за 25 Мб. Лучше уж новый сделать на 3-4 Мб.

Andrey: Как в МиниГуи сделать скрин всего экрана в файл?



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