On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1929
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.11.11 21:36. Заголовок: Примеры из Минигуи -ошибки, вопросы..... (продолжение)


Всем привет.
Взялся смотреть примеры из МиниГуи, так не все работают. Может кто подскажет что там "допилить" нужно ?
А заодно может и исправить и добавить новые....

Очень красочный пример: \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.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 43 , стр: 1 2 3 All [только новые]


постоянный участник




Пост N: 6381
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.08.19 14:19. Заголовок: SergKis пишет: Мало..


SergKis пишет:

 цитата:
Маловато будет ?


Об этом забыл вообще....
Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6405
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.08.19 17:18. Заголовок: Всем привет ! Хочу п..


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2770
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.08.19 18:39. Заголовок: Andrey пишет В C# ес..


Andrey пишет
 цитата:
В C# есть такой формат даты, нагляден очень.
А в Харборе такого нет.


А если немного подумать, то все получится
 
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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6406
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.08.19 20:12. Заголовок: Хотелось бы проще, т..


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

Время расчёта = 00:00:00.437


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2771
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.08.19 20:29. Заголовок: Andrey пишет Хотелос..


Andrey пишет
 цитата:
Хотелось бы проще


Твой вариант
#xtranslate MG_MilliSeconds( k ) => Ltrim( hb_TSToStr( hb_StrToTS('') + k, .T. ) )

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6407
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.08.19 21:52. Заголовок: SergKis пишет: Твой..


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


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2772
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.08.19 00:24. Заголовок: Andrey #xtranslate ..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6408
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.08.19 08:40. Заголовок: Доброго утра всем ! ..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6421
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.09.19 00:07. Заголовок: Всем привет. Хочу чт..


Всем привет.
Хочу чтобы по кнопкам юзер мог нажимать цифирки 1,2,3....
Знаю что можно назначить горячую клавишу, не хочу этого.

Можно ли повесить событие на кнопки по цифрам ?

Очень понравилась такая структура назначение событий:
   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


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2808
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.19 09:54. Заголовок: Andrey пишет Можно л..


Andrey пишет
 цитата:
Можно ли повесить событие на кнопки по цифрам ?


Надо знать куда хочешь вешать, к примеру
для тсб (пример Tsb_lAdjColumn) вместо (для твоей таблицы событий)
 
// 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...)


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1578
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.09.19 10:10. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно ли повесить событие на кнопки по цифрам ?


Посмотри рабочий пример ниже
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2809
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.19 10:24. Заголовок: gfilatov2002 пишет П..


gfilatov2002 пишет
 цитата:
Посмотри рабочий пример ниже


Для BUTONEX нет HOTKEY, а у Andrey в основном используются они.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2810
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.09.19 10:36. Заголовок: PS По указанному сво..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6422
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.09.19 23:20. Заголовок: SergKis пишет: Для ..


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)
и будет отрабатывать
     :Event( 1, {|  | Form_Main.Btn_Start1.Setfocus , _PushKey( VK_RETURN ) } ) 

Спасибо за подсказку !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6423
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 00:07. Заголовок: Что то не получается..


Что то не получается...
Это отрабатывает нормально - ON KEY ESCAPE OF Form_Main ACTION _wPost(99)
А как задать цифирки 1, 2, 3 ....
Пробовал так
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)

Не компилируется, выдаёт ошибку...
Смотрел \Include\
i_keybd.ch и i_keybd_ext.ch
что то не нашёл...
Меню просто из 4-5-6 кнопок. Больше на форме ничего нет.
Как подключить цифирки 1, 2, 3 ... ?

P.S. Пока подключил так:
 
_DefineHotKey ( "Form_Main" , 0 , 49 , {|| _wPost(1) } )
_DefineHotKey ( "Form_Main" , 0 , 50 , {|| _wPost(2) } )
_DefineHotKey ( "Form_Main" , 0 , 51 , {|| _wPost(3) } )


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2815
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 06:31. Заголовок: Andrey пишет Смотрел..


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)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6424
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 06:56. Заголовок: SergKis пишет: ON K..


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.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2816
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 07:07. Заголовок: Andrey Специально д..


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}> )

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6425
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 07:36. Заголовок: SergKis пишет: Спец..


