On-line: гостей 3. Всего: 3 [подробнее..]
АвторСообщение
gfilatov
модератор




Пост N: 699
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 29.01.08 13:59. Заголовок: Новая версия Расширенного релиза библиотеки MiniGUI (часть VI ) (продолжение)


Начало темы находится здесь, а теперь

АНОНС * АНОНС * АНОНС * АНОНС * АНОНС

Готовится к опубликованию новая сборка №48, которая выйдет в конце недели.
Если у Вас есть интересные наработки для включения в новый релиз, то сейчас самое удобное время для их отправки мне

Кратко, что нового:

- исправление обнаруженных ошибок и неточностей кода;
- новый класс HEADERIMAGE для Grid и Browse;
- свойство Address в Hyperlink может теперь открывать папку или файл на диске;
- добавлен NOTABSTOP класс для Browse;
- поддержка пользовательских компонентов (заимствована из оффициального релиза);
- расширения и исправления в библиотеках TsBrowse и PropGrid;
- обновлены сборки Харбор и HMGS-IDE;
- новые и обновленные старые примеры (как обычно ).




Спасибо: 5 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


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




Пост N: 2548
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.19 13:14. Заголовок: Andrey пишет Попроб..


Andrey пишет [quote]`
Попробуй убрать
 
FUNCTION GetProperty ( Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 )
... line 8584
/* IF .NOT. _IsControlDefined ( Arg2 , Arg1 )
MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined." )
ENDIF */

и пересобери MiniGui.lib

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




Пост N: 6283
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.19 14:03. Заголовок: SergKis пишет: FUNC..


SergKis пишет:

 цитата:
FUNCTION GetProperty ( Arg1 , Arg2 , Arg3 , Arg4 , Arg5 , Arg6 , Arg7 )
... line 8584
/* IF .NOT. _IsControlDefined ( Arg2 , Arg1 )
MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined." )
ENDIF */


В исходнике C:\MiniGUI\SOURCE\h_controlmisc.prg строк всего 7183 ...
Где искать ?
Нашёл в строке 3814 - то ?

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




Пост N: 6284
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.19 14:33. Заголовок: Нашел в коде h_contr..


Нашел в коде h_controlmisc.prg, где у меня ошибка возникает:
#endif 
IF ( Upper( Arg2 ) == "VSCROLLBAR" .OR. Upper( Arg2 ) == "HSCROLLBAR" )
IF .NOT. _IsWindowDefined ( Arg1 )
MsgMiniGuiError ( "Window: " + Arg1 + " is not defined." )
ENDIF
ELSE
IF .NOT. _IsControlDefined ( Arg2 , Arg1 )
MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined. 4585 !!!" )
ENDIF
ENDIF

За комментировал этот блок:
/* IF .NOT. _IsControlDefined ( Arg2 , Arg1 ) 
MsgMiniGuiError ( "Control: " + Arg2 + " Of " + Arg1 + " Not defined. 4585 !!!" )
ENDIF */

Теперь другая ошибка лезет:
Error MGERROR/0 Control Of Form_Table_Dog Not defined. Program terminated.
Called from MSGMINIGUIERROR(99) in module: h_error.prg
Called from GETPROPERTY(4410) in module: h_controlmisc.prg
Called from (b)BUTTON_UPMENUTABLE(2273) in module: Tbrw_table.prg
Called from (b)METRO3BUTTON(51) in module: Metro3button.prg
Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg
Called from EVENTS(1828) in module: h_events.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg
Called from DOMETHOD(5156) in module: h_controlmisc.prg
Called from FORM_MYTABLE(246) in module: Tbrw_table.prg
Called from TBRWDOGOVOR(15) in module: Tbrw_1Run.prg
Called from (b)MAIN(643) in module: 10main.prg
Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg
Called from EVENTS(1828) in module: h_events.prg
Called from DOMESSAGELOOP(0)
Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg
Called from MAIN(688) in module: 10main.prg

Т.е. теперь потерялась форма Form_Table_Dog ?
Но она же есть на экране !

Вот функция (b)BUTTON_UPMENUTABLE():
      aObj2But[12,12] := { || SetProperty(cForm, This.Name, "Enabled", .F.) ,; 
DogListAbon(cForm, "nTable","","","") ,;
MsgDebug( "Проверка выхода", cForm ) ,;
MsgDebug( ThisWindow.Name, This.Name ) ,;
SetProperty(cForm, This.Name, "Enabled", .T.) ,;
Brw4Focus(nTable) } // строка 2273

Т.е. это вызов на кнопке - ACTION aObj2But[12,12]
Другие формы печати работают без ошибок, а где есть с GETBOX - то вылетает.
Такое впечатление, что после GETBOX портится - MsgDebug( ThisWindow.Name, This.Name ) ?

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




Пост N: 2549
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.19 16:22. Заголовок: Andrey Попробуй в O..


Andrey
Попробуй в ON RELEASE формы с GetBox поставить самым последним вызов _PopEventInfo()
для восстановления среды This, т.к. по сообщению об ошибке видно, что нет имени контрола

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




Пост N: 2550
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.05.19 16:35. Заголовок: PS Дело в том, что п..


PS
Дело в том, что при создании новой формы\окна информация о предыдущей форме\окне среды This теряется, что и происходит, т.е. нет гарантии, что она будет соответствовать. При Release окна среда This, которая была не восстанавливается, т.к. окна могут закрываться не в том порядке, как открывались.
Выход
1. Сохранять\восстанавливать среду This самому
2. Работать без This с конкретным именем окна (основное правило hmg)
3. Раскладывать последовательность действий на события и выполнять события по сообщениям. Для каждого события будет создана среда This окна или контрола, в зависимости как укажешь в сообщении. Пример у тебя есть

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




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


SergKis пишет:

 цитата:
Попробуй в ON RELEASE формы с GetBox поставить самым последним вызов _PopEventInfo()
для восстановления среды This, т.к. по сообщению об ошибке видно, что нет имени контрола


Да, это помогло, только если работаешь только в программе !
Если окно Far или Мозилу переключаешь, то вылет с другой ошибкой:
Error BASE/1081 Неверный аргумент: +
Called from GETPROPERTY(4410) in module: h_controlmisc.prg
Called from (b)BUTTON_UPMENUTABLE(2273) in module: Tbrw_table.prg


Остановился на варианте 2 !
 
aObj2But[12,12] := { || SetProperty(cForm, This.Name, "Enabled", .F.) ,;
DogListAbon(cForm, "nTable","","","") ,;
SetProperty(cForm, "oBut_SpAbon", "Enabled", .T.) ,;
Brw4Focus(nTable) }

Вылет прекратился... Переделал везде где нашёл.
СПАСИБО ОГРОМНОЕ !
Не забыть бы это для других случаев...

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




Пост N: 2551
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.19 01:50. Заголовок: Andrey пишет Не забы..


Andrey пишет
 цитата:
Не забыть бы это для других случаев...


Первый вариант получше будет
 
aObj2But[12,12] := { |cw,cn| cw := ThisWindow.Name, cn := This.Name, ;
SetProperty(cw, cn, "Enabled", .F.) , ;
DogListAbon(cw, "nTable","","","") , ;
SetProperty(cw, cn, "Enabled", .T.) , ;
Brw4Focus(nTable) }


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




Пост N: 2552
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.19 10:11. Заголовок: Andrey пишет Останов..


Andrey пишет
 цитата:
Остановился на варианте 2 !


Если использовать функцию
 
*-----------------------------------------------------------------------------*
FUNCTION _ThisInfo( aThis )
*-----------------------------------------------------------------------------*

IF HB_ISARRAY( aThis )

_HMG_ThisFormIndex := aThis [1]
_HMG_ThisEventType := aThis [2]
_HMG_ThisType := aThis [3]
_HMG_ThisIndex := aThis [4]
_HMG_ThisFormName := aThis [5]
_HMG_ThisControlName := aThis [6]

RETURN NIL

ENDIF

RETURN { _HMG_ThisFormIndex, _HMG_ThisEventType, _HMG_ThisType, _HMG_ThisIndex, _HMG_ThisFormName, _HMG_ThisControlName }

то твой блок будет выглядеть так

aObj2But[12,12] := { |at| at := _ThisInfo(), ;
This.Name.Enabled := .F., ;
DogListAbon(cw, "nTable","","",""), ;
_ThisInfo(at), ;
This.Name.Enabled := .T., ;
Brw4Focus(nTable) }



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




Пост N: 2553
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.19 10:16. Заголовок: PS Упс. Магнитная бу..


PS
Упс. Магнитная буря.
 
aObj2But[12,12] := { |at| at := _ThisInfo(), ;
This.Enabled := .F., ;

DogListAbon(cw, "nTable","","",""), ;
_ThisInfo(at), ;
This.Enabled := .T., ;

Brw4Focus(nTable) }


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




Пост N: 6286
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.05.19 11:10. Заголовок: SergKis пишет: Перв..


SergKis пишет:

 цитата:
Первый вариант получше будет
aObj2But[12,12] := { |cw,cn| cw := ThisWindow.Name, cn := This.Name, ;
SetProperty(cw, cn, "Enabled", .F.) , ;
DogListAbon(cw, "nTable","","","") , ;
SetProperty(cw, cn, "Enabled", .T.) , ;
Brw4Focus(nTable) }


Да, это написание более понятней !
Все названия сохранены через переменные и при обнулении This уже путаницы не будет.
Спасибо !

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




Пост N: 2554
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.19 11:55. Заголовок: Andrey пишет Да, это..


Andrey пишет
 цитата:
Да, это написание более понятней !


Если исходить из правила hmg в блоке кода контрола ACTION, ON CHANGE и т.д., должна быть установлена и сохраняться среда переменных _THIS_..., то вариант с функцией более правильный, т.е.
 
aObj2But[12,12] := { |at| at := _ThisInfo(), This.Enabled := .F., ;
DogListAbon(ThisWindow.Name, "nTable","","",""), ;
_ThisInfo(at), This.Enabled := .T., ;
Brw4Focus(nTable) }


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




Пост N: 2555
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.05.19 12:10. Заголовок: PS И лучше использов..


PS
И лучше использовать ф-ю внутри своей DogListAbon(...)
LOCAL aThis := _ThisInfo()
...
ACTIVATE WINDOW ...

_ThisInfo(aThis)

RETURN

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1510
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.06.19 11:44. Заголовок: Всем кому это интересно


Подготовил 2-ю бетку для новой сборки 19.06 со следующим списком изменений:
Скрытый текст

Постараюсь не затягивать с выпуском финальной сборки

Также после нескольких попыток удалось собрать Харбор для свежей версии MinGW 9.1

 цитата:
Harbour 3.2.0dev (r1904111533)
Copyright (c) 1999-2019, https://harbour.github.io/

Harbour Build Info
---------------------------
Version: Harbour 3.2.0dev (r1904111533)
Compiler: MinGW GNU C 9.1.1 (32-bit)
Platform: Windows 10 10.0
PCode version: 0.3
ChangeLog last entry: 2019-04-11 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
ChangeLog ID: ba87964f6754d037f86be597c07a08e02f4cb9e0
Built on: Jun 3 2019 14:19:21
Extra Harbour compiler options: -gc0
Extra C compiler options: -DHB_GC_AUTO -DHB_GUI -DHB_NO_TRACE
Build options: (Clipper 5.3b) (Clipper 5.x undoc)
---------------------------

и успешно протестировать работу библиотеки с этой версией Си-компилятора

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1511
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.06.19 11:28. Заголовок: Завершена подготовка..


Завершена подготовка новой сборки 19.06, которая будет опубликована на следующей неделе.

Я отказался от поддержки бесплатного компилятора BCC 10.1 и старой сборки для xHarbour.com
вследствие нулевого интереса со стороны пользователей библиотеки.

Собрал новую сборку только для слкдующих компиляторов:
- BCC 5.5 (Базовый дистрибутив);
- MinGW 9.1 (32- и 64-бит).

Сборки для других Си-компиляторов будут выполняться только под заказ (на платной основе)

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1512
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 18.06.19 09:44. Заголовок: Всем кому это интересно


Опубликована новая сборка 19.06 для BCC 5.5.1 и компиляторов Harbour и xHarbour.

Базовый дистрибутив находится по адресу

http://hmgextended.com/files/CONTRIB/hmg-19.06-setup.exe

Также имеются дополнительные сборки для следующих Си-компиляторов:

- MinGW 9.1.1 32-bit для Harbour 3.2.0dev; (есть в наличии)

- MinGW 8.2.0 64-bit для Harbour 3.4.0dev; (есть в наличии)

- MS VisualC 2017 32-bit для Harbour 3.2.0dev; (под заказ)

- MS VisualC 2017 64-bit для Harbour 3.2.0dev; (под заказ)

- Pelles C 8.0 32-bit для xHarbour b10244; (под заказ)

- Pelles C 9.0 64-bit для xHarbour b10244; (под заказ)

- Borland/Embarcadero C++ 7.4 (32-bit) для Harbour 3.2.0dev; (под заказ)

- Open Watcom C/C++ 2.0 (32-bit) для Harbour 3.2.0dev. (под заказ)

Благодарю за Ваше внимание

Спасибо: 2 
Профиль
Andrey
постоянный участник




Пост N: 6304
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.06.19 18:57. Заголовок: Григорий, спасибо бо..


Григорий, спасибо большое за новую версию !

А что примеры - назначений событий на объекты формы не добавил ?
Это же самые понятные примеры для новичков.
Мне Сергей давно советовал делать так - через события, а я всё не понимал как это работает.
В Виндах всё же через события происходят, а большинство делает по старинке, через функции.
А в этих примерах всё просто демонстрируется...


Да и ещё один классный пример я высылал - универсальное затенение формы со всеми объектами, включая картинки.
FormDarken(1.2).7z
Код маленький и короткий, удобно очень встраивать к себе в программу другим программистам.

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1513
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.06.19 09:51. Заголовок: Обновил сборку 19.06..


Обновил сборку 19.06 (Update 1) с учетом последних наработок

Базовый дистрибутив находится по адресу

http://hmgextended.com/files/CONTRIB/hmg-19.06-setup.exe

Что нового:

 цитата:
* Modified: Stability fix in the internal function _SetTextEditReadOnly().
You can modify a ReadOnly mode at runtime for the enabled controls
only. Problem was reported by Rafael Moran <webrmoran/at/yahoo.com>.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* Enhanced: Added 'ON DBLCLICK' clause (optional) to LABEL and IMAGE controls.
NOTE: Don't register click and dblclick events on the same element:
it's impossible to distinguish single-click events from click
events that lead to a dblclick event.
Contributed by Grigory Filatov <gfilatov@inbox.ru>
* New: Added the useful function HMG_IsEqualArr ( aData1, aData2 ) for
comparing of the two arrays.
Sample code:
aValue1 := Form.Grid1.Value
aValue2 := Form.Grid2.Value
lResult := HMG_IsEqualArr ( aValue1, aValue2 )
Requested by Paola Bruccoleri <pbruccoleri/at/adinet.com.uy>.
Based upon a contribution of Roberto Lopez <mail.box.hmg@gmail.com>
* New: Added the Harbour contrib library for 7zip compression.
This is a wrapper of 7-zip32.dll, another variant of the Open-Source
7Zip compression library. All calls are pointing to 7-zip32.dll,
thus the such dll must exist in a search path.
Based on an original work of Andi Jahja <andi.jahja/at/yahoo.co.id>.
(see source in folder \Source\SevenZip)
Contributed by Grigory Filatov <gfilatov@inbox.ru>
(see demos in folder \samples\Advanced\sevenzip)
* New: 'Button Gradient Test' sample.
Based upon a contribution of MiniGUI user.
Revised by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Basic\Button_Gradient)
* New: 'Weather-forecast' sample is based on the service site http://wttr.in.
Based upon a contribution of Vagelis Prodromidis.
Revised by Grigory Filatov <gfilatov@inbox.ru>
(see in folder \samples\Advanced\Weather-forecast)



Спасибо: 0 
Профиль
Alex_Cher





Пост N: 70
Зарегистрирован: 18.06.15
ссылка на сообщение  Отправлено: 27.06.19 07:58. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Обновил сборку 19.06 (Update 1) с учетом последних наработок



Уважаемый Григорий (повторная просьба) можно обновить хотя бы один из примеров
(типа \MiniGUI\SAMPLES\Applications\MultipleMail) чтобы была возможность отправлять
e-mail на mail.ru, yandex.ru и т.п. с учетом SSL. Сейчас ни один из примеров не работают ...

Заранее благодарен ...

Спасибо: 0 
Профиль
gfilatov2002
moderator




Пост N: 1514
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.06.19 14:35. Заголовок: Alex_Cher пишет: о..


Alex_Cher пишет:

 цитата:
отправлять e-mail на mail.ru, yandex.ru и т.п. с учетом SSL


Эта тема уже обсуждалась на форуме здесь и здесь
Могу только добавить, что все требуемые библиотеки для поддержки SSL есть в поставке МиниГУИ: hbtip hbssl libeay32 ssleay32.

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




Пост N: 2612
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 01.07.19 13:13. Заголовок: gfilatov2002 Может ..


gfilatov2002
Может добавить функцию (по аналогии с HMG_GetFormControls()) ?
K примеру
 
FUNCTION HMG_GetForms( cTyp, lObj )
LOCAL i, o, lTyp, lHand, aNames:={}

cTyp := iif( HB_ISCHAR( cTyp ), Upper(cTyp), '' )
lHand := iif( HB_ISLOGICAL( lObj ), ! lObj, .F. )
lObj := _HMG_lOOPEnabled .and. ! empty(lObj)

FOR i := 1 TO Len( _HMG_aFormNames )

IF _HMG_aFormDeleted [ i ]; LOOP
ENDIF

IF ( lTyp := iif( Empty(cTyp), .T., _HMG_aFormType [ i ] $ cTyp ) )

If lHand
AAdd(aNames, _HMG_aFormHandles [ i ] )
#ifdef _OBJECT_
ElseIf lObj
o := do_obj( _HMG_aFormHandles [ i ] )
If HB_ISOBJECT( o )
AAdd(aNames, o)
EndIf
#endif
Else
AAdd(aNames, _HMG_aFormNames [ i ] )
EndIf

ENDIF

NEXT

RETURN aNames


Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 672
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет