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

SergKis: rvu пишет Так если пробел все равно добавлять, то с ним и так работает. Вот заменил вообще на поле БД: Я предлагал разделить создание контролов и заполнение их данными в разные процедуры, т.е.[pre2] DEFINE WINDOW Form1 ... Label_Crt() END WINDOW ACTION WINDOW Form1 ON INIT {|| Label_Val() } // или в ON INIT окна или ставим в :Event(1, {|| Label_Val() }), активируя сообщением ... STAT FUNC Label_Crt() ... @ 10,10 LABEL NAME VALUE ' ' WIDTH 1500 VCENTERALIGN ... RETU Nil STAT FUNC Label_Val() LOCAL cAls := 'BASECONFIG' ... This.NAME.Value := Trim( (cAls)->NAME )+' ' * Form1.NAME.Value := Trim( (cAls)->NAME )+' ' // или такую форму записи ... RETU Nil [/pre2] Вызывая Label_Val() повторно (изменив поле NAME) производите переотображение Label NAME Добавление пробела слева смещает текст отображения вправо на ширину пробела в пикселях, т.е. сменили координату X у лабел

rvu: SergKis пишет: Добавление пробела слева смещает текст отображения вправо на ширину пробела в пикселях, т.е. сменили координату X у лабел Это понятно. SergKis пишет: Я предлагал разделить создание контролов и заполнение их данными в разные процедуры Может быть это и правильно. Будет побольше времени надо будет попробовать. Спасибо за идею!

Andrey: Запускаю прогу на МиниГуи. На форме есть таймер. [pre2] DEFINE TIMER Timer_1 ; INTERVAL (StaticTimeUpdate * 100) * 1000 ACTION OperatUsers2() .... // Функция чтения всех работающих в журнале программы / заглушка Function OperatUsers2() LOCAL nSel := SELECT() ? "Timer всех работающих в программе !", TIME(), ProcNameLine(0) Form_Main.Label_0.Value := "+" + TIME() SELECT(nSel) RETURN NIL[/pre2] После запуска проги, в Фаре работать нельзя, отрубаются клавиши. Запускаю TeamViewer, пытаюсь набрать пароль в нём, пароль неверен. Закрываю прогу на МиниГуи - всё прекрасно начинает работать. Что то с таймером беда... Или опять я нахимичил ....


Haz: я в тупике , примитивный код [pre2] for n := 1 To 3 hb_IdleSleep(1) // дает на втором шаге Error BASE/1102 Неверный аргумент: UPPER</p> end [/pre2] не соображу причем тут слип трассер ошибки [pre2] <br/></summary> Called from UPPER(0) <BR> Called from (b)TCNLDATA(737) in module: h_objects.prg <BR> Called from TCNLDATA:DEL(0) <BR> Called from (b)TCNLDATA(776) in module: h_objects.prg <BR> Called from TCNLDATA:DESTROY(0) <BR> Called from TWNDDATA:__msgDestructor(678) in module: h_objects.prg <BR> Called from HB_IDLESLEEP(0) [/pre2] условия такие Operating system...: Windows 7 6.1 SP1<BR> MiniGUI version....: Harbour MiniGUI Extended Edition 19.08 (32-bit)<BR> Harbour version....: Harbour 3.2.0dev (r1904111533)<BR> Harbour built on...: Apr 11 2019 19:43:19<BR> C/C++ compiler.....: Borland C++ 5.5.1 (32-bit)<BR> Multi Threading....: YES<BR> VM Optimization....: YES<BR>