SergKis пишет:

 цитата:
Специально для тебя вынес сюда команду, но ты на нее все равно не смотришь


Да, есть такое за мной...

SergKis пишет:

 цитата:
Чтобы писать как ты сделал надо в команде поправить


Это каждый раз мне придётся в МиниГуи \include\ править ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6426
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 08:16. Заголовок: А как на кнопку пове..


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2817
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 08:34. Заголовок: Andrey пишет ENTER з..


Andrey пишет
 цитата:
ENTER зацикливается ?


Конечно. Измени
 
WITH OBJECT This.Object
:Event( 0, {| | InkeyGui(200) } )
:Event( 1, {| | Form_Main.Btn_Start1.Setfocus , _PushKey( VK_SPACE ) } )
:Event( 2, {| | Form_Main.Btn_Start2.Setfocus , _PushKey( VK_SPACE ) } )
:Event( 3, {| | Form_Main.Btn_Start3.Setfocus , _PushKey( VK_SPACE ) } )
:Event( 4, {| | Form_Main.Btn_Start4.Setfocus , _PushKey( VK_SPACE ) } )
:Event( 5, {| | Form_Main.Btn_Start5.Setfocus , _PushKey( VK_SPACE ) } )
:Event(99, {|ow| ow:Release() } )
END WITH


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2818
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 08:39. Заголовок: Andrey пишет Это каж..


Andrey пишет
 цитата:
Это каждый раз мне придётся в МиниГуи \include\ править ?


Что то мне подсказывает, что Григорий и HOTKEY добавит в BUTTONEX и команду поправит.
Команду предлагаю так сделать
 
#xcommand ON KEY <key> [ OF <parent> ] ACTION <action> [ RESULT ] [ TO <lresult> ] ;
=> ;
[ <lresult> := ] iif( HB_ISNUMERIC( <key> ) , _DefineHotKey ( <"parent"> , 0 , <key> , <{action}> ) , ;
_SetHotKeyByName ( <"parent"> , <"key"> , <{action}> ) )

тогда можно писать
ON KEY VK_7 ACTION ...
и
ON KEY 7 ACTION ...

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2819
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 09:23. Заголовок: SergKis пишет Команд..


SergKis пишет
 цитата:
Команду предлагаю так сделать


Нет, так не пойдет команда, все время число будет.
Возможно, в функцию добавить
 
FUNCTION _SetHotKeyByName ( cParentForm, cKey, bAction )
...
ENDIF

IF Val(cKey) ) >= 1
RETURN _DefineHotKey( cParentForm, 0, Val(cKey), bAction )
ENDIF

IF !Empty ( cKey ) .AND. ISCHARACTER ( cKey )



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2820
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 09:36. Заголовок: SergKis пишет Возмож..


SergKis пишет
 цитата:
Возможно, в функцию добавить


Будет то же самое - число. Куда то меня унесло,
ушел отдыхать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6427
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 09:44. Заголовок: SergKis пишет: Коне..


SergKis пишет:

 цитата:
Конечно. Измени


Не работает. В другом окне делаю так:
      ON KEY RETURN OF Form_NewZ ACTION {|| Form_NewZ.Button_Find.Setfocus, InkeyGui(200), _PushKey( VK_SPACE ) }  
ON KEY ESCAPE OF Form_NewZ ACTION {|| aRet := {}, Form_NewZ.Release() }

END WINDOW

Видно что курсор прыгает на кнопку, а отработки нет.
ESC - срабатывает нормально.
Дело в том что у меня на кнопке Button_Find - большой код, там несколько функций.
Хотелось бы не переписывать, а заставить кнопку Button_Find срабатывать на ENTER !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2821
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 11:51. Заголовок: Andrey пишет Пример..


