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

Ответов - 127, стр: 1 2 3 4 5 6 7 All

Andrey: SergKis пишет: Маловато будет ? Об этом забыл вообще.... Спасибо !

Andrey: Всем привет ! Хочу получить расчёт по времени вот такого вида - 00:00:00.0145 В C# есть такой формат даты, нагляден очень. А в Харборе такого нет. Можно прикрутить такой формат времени в МиниГуи ? Для расчётов самый раз будет, а то Seconds() не всегда даёт разницу по времени. Выдаёт типа 00:00:00 Можно конечно написать свою функцию, но тогда её каждый раз нужно будет таскать из своих исходников.

SergKis: Andrey пишет В C# есть такой формат даты, нагляден очень. А в Харборе такого нет. А если немного подумать, то все получится[pre2] Local k, t := hb_datetime() ... k := hb_datetime() - t ? t, k, t + k,'|', hb_StrToTS('') + k получишь такой результат 2019-08-27 18:33:23.825 0.000005 2019-08-27 18:33:24.262 | 00:00:00.437 [/pre2]


Andrey: Хотелось бы проще, типа такого: [pre2]t := hb_datetime() CalcToDbf() // расчёт ? "Время расчёта =", MG_MilliSeconds( hb_datetime() - t ) Время расчёта = 00:00:00.437 [/pre2]

SergKis: Andrey пишет Хотелось бы проще Твой вариант #xtranslate MG_MilliSeconds( k ) => Ltrim( hb_TSToStr( hb_StrToTS('') + k, .T. ) )

Andrey: SergKis пишет: Твой вариант Что-то ошибку выдаёт: Turbo Incremental Link 5.66 Copyright (c) 1997-2002 Borland Error: Unresolved external '_HB_FUN_MG_MILLISECONDS' referenced from W:\HB_PROJECT\OBJ\FORM_CALC1.OBJ hbmk2[Calc_5Menu]: Error: Running linker. 2

SergKis: Andrey #xtranslate MG_MilliSeconds( <k> ) => Ltrim( hb_TSToStr( hb_StrToTS('') + <k>, .T. ) ) k := hb_datetime() - t ? mg_MilliSeconds( k ) ? mg_MilliSeconds( (hb_datetime() - t) ) результат 00:00:00.57 00:00:00.574

Andrey: Доброго утра всем ! Наверное лучше функцию назвать так HMG_TimeMS(). В виде функции у меня работает, а если делаю в мой INCLUDE #xtranslate MG_MilliSeconds( <k> ) => Ltrim( hb_TSToStr( hb_StrToTS('') + <k>, .T. ) ) то не собирается exe-ник.

Andrey: Всем привет. Хочу чтобы по кнопкам юзер мог нажимать цифирки 1,2,3.... Знаю что можно назначить горячую клавишу, не хочу этого. Можно ли повесить событие на кнопки по цифрам ? Очень понравилась такая структура назначение событий: [pre2] DEFINE WINDOW Form_Main ; ..... ON INIT {|| _wPost(3) } ..... WITH OBJECT This.Object :Event( 0, {| | InkeyGui(200) } ) :Event( 1, {| | Form_Main.Btn_Start1.Setfocus , _PushKey( VK_RETURN ) } ) :Event( 2, {| | Form_Main.Btn_Start2.Setfocus , _PushKey( VK_RETURN ) } ) :Event( 3, {| | Form_Main.Btn_Start3.Setfocus , _PushKey( VK_RETURN ) } ) :Event( 4, {| | Form_Main.Btn_Start4.Setfocus , _PushKey( VK_RETURN ) } ) :Event( 5, {| | Form_Main.Btn_Start5.Setfocus , _PushKey( VK_RETURN ) } ) :Event(99, {|ow| ow:Release() } ) END WITH [/pre2]

SergKis: Andrey пишет Можно ли повесить событие на кнопки по цифрам ? Надо знать куда хочешь вешать, к примеру для тсб (пример Tsb_lAdjColumn) вместо (для твоей таблицы событий) [pre2] // oBrw:UserKeys(VK_F3, {|ob| _wPost(3, ob, ob) }) // oBrw:UserKeys(VK_F4, {|ob| _wPost(4, ob, ob) }) ставим oBrw:UserKeys(VK_1, {|ob| _wPost(1, ob, ob) }) oBrw:UserKeys(VK_2, {|ob| _wPost(2, ob, ob) }) и т.д. для горячей клавиши SET KEY VK_1 ACTION _wPost(1, oBrw, oBrw) SET KEY VK_2 ACTION _wPost(2, oBrw, oBrw) и т.д. в событии Event будет устанавливаться среда This для Tsb для GetBox так же можно ставить событие нажатия клавиш (примеры в basic\GetBox...) [/pre2]