SergKis: Haz пишет не соображу причем тут слип Идет, похоже, разрушение\destroy окна во время Sleep, которого уже нет, т.е.[pre2] METHOD Destroy() INLINE ( ::Del(), ; ... и METHOD Del() INLINE ( iif( HB_ISOBJECT( ::oWin:oName ), ::oWin:oName:Del( Upper( ::cName ) ), ), ; iif( HB_ISOBJECT( ::oWin:oHand ), ::oWin:oHand:Del( ::nHandle ), ) ) ... [/pre2] Не знаю, не смотрел, как устроен hb_IdleSleep(...), я использую wApi_Sleep(...)

SergKis: PS Т.е. во время Sleep идет обработка сообщений очереди. Для задержки использую wApi_Sleep(...), для обработки очереди без задержки DoEvents().

Haz: SergKis пишет: я использую wApi_Sleep(...) работает

Andrey: Столкнулся с очередной непоняткой. Как сдвинуть дату немного вправо в объекте DATEPICKER ? На картинке вот так выглядит:

Andrey: Очередная засада в МиниГуи. Имеется GetBox , ввожу в него: [pre2]"1238881818АА" "1238881818БББ" "1238881818ЯЯЯ"[/pre2] В отладке получаю вот это: [pre2]Gbox_1 This.&(cGetBox).Value = 1238881818└└ Gbox_1 This.&(cGetBox).Value = 1238881818┴┴┴ Gbox_1 This.&(cGetBox).Value = 1238881818▀▀▀ [/pre2] Куда делись русские буквы АА и БББ и ЯЯЯ ? Маленькие русские буквы отлично отображаются !!! Вот код проверки: [pre2] FOR nJ := 1 TO LEN(aGetBoxObj) cGetBox := aGetBoxObj[nJ] cVal := This.&(cGetBox).Value ? cGetBox, "This.&(cGetBox).Value = ",cVal ............... [/pre2] А сам объект формируется так:[pre2] aPict := { REPL('x',18) } ...... cObj2 := "Gbox_" + HB_NtoS(nI) @ ... GETBOX &cObj2 VALUE aRcPlt[nI] ... ; PICTURE aPict[nI] .... ; ON CHANGE {|| _wSend(10, This.Index), This.Value := aRcPlt[This.Cargo] } ; ON INIT {|| This.Cargo := nI, This.Value := aRcPlt[nI] } AADD( aGetBoxObj, cObj2 ) // для проверки на русские буквы ........ // назначаем на getbox и checkbox событие (This.Object):Event(10, {|| aRcPlt[ This.Cargo ] := This.Value })[/pre2]

Pasha: Да кодировка у дебаггера не той системы Буква А, код в 1251 - 0xc1, в cp866 как раз отображается такой закорлючкой

Andrey: Pasha пишет: Да кодировка у дебаггера не той системы Буква А, код в 1251 - 0xc1, в cp866 как раз отображается такой закорлючкой У меня в МиниГуи кодировка RU1251 Соответственно GETBOX должнен быть в RU1251 И при доп. выводе в файл получаю, беру ASC(символа) : [pre2] └ 192 ┴ 193 ▀ 223[/pre2] И код не работает по проверке на русские буквы ВЕРХНЕГО РЕГИСТРА: [pre2]STATIC FUNCTION CheckingRussianGet( aGetBoxObj ) // Проверка на русские буквы LOCAL lRet := .T., nI, cC, nJ, cVal LOCAL cGetBox, cTbl := ' 0123456789' , cMsg := "" FOR nI := 128 TO 175 cTbl += CHR(nI) NEXT FOR nI := 224 TO 239 cTbl += CHR(nI) NEXT ? cTbl FOR nJ := 1 TO LEN(aGetBoxObj) cGetBox := aGetBoxObj[nJ] cVal := This.&(cGetBox).Value ? cGetBox, "This.&(cGetBox).Value = ",cVal FOR nI := 1 TO Len(cVal) cC := subs(cVal, nI, 1) ? nI, cC, ASC(cC), " logika[ ! cC $ cTbl ]=", ! cC $ cTbl If ! cC $ cTbl cMsg += 'Неверный символ "'+cC+'" позиция '+hb_ntos(nI) cMsg += ' строка '+hb_ntos(nJ)+";" lRet := .F. EXIT EndIf NEXT NEXT IF ! lRet cMsg += 'БУКВЫ должны быть русскими !;;' cMsg += "Исправьте, иначе поиск будет неправилен !;;" MG_Stop(cMsg, 'Ошибка') This.&(cGetBox).SetFocus DO EVENTS ENDIF RETURN lRet [/pre2]

Pasha: Andrey пишет: FOR nI := 128 TO 175 cTbl += CHR(nI) NEXT FOR nI := 224 TO 239 cTbl += CHR(nI) NEXT Так в cp1251 символы начинаются с кода 192. Такая проверка годится для cp866, а никак не для cp1251

Andrey: Pasha пишет: Так в cp1251 символы начинаются с кода 192. Такая проверка годится для cp866, а никак не для cp1251 А на экране строка выглядит так: [pre2][ 0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя][/pre2] Pasha пишет: Такая проверка годится для cp866, а никак не для cp1251 Понял. Опять моя ошибка. СПАСИБО !

Pasha: Andrey пишет: А на экране строка выглядит так: Правильно выглядит для кодировки 866 Еще хорошо бы выдать: ? hb_cdpSelect()

Andrey: Pasha пишет: ? hb_cdpSelect() Выдает то что надо ! RU1251 СПАСИБО Паша ! Это я опять поторопился, когда делал. Всё спешка проклятая. Сейчас юзера выдают мне мои ошибки по спешке.

i3t4j6: Для заставки в программе использую функцию Paintdegrade() из примера \Minigui\Samples\Advanced\PaintDegrade\Demo.prg. Если в пример вставить строку SET PROGRAMMATICCHANGE OFF , то цветовая гамма не появляется. Это несоответствие появилось еще с версии 17.04 . Как решить эту проблему?

gfilatov2002: i3t4j6 пишет: Как решить эту проблему? Попробуй [pre2] DEFINE WINDOW Form_Main ; AT 0, 0 ; WIDTH 600 HEIGHT 400 ; TITLE 'Ejemplo Degradado en Ventanas' ; MAIN ; ON INIT paint_it( This.Handle ) ; ON PAINT paint_it( This.Handle ) ... [/pre2]

i3t4j6: Спасибо!!! Все работает.

Andrey: Всем привет ! А есть возможность узнать какая тема для контекстного меню установлена ? Типа [pre2] nThemes := SetThemes(2) ..... SetThemes(nThemes )[/pre2] И ещё нужно узнать какой цвет фона установлен у HMG_Alert() ? [pre2]SET MSGALERT BACKCOLOR TO ..... nVal := GetMsgAlert() [/pre2] Тоже для восстановления потом.

Andrey: Всем привет ! Очередная китайская загадка. На форму вывожу так: [pre2]? nY, nX, nWtb1, nHTxt, cFileSbln, aBColorTxt @ nY, nX TEXTBOX TbShbl_1 VALUE cFileSbln WIDTH nWtb1 HEIGHT nHTxt ; FONTCOLOR BLACK BACKCOLOR aBColorTxt ON CHANGE {|| cFileSbln := This.TbSbln_1.Value } пробовал и так: @ nY, nX TEXTBOX TbShbl_1 VALUE cFileSbln WIDTH nWtb1 HEIGHT nHTxt ; FONTCOLOR BLACK BACKCOLOR aBColorTxt ; ON CHANGE {|| cFileSbln := Form_SetCmp.TbSbln_1.Value } // строка 192 [/pre2] Форму строит нормально, но при попытке ввода - вылет с ошибкой: [pre2]Error MGERROR/0 Control: TbSbln_1 Of Form_SetCmp Not defined. Program terminated. --------------------------------- Stack Trace --------------------------------- Called from MSGMINIGUIERROR(100) in module: h_error.prg Called from GETPROPERTY(4856) in module: h_controlmisc.prg Called from (b)FORM_OPENCOMPSET(192) in module: aTopMenu2.prg Called from _DOCONTROLEVENTPROCEDURE(1901) in module: h_windows.prg Called from EVENTS(1912) in module: h_events.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1514) in module: h_windows.prg Called from FORM_OPENCOMPSET(401) in module: aTopMenu2.prg [/pre2] Все переменные определены, точно такой же оператор стоит в другом окне - работает без проблем. А почему здесь не работает, что не так делаю ?



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