Andrey пишет [quote]`
Пример от Григория поправил (2а варианта назначения)Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6428
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 17:06. Заголовок: SergKis пишет: Прим..


SergKis пишет:

 цитата:
Пример от Григория поправил (2а варианта назначения)


Спасибо ! То что нужно !

SergKis пишет:

 цитата:
ставим
oBrw:UserKeys(VK_1, {|ob| _wPost(1, ob, ob) })
oBrw:UserKeys(VK_2, {|ob| _wPost(2, ob, ob) })
и т.д.


За это тоже СПАСИБО !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6429
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 18:19. Заголовок: SergKis пишет: :Ev..


SergKis пишет:

 цитата:
:Event( 1 , {|| This.butt_1.SetFocus, DoEvents(), _PushKey( VK_SPACE ) } )
:Event( 2 , {|| This.butt_2.SetFocus, DoEvents(), _PushKey( VK_SPACE ) } )
:Event( 3 , {|| This.butt_3.SetFocus, DoEvents(), _PushKey( VK_SPACE ) } )


Как можно сделать эмуляцию перехода мышкой на кнопку если включён градиент на кнопке ?
Т.е. на кнопке сделано
 
aColor := CLR_GREEN
aGrOverB2 := { { 0.5, CLR_BLACK, aColor }, { 0.5, aColor , CLR_BLACK } }
aGrFillB2 := { { 0.5, aColor , CLR_WHITE }, { 0.5, CLR_WHITE, aColor } }
.....
BACKCOLOR aGrOverB2 GRADIENTFILL aGrFillB2 ;
ON MOUSEHOVER ( This.Fontcolor := aBtnClr2, This.Icon := cIco2x2, This.GradientFill := aGrFillB2 ) ;
ON MOUSELEAVE ( This.Fontcolor := aBtnClr0, This.Icon := cIco2x1, This.GradientOver := aGrOverB2 ) ;
ACTION {|| _wPost(2) }

Использование This.butt_2.SetFocus - не подсвечивает кнопку ! Только текст кнопки подсвечивает.
Хотелось бы - нажал горячую клавишу, кнопка под светилась и юзер понял какую кнопку нажал.
Это для красоты.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2822
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 18:46. Заголовок: Andrey пишет Как мож..


Andrey пишет
 цитата:
Как можно сделать эмуляцию перехода мышкой на


Как то так
 
FUNCTION HMG_SetMousePos( nHandle, y1, x1 )
Local y := GetWindowRow(nHandle)
Local x := GetWindowCol(nHandle)
Default y1 := 1, x1 := 1

SetCursorPos( x + x1, y + y1 )

RETURN Nil

В примере выше добавить
:Event( 12, {|| HMG_SetMousePos(This.butt_F.Handle) } )
...
ON KEY F3 ACTION _wPost(12)
...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6430
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.09.19 21:33. Заголовок: SergKis пишет: Как ..


SergKis пишет:

 цитата:
Как то так


Да ! Классно выходит. СПАСИБО !

SergKis пишет:

 цитата:
Пример от Григория поправил (2а варианта назначения)С


Что то не получается в моём случае.
Делаю так:
 
@ ... BUTTONEX Button_Find ;
........
ACTION { || SaveSeekAdres(cFileMemo,nCity,cCity,nStreet,cStreet,nDom,cDom,;
nStro,cStro,nKorp,cKorp,nPodz,cPodz,nKvar,cKvar),;
SaveZaivkMenu(cFileMemo2, nZDmfAnt, nZDBase, nZDogAb) ,;
aDimAdr := {nCity,cCity,nStreet,cStreet,nDom,cDom,nStro,cStro,nKorp,cKorp,nPodz,cPodz,nKvar,cKvar} ,;
aDimZaS := {nLastDay,lOtmena,lOst,lKeyOff,lZClose,lDClose } ,;
cVal := Form_NewZ.Label_Adres.Value ,;
aRet := FindListZaivka(nZDmfAnt, nZDBase, nZDogAb, aDimZaS, aDimAdr, cVal) ,;
Form_NewZ.Release() }

@ ........ BUTTONEX Button_Exit ;
...........
ACTION { || aRet := {}, DoEvents(), Form_NewZ.Release() }

...........
WITH OBJECT This.Object
:Event( 1, {|| Form_NewZ.Button_Find.Setfocus, DoEvents(), _PushKey( VK_SPACE ) } )
:Event(99, {|ow| ow:Release() } )
END WITH

ON KEY RETURN OF Form_NewZ ACTION _wPost(1 , This.button_Find.Index)
ON KEY ESCAPE OF Form_NewZ ACTION _wPost(99, This.button_Exit.Index)

END WINDOW

Как сделать не перетаскивая код-блока из кнопки, чтобы срабатывал _wPost(1) и _wPost(99) ?
Не хочется перетаскивать код из кнопки. Или так нельзя делать ?
Если перетащу код из кнопки в :Event( 1, {|| ..... - то всё работает отлично !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2823
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 21:57. Заголовок: Andrey пишет Что то ..


Andrey пишет
 цитата:
Что то не получается в моём случае.


Из своего примера
 
(This.Object):Event(11, {|| SetMousePos(This.Btn_1.Handle), This.Btn_1.SetFocus, DoEvents(), _PushKey( VK_SPACE ) })
...
ON KEY F3 ACTION _wPost(11)

 цитата:
Если перетащу код из кнопки в :Event( 1, {|| ..... - то всё работает отлично !


Именно так и должно быть, на контролах, всегда, только сообщения

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2824
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.09.19 23:11. Заголовок: PS AC..


PS
 
ACTION _wPost(1, This.Index)

:Event( 1, { || SaveSeekAdres(cFileMemo,nCity,cCity,nStreet,cStreet,nDom,cDom,;
nStro,cStro,nKorp,cKorp,nPodz,cPodz,nKvar,cKvar),;
SaveZaivkMenu(cFileMemo2, nZDmfAnt, nZDBase, nZDogAb) ,;
aDimAdr := {nCity,cCity,nStreet,cStreet,nDom,cDom,nStro,cStro,nKorp,cKorp,nPodz,cPodz,nKvar,cKvar} ,;
aDimZaS := {nLastDay,lOtmena,lOst,lKeyOff,lZClose,lDClose } ,;
cVal := Form_NewZ.Label_Adres.Value ,;
aRet := FindListZaivka(nZDmfAnt, nZDBase, nZDogAb, aDimZaS, aDimAdr, cVal) ,;
_wSend(99) } )


ON KEY RETURN OF Form_NewZ ACTION ( SetMousePos(This.button_Find.Handle), This.button_Find.SetFocus, DoEvents(), _wPost(1, This.button_Find.Index) )
ON KEY ESCAPE OF Form_NewZ ACTION _wPost(99)



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2826
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.09.19 15:11. Заголовок: PPS Для кнопки Exit ..


PPS
Для кнопки Exit
 
@ ........ BUTTONEX Button_Exit ;
...........
ACTION _wPost(2, This.Index) ;

:Event( 2, { || aRet := {}, _wSend(99) } )

ON KEY ESCAPE OF Form_NewZ ACTION ( SetMousePos(This.button_Exit.Handle), This.button_Exit.SetFocus, DoEvents(), _wPost(2, This.button_Exit.Index) )
или
если есть
LOCAL aRet := {}
то сразу делать
@ ........ BUTTONEX Button_Exit ;
...........
ACTION _wPost(99) ;

ON KEY ESCAPE ACTION ( SetMousePos(This.button_Exit.Handle), This.button_Exit.SetFocus, DoEvents(), _PushKey( VK_SPACE ) /* или _wPost(99) или _wSend(99) */ )


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6432
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.09.19 19:24. Заголовок: Всем привет. А как о..


Всем привет.
А как объявить в проге, что нужно линковать функцию, у которой нет явного вызова ?

Т.е. вызов функции объявлен в массиве меню, примерно так:
AADD( aDim, {"FLAG_RU.bmp" , "Test menu - Russian ", "RunTest1", "Stroka1" , 1 } )
чтобы потом можно было вызвать RunTest1() ?
А то сейчас пишет, что нет такой функции в ехе-файле.
В библиотеке которую линкую эта функция есть.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1580
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.09.19 09:35. Заголовок: Andrey пишет: как о..


Andrey пишет:

 цитата:
как объявить в проге, что нужно линковать функцию


Попробуй добавить

 цитата:
REQUEST RunTest1



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6433
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.19 14:11. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Попробуй добавить


Спасибо !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6434
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.19 14:23. Заголовок: Обнаружил небольшой ..


Обнаружил небольшой баг в примере MiniGUI\SAMPLES\BASIC\Menu\menudemo5.prg
Выбираем меню Options и потом любое другое меню.
После выхода из меню можно кликнуть правой кнопкой мышки и это же меню появиться опять на форме.
В Options-2 и Options-3 от этого избавился, как рекомендовал раньше.
Больше такого избавления в примерах нигде нет !
А новичкам это тоже будет интересно.
Последний пример совместно написанный с Сергеем выслал на почту.

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1581
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.09.19 15:38. Заголовок: Andrey пишет: Обнар..


Andrey пишет:

 цитата:
Обнаружил небольшой баг в примере


Благодарю за сообщение
Добавил две новые функции для проверки

 цитата:
- New: function IsContextMenuDefined ( cFormName );
- New: function IsNotifyMenuDefined ( cFormName ).


Andrey пишет:

 цитата:
Больше такого избавления в примерах нигде нет


Посмотри как это работает в примере из папки
\samples\Basic\MENU_Dynamic

Andrey пишет:

 цитата:
пример совместно написанный с Сергеем выслал на почту


Благодарю за пример
Уже включил его в первую бету новой сборки, которую подготовил сегодня

 цитата:
* New: 'Extended Dynamic Context Menu' sample.
Contributed by Sergej Kiselev and Verchenko Andrey
(see menudemo6.prg in folder \samples\Basic\Menu)



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6435
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.09.19 18:26. Заголовок: Можно ли включить в ..


Можно ли включить в Минигуи стандартную функцию расчёта размера фонта в зависимости от ширины и высоты LABEL ?
Свои есть, но что-то не дотягивают до стандарта.
И не знаю как рассчитать размеры для фонтов BOLD ?
Вот например есть такая у меня функция:
////////////////////////////////////////////////////////////////// 
// Функция вернёт максимальный размер фонта для заданной строки по заданной ширине
FUNCTION FontSizeMaxAutoFit( cText, cFName, nWinWidth )
LOCAL nTxtWidth, nFSize, lExit := .T.

nFSize := 6
DO WHILE lExit
nTxtWidth := GetTxtWidth( cText, nFSize, cFName )
IF nTxtWidth >= nWinWidth
lExit := .F.
ELSE
nFSize++
ENDIF
ENDDO

RETURN nFSize

Если текст короткий то половина слова показывается на LABEL, нижняя часть слова обрезается, слишком большой фонт.
Помогите сделать такие универсальные функции !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2860
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.09.19 19:18. Заголовок: Andrey пишет Помогит..


Andrey пишет
 цитата:
Помогите сделать такие универсальные функции !


Они уже в тек. версии есть, для регистрированного фонта, посмотри changelog
 
* New: Added the useful pseudo-functions GetFontWidth( FontName, nLen ) and
GetFontHeight( FontName ) for receiving of the font's parameters.
Note that a font should be defined by command
DEFINE FONT <FontName> FONTNAME <sysfont> ...

и пример, который отсылал Григорию, там есть применение GetFontWidth( FontName, nLen ) для меню. Универсальность
nW := 0; AEval(aText, {|ct| nW := Max(nW, GetFontWidth( 'Font_1', Len(ct) ) })

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2861
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.09.19 19:23. Заголовок: PS можешь применить ..


PS
можешь применить коэффициент, если надо уменьшить\увеличить размер
nW := 0; AEval(aText, {|ct| nW := Max(nW, GetFontWidth( 'Font_1', Len(ct) ) * 0.8 /* 1.05 */ })

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2862
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.09.19 20:21. Заголовок: Andrey пишет Помогит..


Andrey пишет
 цитата:
Помогите сделать такие универсальные функции !


Для реальных размеров текста можно такую ф-юСкрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 2863
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.09.19 20:23. Заголовок: PS Фонты с BOLD и др..


PS
Фонты с BOLD и др. атрибутами надо регистрировать DEFINE FONT ...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 43 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 10
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет