On-line:гостей 2. Всего: 2 [подробнее..]
АвторСообщение
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 час. Хитов сегодня: 15
Права: смайлыда,картинкида,шрифтыда,голосованиянет
аватарыда,автозамена ссылоквкл,премодерацияоткл,правканет