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 
ПрофильЦитата Ответить
Ответов - 97 , стр: 1 2 3 4 5 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 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6450
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.09.19 23:37. Заголовок: SergKis пишет: доба..


SergKis пишет:

 цитата:
добавить NOSHOW, а в ON INIT This.Show()


Это относится к окну. Понял. Спасибо большое !
У меня проблема большая... по Tab.
Показываю окно с Tab карточкой юзеру.
На медленных компах видно как этот Tab дергается, т.е. на Tab вывожу объекты Label и GetBox.
Там их много, порядка 150 объектов. Вот и дергается Tab.
Можно как то это "дерганье" убрать ?
Код почти такой же как в примере MiniGUI\SAMPLES\BASIC\COLORED_TAB

Вот мой код
Скрытый текст


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



Пост N: 2914
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.19 23:57. Заголовок: Andrey пишет Это отн..


Andrey пишет
 цитата:
Это относится к окну. Понял. Спасибо большое !


Перенеси, обязательно, This.Center как в пред. версии hmg

 цитата:
Там их много, порядка 150 объектов. Вот и дергается Tab.


Попробуй окну NOSHOW и в ON INIT This.Show, как выше

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




Пост N: 6451
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.09.19 12:51. Заголовок: SergKis пишет: Поп..


SergKis пишет:

 цитата:

Попробуй окну NOSHOW и в ON INIT This.Show, как выше


Нет, окну не могу. Нужно для объекта Tab.

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



Пост N: 2915
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.09.19 14:22. Заголовок: Andrey Приведенный ..


Andrey
Приведенный тобой код, он в каком месте работает, в ON INIT ... или до END WINDOW ?

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



Пост N: 2916
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.09.19 14:27. Заголовок: Andrey пишет Нет, ок..


Andrey пишет
 цитата:
Нет, окну не могу. Нужно для объекта Tab.


Почему ? В чем причина ?
Можно показать готовое окно из hide и не видеть как мелькает при формировании.

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




Пост N: 6452
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.09.19 21:12. Заголовок: SergKis пишет: Поче..


SergKis пишет:

 цитата:
Почему ? В чем причина ?
Можно показать готовое окно из hide и не видеть как мелькает при формировании.


Я окно карточки делаю набегающим, т.е. в цикле увеличиваю размеры окна карточки (мини анимация).
Это делаю всё в
       ON INIT { || MyInitCard(cTableForm,lEditPrg,hCursorTable),; 
ResizeCardForm(cTableForm) , SizePageBack(1) } ;

Построение DEFINE TAB Tab_1 OF Form_Card до END WINDOW:
       SetTab_1Card(nRowTab,nFWidth,nFHeight,cFNameTab,nFSizeTab,lEditPrg,aBackColor,; 
aTabName, aTabColor, aDimCard, aFontNames, aFontFields, aTabFColor2 )

ON KEY ESCAPE OF Form_Card ACTION ThisWindow.Release
ON KEY PRIOR OF Form_Card ACTION MyPageUpCard(cTableForm) // это PageUp
ON KEY NEXT OF Form_Card ACTION MyPageDownCard(cTableForm) // это PageDown

END WINDOW
ACTIVATE WINDOW Form_Card

Можно ли скрыть построение TAB Tab_1 а потом его показать ?

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



Пост N: 2917
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.09.19 22:23. Заголовок: Andrey пишет Можно л..


Andrey пишет
 цитата:
Можно ли скрыть построение TAB Tab_1 а потом его показать ?


Если найдешь хандле всех дочерних окон - page, то, наверно, сможешь.
Сделай 2а окна, с tab -> hide, 2ое для анимации, т.е. заполняешь первое, размеры меняешь у второго.
Потом 1му -> размеры 2го и выводишь из hide+topmost+-, второму release.
Вроде, были примеры на анимацию окна, но не помню так ли.

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



Пост N: 2918
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.09.19 22:31. Заголовок: Andrey пишет ..


Andrey пишет
 цитата:
ON INIT { || MyInitCard(cTableForm,lEditPrg,hCursorTable),;
ResizeCardForm(cTableForm) , SizePageBack(1) } ;


