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




Пост 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 
ПрофильЦитата Ответить
Ответов - 191 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]





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




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




Пост 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 
ПрофильЦитата Ответить



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


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

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



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


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

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




Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



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




Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



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


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

_ThisInfo(aThis)

RETURN

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




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


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

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


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

Спасибо: 0 
ПрофильЦитата Ответить
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 
ПрофильЦитата Ответить





Пост 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 
ПрофильЦитата Ответить
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 
ПрофильЦитата Ответить



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

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