gfilatov2002: Andrey пишет: Можно ли повесить событие на кнопки по цифрам ? Посмотри рабочий пример ниже [pre2]#include "hmg.ch" FUNCTION main DEFINE WINDOW button_test ; AT 0,0 ; WIDTH 800 ; HEIGHT 600 ; MAIN ; TITLE "button program test" @ 100, 10 BUTTON butt_0959_A ; CAPTION " 1 " ; ACTION msgInfo( 1 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 1 @ 100, 140 BUTTON butt_0959_B ; CAPTION " 2 " ; ACTION msgInfo( 2 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 2 @ 100, 270 BUTTON butt_0959_C ; CAPTION " 3 " ; ACTION msgInfo( 3 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 3 @ 100, 400 BUTTON butt_0959_D ; CAPTION " 4 " ; ACTION msgInfo( 4 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 4 @ 100, 530 BUTTON butt_0959_E ; CAPTION " 5 " ; ACTION msgInfo( 5 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 5 @ 100, 660 BUTTON butt_0959_F ; CAPTION " 6 " ; ACTION msgInfo( 6 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 6 @ 145.00, 10 BUTTON butt_0959_G ; CAPTION " 7 " ; ACTION msgInfo( 7 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 7 @ 145.00, 140 BUTTON butt_0959_H ; CAPTION " 8 " ; ACTION msgInfo( 8 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 8 @ 145.00, 270 BUTTON butt_0959_I ; CAPTION " 9 " ; ACTION msgInfo( 9 ) ; WIDTH 100 ; HEIGHT 30 HOTKEY 9 END WINDOW CENTER WINDOW button_test ACTIVATE WINDOW button_test RETURN [/pre2]

SergKis: gfilatov2002 пишет Посмотри рабочий пример ниже Для BUTONEX нет HOTKEY, а у Andrey в основном используются они.

SergKis: PS По указанному свойству HOTKEY кнопки ставится горячая клавиша, т.е. большой разницы нет писать HOTKEY 9 в кнопке или ставить горячую клавишу SET KEY VK_9 ACTION ...

Andrey: SergKis пишет: Для BUTONEX нет HOTKEY, а у Andrey в основном используются они. Да, я про эту фичу. А нельзя сделать для BUTONEX эту фичу HOTKEY в следующих версиях ? Для окна можно обойтись пока и так ON KEY ESCAPE OF Form_Main ACTION _wPost(99) ON KEY VK_1 OF Form_Main ACTION _wPost(1) и будет отрабатывать [pre2] :Event( 1, {| | Form_Main.Btn_Start1.Setfocus , _PushKey( VK_RETURN ) } ) [/pre2] Спасибо за подсказку !

Andrey: Что то не получается... Это отрабатывает нормально - ON KEY ESCAPE OF Form_Main ACTION _wPost(99) А как задать цифирки 1, 2, 3 .... Пробовал так [pre2]ON KEY VK_1 OF Form_Main ACTION _wPost(1) ON KEY VK_2 OF Form_Main ACTION _wPost(2) ON KEY VK_3 OF Form_Main ACTION _wPost(3)[/pre2] Не компилируется, выдаёт ошибку... Смотрел \Include\ i_keybd.ch и i_keybd_ext.ch что то не нашёл... Меню просто из 4-5-6 кнопок. Больше на форме ничего нет. Как подключить цифирки 1, 2, 3 ... ? P.S. Пока подключил так:[pre2] _DefineHotKey ( "Form_Main" , 0 , 49 , {|| _wPost(1) } ) _DefineHotKey ( "Form_Main" , 0 , 50 , {|| _wPost(2) } ) _DefineHotKey ( "Form_Main" , 0 , 51 , {|| _wPost(3) } )[/pre2]

SergKis: Andrey пишет Смотрел \Include\ i_keybd.ch и i_keybd_ext.ch что то не нашёл... Надо без VK_... вариант по имени #xcommand ON KEY <key> [ OF <parent> ] ACTION <action> [ RESULT ] TO <lresult> ; => ; <lresult> := _SetHotKeyByName ( <"parent"> , <"key"> , <{action}> ) т.е. ON KEY 1 OF Form_Main ACTION _wPost(1) ON KEY 2 OF Form_Main ACTION _wPost(2) ON KEY 3 OF Form_Main ACTION _wPost(3)

Andrey: SergKis пишет: ON KEY 1 OF Form_Main ACTION _wPost(1) ON KEY 2 OF Form_Main ACTION _wPost(2) ON KEY 3 OF Form_Main ACTION _wPost(3) Всем доброго утра ! Всё равно не собирает. Выдаёт ошибку: Harbour 3.2.0dev (r1904111533) Copyright (c) 1999-2019, https://harbour.github.io/ form_ZaivkaNew.prg(1611) Error E0030 Syntax error "syntax error at 'KEY'" form_ZaivkaNew.prg(1612) Error E0030 Syntax error "syntax error at 'KEY'" form_ZaivkaNew.prg(1613) Error E0030 Syntax error "syntax error at 'KEY'" 3 errors No code generated.

SergKis: Andrey Специально для тебя вынес сюда команду, но ты на нее все равно не смотришь #xcommand ON KEY <key> [ OF <parent> ] ACTION <action> [ RESULT ] TO <lresult> ; => ; <lresult> := _SetHotKeyByName ( <"parent"> , <"key"> , <{action}> ) Чтобы писать как ты сделал надо в команде поправить #xcommand ON KEY <key> [ OF <parent> ] ACTION <action> [ RESULT ] [ TO <lresult> ] ; => ; [ <lresult> := ] _SetHotKeyByName ( <"parent"> , <"key"> , <{action}> )

Andrey: SergKis пишет: Специально для тебя вынес сюда команду, но ты на нее все равно не смотришь Да, есть такое за мной... SergKis пишет: Чтобы писать как ты сделал надо в команде поправить Это каждый раз мне придётся в МиниГуи \include\ править ?

Andrey: А как на кнопку повесить обработку ENTER ? Делаю так: ON KEY RETURN OF Form_NewZ ACTION {|| Form_NewZ.Button_Find.Setfocus, InkeyGui(200), _PushKey( VK_RETURN ) } И вся форма вешается... Почему ? ENTER зацикливается ?



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