Все как в примере colored_tab, на глаз видно передергивание (маленькое) перерисовки
Сделал NOSHOW + ON INIT ( ..., This.Show() ), все чистенько стало.
А так, ты сам елку (анимацию) сделал

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




Пост N: 6453
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.09.19 21:00. Заголовок: Всем привет ! Попро..


Всем привет !
Попросил сделать пример с TAB объектом на C# для WinForm.
Чуток по другому дергается для большлого кол-ва вкладок с TextBox.
Видать это особенность Win-api для WinForm.
Но есть одна особенность, в C# можно скрыть объект, а после прорисовки его показать !
Тогда "дерганья" не видно вообще !

Посмотрел хелп по МиниГуи. Для TAB нет свойства INVISIBLE.
Для других объектов есть, а для TAB нет.
Если бы был, то тогда было бы всё отлично !
Строим скрытый объект TAB, а потом можно было бы сделать в ON INIT { || Form_Card.Tab_1.Show .....

Григорий, можно ли добавить для TAB свойство INVISIBLE ?

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


Пост N: 1560
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 23.09.19 21:32. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если бы был, то тогда было бы всё отлично !
Строим скрытый объект TAB, а потом можно было бы сделать в ON INIT { || Form_Card.Tab_1.Show .....


Я, конечно, могу ошибаться, но разве Сергей тебе не то же самое предложил?
SergKis пишет:

 цитата:
Сделал NOSHOW + ON INIT ( ..., This.Show() ), все чистенько стало.



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




Пост N: 6454
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.09.19 21:59. Заголовок: PSP пишет: Я, конеч..


PSP пишет:

 цитата:
Я, конечно, могу ошибаться, но разве Сергей тебе не то же самое предложил?


У объекта TAB по хелпу нет свойства NOSHOW.
Сергей предложил сделать NOSHOW для всего окна.
Для меня показ окна обязателен.
Предложения с подменой окон уж очень сложен.

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




Пост N: 1587
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 24.09.19 10:27. Заголовок: Andrey пишет: можно..


Andrey пишет:

 цитата:
можно ли добавить для TAB свойство INVISIBLE ?


Для этого у всех контролов есть методы Hide/Show
Попробуй

 цитата:
*-----------------------------------------------------------------------------*
PROCEDURE Hide_CLick
*-----------------------------------------------------------------------------*

Form_1.Tab_1.Visible := .F.

RETURN
*-----------------------------------------------------------------------------*
PROCEDURE Show_CLick
*-----------------------------------------------------------------------------*

Form_1.Tab_1.Visible := .T.

RETURN



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




Пост N: 6455
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.09.19 13:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Для этого у всех контролов есть методы Hide/Show


А как этот метод заставить работать сразу при построение Tab_1 ?
Если делать так:
 DEFINE TAB Tab_1 OF Form_Card ;  
.........
ON CHANGE SizePageBack( Form_Card.Tab_1.Value )

Form_Card.Tab_1.Visible := .F.

_HMG_ActiveTabBottom := .F. // lBottomStyle

FOR nI := 1 TO LEN( aTabName )
IF aStatCheckTabView[nI] // показ вкладки разрешено !
PAGE aTabName[ nI ] //IMAGE cResTabImage
cNameLabel := 'Page_' + hb_ntos( nI )
@ 24, 2 LABEL &cNameLabel VALUE "" WIDTH 0 HEIGHT 0 BACKCOLOR aTabColor[nI]
// вывести поля карточки
ShowPageCard( nI, nRowTab, aTabColor[ nI ], aDimCard[ nI ],;
aFontNames, aFontFields, lEditPrg, nFSizeTab )
END PAGE
ENDIF
NEXT

END TAB

То происходит вылет программы.
Нужно строить объект DEFINE TAB сразу скрытым.
Как это сделать ?

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




Пост N: 6456
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.09.19 20:18. Заголовок: Всем привет ! Сделал..


Всем привет !
Сделал тестовый пример, показ из массива 20 вкладок по 25 объектов LABEL + 25 объектов GetBox
Построение на TAB происходит моментально, без "дерганья".
Значит эффект "дерганья" происходит тогда, когда считываются значения полей из базы.
Буду дальше пилить тестовый пример.

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




Пост N: 6458
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.10.19 12:45. Заголовок: Наконец то смог зако..


Наконец то смог закончить проверку "дерганья" карточки в TAB.
Мой косяк, делаю перерисовку всех объектов TAB в SizeTest.
Сам виноват, не там нужно было делать.
И вот это:
Form_1.Tab_1.Visible := .F.
Form_1.Tab_1.Visible := .T.

помогло убрать "дерганье" карточки в TAB !
Спасибо всем подсказчикам !

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




Пост N: 6506
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.11.19 18:04. Заголовок: Всем привет ! Stand..


Всем привет !

Standard Window:
@ <nRow> ,<nCol> FRAME <ControlName>
[ ID <nId> ]
[ OF | PARENT | DIALOG <ParentWindowName> ]
[ CAPTION <cCaption> ]
[ WIDTH <nWidth> ]
[ HEIGHT <nHeight> ]
[ FONT <cFontName> ]
[ SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ BACKCOLOR <anBackColor> ]
[ FONTCOLOR <anFontColor> ]
[ OPAQUE ]
[ TRANSPARENT ]
[ INVISIBLE ]
[ ON INIT <bInit> ]

Использую это объект. Заголовок всегда черным цветом. Можно ли его сделать другим цветом ?
Попробовал разные варианты, у меня не получилось.

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




Пост N: 6507
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.19 17:30. Заголовок: Посмотрел тест на ХР..


Посмотрел тест на ХР и Win8.1 - цвет заголовка FRAME тоже черный !
Думал опять какая то бодяга в Win8.1..
Смотрел ppo файл - цвет передается нормально !
_BeginFrame ( cObj,, nY, nX, nWFrm, nHFrm , aObjFrm[nI,2] , , , .F. , .F., .F., .F., .F. , aBackColor , {255, 0, 0} , .F. , .F. , , ) 

Значит в МиниГуи что-то сломалось....
Поставил проверку в h_frame.prg на строки
 
_HMG_aControlType [k] := "FRAME"
_HMG_aControlNames [k] := ControlName
_HMG_aControlHandles [k] := ControlHandle
...............
_HMG_aControlBkColor [k] := backcolor
_HMG_aControlFontColor [k] := fontcolor
? "_HMG_aControlFontColor["+HB_NtoS(K)+"]", HB_ValToExp( _HMG_aControlFontColor[k] )

Цвет передаётся нормально:
_HMG_aControlFontColor[27]	{255, 0, 0}	

А дальше не знаю где смотреть....
Посмотрите/попробуйте пожалуйста объект FRAME, это только у меня или везде так ЧЕРНЫМ цветом

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




Пост N: 1620
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.11.19 17:59. Заголовок: Andrey пишет: это т..


Andrey пишет:

 цитата:
это только у меня или везде так ЧЕРНЫМ цветом


Эта проблема уже обсуждалась ранее:
если используется THEMED Винда, то цвет текста в заголовке FRAME и в подписи CHECKBOX всегда черный.

Для того, чтобы увидеть цветной заголовок, надо использовать Классический вид в Винде, т.е. как в Windows 98

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




Пост N: 6508
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.19 18:24. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Эта проблема уже обсуждалась ранее:


Пропустил наверное... Пока сам на грабли не налетел, не запомнишь !
СПАСИБО, понял.

А в C# (он называется GroupBox) на любых темах цвет заголовка FRAME можно делать любым...
Вот пример - https://cloud.mail.ru/public/Ba8K/kzjVDx7tc
Может можно как нибудь сделать изменение цвета заголовка и для МиниГуи ?
Это не срочно, но чтобы было такое в МиниГуи.

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




Пост N: 1621
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.11.19 18:40. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может можно как нибудь сделать изменение цвета заголовка и для МиниГуи ?


Да, есть уже.
Посмотри функцию MyFrame() в примере из папки samples\Basic\LABEL_3

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




Пост N: 6509
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.11.19 18:53. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри функцию MyFrame() в примере из папки samples\Basic\LABEL_3


Посмотрел...
Что-то не совсем понятно как прицепить эту функцию в модуль Form_fonts.prg проекта Tsb_composite ?
Там несколько FRAME и имена объектов разные.

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




Пост N: 6510
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.11.19 17:48. Заголовок: Вроде получилось сде..


Вроде получилось сделать несколько FRAME через функцию MyFrame(), но пришлось убрать имя и размер фонта в этой функции. И не по центру текста проходиь полоса, но пойдёт и так !
Спасибо Григорий !

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




Пост N: 6513
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.19 15:13. Заголовок: Всем привет ! Вот чт..


Всем привет !
Вот что за ерунда получается, как юзер добивается ошибки в работающей программе ?
Пробовал сам - не вылетает, а юзер что-то делает и вылетает.
Вот например такая ошибка:
Error MGERROR/0 Window: Form_Dim is already defined. Program terminated.
Called from MSGMINIGUIERROR(100) in module: h_error.prg
Called from _DEFINEMODALWINDOW(487) in module: h_windows.prg
Called from FORM_SEL_DIM(632) in module: Source\Sel_Dim_Hmg.prg
Called from SEL_DIM(561) in module: Source\Sel_Dim_Hmg.prg

В исходнике все правильно, у меня работает без ошибок:
    DEFINE WINDOW Form_Dim         ; 
....
MODAL NOSYSMENU ;
NOSIZE ;
ON INIT {|| OnInitFormDim(lKeyPass), oBrw_5:Setfocus() } // строка 632

Как расшифровать ошибку ?
Может доп.отладку какую то сделать ?
Окно Form_Dim только в ОДНОМ исходнике, и оно MODAL, т.е. другое окно не сделаешь, пока это окно не закроешь.
Или я чего-то не до понимаю ?

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




Пост N: 7136
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.19 16:15. Заголовок: Andrey пишет: Пробо..


Andrey пишет:

 цитата:
Пробовал сам - не вылетает, а юзер что-то делает и вылетает.


Проставь ему пиво , пусть колется как

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





Пост N: 243
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 12.11.19 21:41. Заголовок: Andrey пишет: Может..


Andrey пишет:

 цитата:
Может доп.отладку какую то сделать ?


Я в терминалке сделал второй поток и отслеживаю нажатые клавиши и сохраняю изменения экрана, имитирую видеопоток. Сохраняю все в базу, потом можно просматривать что делал пользователь, что нажимал в какой момент времени, снимок состояния базы и т.д. Иногда помогает понять что накосячили, да и подловить недобросовестных пользователей можно.... Наверное в гуи более затратно будте вести постоянную запись, но последние минуту -другую до вылета проги можно сохранять и выкладывать на ftp например

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




Пост N: 6517
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.11.19 17:12. Заголовок: Andrey пишет: Вот н..


Andrey пишет:

 цитата:
Вот например такая ошибка:
Error MGERROR/0 Window: Form_Dim is already defined. Program terminated.
Called from MSGMINIGUIERROR(100) in module: h_error.prg
Called from _DEFINEMODALWINDOW(487) in module: h_windows.prg
Called from FORM_SEL_DIM(632) in module: Source\Sel_Dim_Hmg.prg


Вроде разобрался с подсказки Сергея - почему так выходит, т.е. юзер ловит ошибку, а я нет .
У меня система Win8.1, у юзера Win7 и WinServer2008.
Юзер по кнопке успевает 2 раза кликнуть по мышке и 2 раза вызвать модальное окно с одинаковым именем.
У меня так не получается...
Сделал теперь в кнопке так:
        ACTION {|cw,cn| cw := ThisWindow.Name, cn := This.Name                        ,;  
SetProperty(cw,cn, "Enabled", .F.) ,;
Form_Sel_Dim() ,; // вызов справочника
iif( _IsWindowActive(cw), Setproperty(cw,cn, "Enabled", .T.), Nil ) ,;
Form_Seek.Label_Buff.Setfocus }


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



Пост N: 1
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 29.11.19 10:25. Заголовок: Всем привет ! в прим..


Всем привет !
в примере \MiniGUI\SAMPLES\Advanced\Tsb_array_2\demo.prg, если увеличить количество колонок (раза в 3, выход за ширину TSBROWS)
и после запуска программы на горизонтальном SCRLLBAR удерживать кнопку движения вправо, всё подвисает.
Может кто то подскажет как побороть ?

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



Пост N: 2969
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 29.11.19 12:39. Заголовок: kkg пишет и после за..


kkg пишет
 цитата:
и после запуска программы на горизонтальном SCRLLBAR удерживать кнопку движения вправо, всё подвисает


Попробуйте сделать для колонок (при быстром скролинге не успевает за ним прорисовка тсб)
AEval( oBrw:aColumns, {|oc| oc:bGotFocus := {|| DoEvents() } } )
Если не поможет, то надо уменьшать количество колонок в просмотре, используя oc:Visible := .F. для скрытия и показываете, сгруппировав частями, переключая по выбору на нужную группу.

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



Пост N: 2
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 29.11.19 14:08. Заголовок: SergKis пишет AEval..


SergKis пишет

 цитата:
AEval( oBrw:aColumns, {|oc| oc:bGotFocus := {|| DoEvents() } } )


Спасибо за идею, но не помогло, хотя улучшило.
Попробую через oBrw:bEvents "разжижить" событие WM_HSCROLL , SB_LINERIGHT

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




Пост N: 1627
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 29.11.19 22:30. Заголовок: kkg пишет: после за..


kkg пишет:

 цитата:
после запуска программы на горизонтальном SCRLLBAR удерживать кнопку движения вправо, всё подвисает


Да, это известная проблема с большим числом колонок и беспрерывным нажатием на стрелку

Как вариант решения, предлагается пример ниже:

 цитата:
 
#include "minigui.ch"
#include "tsbrowse.ch"

REQUEST SQLMIX

Procedure Main()

rddSetDefault( "SQLMIX" )

DEFINE WINDOW Form1 ;
AT 0,0 ;
WIDTH (RR_GetDesktopArea()[4] * 0.99) ;
HEIGHT (RR_GetDesktopArea()[3] * 0.91) ;
TITLE "TsBrowse Array Test" ;
MAIN ;
FONT 'Tahoma' SIZE 9

END WINDOW

Test()

Form1.Center
Form1.ACTIVATE

Return

*--------------------------------------------------------------

Function Test()
local i := 0
local j := 0
Local aStr := {}
local cAlias := "TEST"
local cBrw := "BRW"

PUBLIC &cBrw

FOR j := 1 TO 300
AADD( aStr, {"F_" + NTOC(j) , "N", 14, 2 } )
NEXT

dbCreate( cAlias, aStr,, .T., cAlias )

FOR i := 1 TO 100
(cAlias)->( DbAppend() )
FOR j := 1 TO 300
(cAlias)->( FieldPut(j, i*j) )
NEXT
NEXT

DEFINE TBROWSE &cBrw ;
At 20, 5 ;
ALIAS cAlias ;
OF Form1 ;
WIDTH (Form1.Width - 20) ;
HEIGHT (Form1.Height - 70) ;
COLORS { CLR_BLACK, CLR_WHITE } ;
FONT "MS Sans Serif" ;
SIZE 8 ;
CELL;
SELECTOR .T.
END TBROWSE

&cBrw:bUserKeys := { |x,y,z| left_right_key(x, y, z) }
&cBrw:bChange := { |x| tbrow_refresh(x) }

&cBrw:LoadFields( FALSE )

Return Nil

function left_right_key(pnKey, pnFlags, pSelf)
if pnKey == VK_LEFT .or. pNKey == VK_RIGHT
pSelf:refresh(.F.,.T.)
INKEYGUI(100)
pSelf:refresh(.F.,.T.)
end
return(pnKey)

function tbrow_refresh(x)
x:RefreshARow(x:nRowPos)
if x:nRowPos == x:nRowCount() .or. x:nRowPos == x:nRowCount() + 1
x:refresh(.F.,.T.)
end
return(NIL)



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



Пост N: 3
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 30.11.19 02:56. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Как вариант решения, предлагается пример ниже:


Григорий спасибо, но и с SQLMIX и с массивом, результат всё равно крах.
click here

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



Пост N: 2979
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.11.19 09:31. Заголовок: kkg пишет с SQLMIX ..


kkg пишет
 цитата:
с SQLMIX и с массивом, результат всё равно крах


Правильнее, по мне, отработать счетчиками нажатия (+) и отпускания (сброс) клавиш VK_LEFT, VK_RIGHT,
т.е. если, к примеру, счетчик нажатий будет > 5, то не делать :GoLeft(), :GoRight() пока не отпустят или
не закончится прорисовка тсб. Похожая схема работает в моей версии (7+часть из 9) тсб при VK_UP, VK_DOWN,
нажатиях, если их >= :nRowCount(), то делаю листание страницы, вместо движения построчно.
Таким образом обхожу зависание прорисовки в 7ой версии тсб.

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



Пост N: 2980
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.11.19 15:37. Заголовок: SergKis пишет отрабо..


SergKis пишет
 цитата:
отработать счетчиками


Измененный пример от Григория со счетчиками Скрытый текст

Вроде работает

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



Пост N: 4
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 30.11.19 18:13. Заголовок: SergKis пишет: Врод..


SergKis пишет:

 цитата:
Вроде работает


на этом примере да , но на примере из поставки с массивом + nFreeze на счётчиках не работает (по крайней мере у меня не получается), только с временной задержкой
Скрытый текст


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



Пост N: 2981
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 30.11.19 21:44. Заголовок: kkg пишет на этом пр..


kkg пишет
 цитата:
на этом примере да , но на примере из поставки с массивом + nFreeze на счётчиках не работает (по крайней мере у меня не получается), только с временной задержкой


Уменьшите значение
Static n_CntLeft := 0, n_CntRight := 0, n_LeftRight := 3
Вот пример Tsb_Array_2 с учетом :nFreeze Скрытый текст


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



Пост N: 5
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 30.11.19 22:24. Заголовок: SergKis пишет: Умен..


SergKis пишет:

 цитата:
Уменьшите значение
Static n_CntLeft := 0, n_CntRight := 0, n_LeftRight := 3
Вот пример Tsb_Array_2 с учетом :nFreeze


так всё равно виснет если двигать зажатой кнопкой скрола в право

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



Пост N: 2982
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 00:39. Заголовок: kkg пишет так всё ра..


kkg пишет
 цитата:
так всё равно виснет если двигать зажатой кнопкой скрола в право


В моей сборки вправо и влево зажатый скролл работает по всей линейке и не виснет (hmg 19.09.2 сборка)
Если виснет у вас, то можно пробовать обработку сообщения WM_HSCROLL (цветом выделено)
 
function tsb_events( oBrw, nMsg, nWParam, nLParam )
Local nRet := 0, nKey, nFlag, nCol, nFrez
Local lCtrl := _GetKeyState( VK_CONTROL )
Local lShift := _GetKeyState( VK_SHIFT )
Local lAlt := _GetKeyState( VK_MENU )
Static n_CntLeft := 0, n_CntRight := 0, n_LeftRight := 3

nCol := oBrw:nCell
nFrez := oBrw:nFreeze + 1
nKey := nWParam
nFlag := nLParam

If lCtrl .or. lShift .or. lAlt
ElseIf nMsg == WM_KEYDOWN
If nKey == VK_LEFT .and. nCol > nFrez
n_CntLeft ++
If n_CntLeft >= n_LeftRight
nRet := 1
InkeyGui(100)
n_CntLeft := 0
EndIf
DoEvents()
ElseIf nKey == VK_RIGHT .and. nCol <= oBrw:nColCount()
n_CntRight ++
If n_CntRight >= n_LeftRight
nRet := 1
InkeyGui(100)
n_CntRight := 0
EndIf
DoEvents()
EndIf
Elseif nMsg == WM_HSCROLL
If ! oBrw:lDontchange
oBrw:HScroll( Loword( nKey ), HiWord( nFlag ) )
nRet := 1
InkeyGui(100)
DoEvents()
EndIf

ElseIf nMsg == WM_KEYUP
n_CntLeft := n_CntRight := 0
EndIf

return nRet

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

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



Пост N: 6
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 01.12.19 02:43. Заголовок: SergKis пишет: В мо..


SergKis пишет:

 цитата:
В моей сборки вправо и влево зажатый скролл работает по всей линейке и не виснет (hmg 19.09.2 сборка)
Если виснет у вас, то можно пробовать обработку сообщения WM_HSCROLL (цветом выделено)


у меня сборка Harbour MiniGUI Extended Edition 19.10 (Update 2), на ней не работает.
заработало только так.
Скрытый текст


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



Пост N: 2983
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 11:45. Заголовок: kkg пишет заработало..


kkg пишет
 цитата:
заработало только так


hmg 19.09.2 сборка вашего примера скролл работает аналогично моего варианта, после двойных кликов по крайним кнопкам скролла (сообщения автоматом), при достижении крайних значений колонок, надо кликами на тсб активировать тсб работу.
Разваливается
- :nFreeze установленный (влево уходит на 1ю колонку) :nFreeze := 4
- Shift+End и Shift+Home (переход в конец\начало строки)
- врет с нумерацией SpecHeader, меняя нумерацию у :nFreeze колонок и соответсвенно у остальных

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



Пост N: 2984
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 11:58. Заголовок: PS Надо отметить, чт..


PS
Надо отметить, что и в моем примере SpecHeader врет одинаково и Shift+Home уст. на 1ю колонку, но по -> правильно перепрыгивает на колонку с учетом :nFreeze. Это, наверно, общая неточность в тсб.

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



Пост N: 7
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 01.12.19 14:51. Заголовок: Ещё, после отпускани..


Ещё, после отпускания кнопки на скролбаре не сбрасывается сброс счётчика.
Допиливать нужно, но пока хоть не сваливается.
Уже приемлемо.

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



Пост N: 2985
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 18:07. Заголовок: kkg пишет Допиливать..


kkg пишет
 цитата:
Допиливать нужно, но пока хоть не сваливается


Что то допиливать надо, но у меня сборка hmg 19.10.2 на bcc 5.8 работает? не виснет по скроллу и клавишам.
Вот пример этой сборки https://TransFiles.ru/8n29c
Гонял туда-сюда работает и не виснет, так же как сборка bcc 5.5 hmg 19.09.2

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



Пост N: 2986
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.12.19 23:57. Заголовок: Повторю ссылку https..


Повторю ссылку https://TransFiles.ru/bwhwh

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



Пост N: 8
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 02.12.19 01:47. Заголовок: SergKis пишет: Что ..


SergKis пишет:

 цитата:
Что то допиливать надо, но у меня сборка hmg 19.10.2 на bcc 5.8 работает? не виснет по скроллу и клавишам.


с oBrw:lLockFreeze := .F. на сборке 19.10.2 виснет + бегунок не дотягивает до последнего столбца

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



Пост N: 2987
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 10:19. Заголовок: kkg пишет с oBrw:lLo..


kkg пишет
 цитата:
с oBrw:lLockFreeze := .F. на сборке 19.10.2 виснет


При :nFreeze := 4 задан, надо :lLockFreeze := .T., избегать прорисовки замороженных колонок
По примеру с :lLockFreeze := .F. видно, что при работе левой кнопки скроллбар курсор добегает до 1ой колнки, а должен остановиться на 4ой, что и происходит при :lLockFreeze := .T.. Уже видно рассогласование в прорисовке.

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



Пост N: 9
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 02.12.19 10:50. Заголовок: SergKis пишет: При ..


SergKis пишет:

 цитата:
При :nFreeze := 4 задан, надо :lLockFreeze := .F., избегать прорисовки замороженных колонок


На тяжёлых многоуровневых формах (много колонок) nFreeze нужен для замораживания ключевой информации,
а lLockFreeze := .F. нужен чтобы передать на следующий уровень строку с данными и номер (имя) кликнутой колонки,
но зачастую необходимая колонка находится в замороженной зоне поэтому и нужно чтобы курсор в неё заходил.

Для наглядности можно переставить местами
oBrw:lLockFreeze:=.f.
oBrw:nFreeze:=4

Ещё бывает необходимость редактировать данные в замороженной области

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



Пост N: 2988
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 11:27. Заголовок: kkg пишет На тяжёлых..


kkg пишет
 цитата:
На тяжёлых многоуровневых формах (много колонок) nFreeze нужен для замораживания ключевой информации,
а lLockFreeze := .F. нужен чтобы передать на следующий уровень строку с данными и номер (имя) кликнутой колонки,
но зачастую необходимая колонка находится в замороженной зоне поэтому и нужно чтобы курсор в неё заходил.


OK!
Попробуйте добавить в h_tbrowse.prg
 
METHOD DrawLine( xRow ) CLASS TSBrowse
...
Next

DoEvents()

EndIf

Return Self
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
If lDraw
AAdd( ::aDrawCols, nJ )
EndIf

Next

DoEvents()

EndIf

If ::bOnDraw != Nil
...

и пересобрать либу MakeLib.bat
Пример с :lLockFreeze := .F. мой вариант, вроде не виснет, покрутил туда-сюда какое то время.

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



Пост N: 2989
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.12.19 11:49. Заголовок: SergKis пишет вроде ..


SergKis пишет
 цитата:
вроде не виснет, покрутил туда-сюда какое то время


Стало обвисать перемещение клавишами, к сожалению, а скроллбар нет.

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



Пост N: 2990
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.12.19 16:35. Заголовок: kkg Попробуйте вари..


kkg
Попробуйте вариант, вроде работаеат, не обвисает у меня Скрытый текст


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



Пост N: 10
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 17:48. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат


я уже два дня на юзерах проверяю, вот такой вариант
Скрытый текст



но чтоб избежать лишнего Refresh пришлось поправить, h_tbrowse.prg

METHOD GoRight( lRefresh ) CLASS TSBrowse

Local nTxtWid, nWidth, nCell, nSkip //,
default lRefresh := ( ::lCanAppend .or. ::lIsArr )
.
.
.
if !Empty(lRefresh)
// lRefresh := ( ::lCanAppend .or. ::lIsArr )

While ! ::IsColVisible( ::nCell ) .and. ::nColPos < ::nCell
::nColPos ++
lRefresh := .T.
EndDo
endif

пока полёт нормальный, не учёл только не отображаемые колонки, но я их не использую

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



Пост N: 11
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 18:02. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат



спасибо, у меня не подвисает

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



Пост N: 2991
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.12.19 18:20. Заголовок: kkg Используйте в р..


kkg
Используйте в редакторе для сохранения отступов моноширинный шрифт - левая, первая кнопка с 123. т.е.
[ more ][ pre2 ]
тут текст
[ /pre2 ][ /more ]
очень трудно смотреть выложенный текст без выравнивания

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



Пост N: 12
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 04.12.19 19:35. Заголовок: SergKis пишет: Испо..


SergKis пишет:

 цитата:
Используйте в редакторе для сохранения отступов моноширинный шрифт


ок

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




Пост N: 6547
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: Сегодня 12:07. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Попробуйте вариант, вроде работаеат, не обвисает у меня



Тоже столкнулся с таким же повисанием.
У меня таблица из 46 столбцов, вешает прогу наглухо.

Я так понял что достаточно добавить
oBrw:bEvents := {|ob,nm,np,nl| tsb_events(ob,nm,np,nl) } и саму функцию обработки ?
У меня нет клавиш :bUserKeys

PS Попробовал, не собирается, выдаёт ошибку:
Harbour 3.2.0dev (r1909261630)
Copyright (c) 1999-2019, https://harbour.github.io/
tsb_prnExp.prg(462) Warning W0003 Variable 'NLPARAM' declared but not used in function 'TSB_EVENTS(399)'
hbmk2[5Tbrw_table]: Error: Running Harbour compiler (built-in). 1


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

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