On-line: NickSam, гостей 1. Всего: 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: 2189
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.02.19 08:12. Заголовок: PPS ON DBLCLICK (Thi..


PPS
ON DBLCLICK (ThisWindow.Object):Post(12, This.Text_8.Index) ; //DublClick2Get() ;
Такая форма записи, а не This.Index, исп. по причине отсутствия инф. о контроле, т.к. блок кода выполняется в TGET.
Переданный индекс контрола, в событии создает среду This для указанного контрола.
Если не передавать индекс, то среда This будет только для окна

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



Пост N: 2190
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.02.19 15:35. Заголовок: gfilatov2002 можно ..


gfilatov2002
 
можно зарезервировать для исп. в событиях о Петра
MESSAGEONLY _App_Wnd_App_ EVENTS _App_Wnd_Events_ TO h
и
METHOD PostMsg( nKey, nPar ) INLINE PostMessage( ::hWnd, WM_APP_LAUNCH, nKey, hb_defaultValue( nPar, 0 ) )
METHOD SendMsg( nKey, nPar ) INLINE SendMessage( ::hWnd, WM_APP_LAUNCH, nKey, hb_defaultValue( nPar, 0 ) )

#define WM_WND_LAUNCH (WM_USER+1044)
#define WM_CTL_LAUNCH (WM_USER+1045)
#define WM_APP_LAUNCH (WM_USER+1046)



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



Пост N: 2191
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.02.19 17:43. Заголовок: gfilatov2002 Исправл..


gfilatov2002
Исправление, что бы в приоритете был индекс контрола, потом handle (было наоборот)
 
METHOD DoEvent ( Key, nHandle ) CLASS TWndData

LOCAL o := Self
LOCAL i := o:Index
LOCAL w := o:IsWindow
LOCAL p := o:oParam:Get(Key)

IF ! Empty( nHandle )
IF nHandle > 0 .and. nHandle <= Len( _HMG_aControlHandles ) // control index

IF hmg_IsWindowObject( _HMG_aControlHandles[ nHandle ] )
o := hmg_GetWindowObject( _HMG_aControlHandles[ nHandle ] )
i := o:Index
w := o:IsWindow
ELSE
i := nHandle
w := .F.
ENDIF
ELSEIF hmg_IsWindowObject( nHandle ) // control handle

o := hmg_GetWindowObject( nHandle )
i := o:Index
w := o:IsWindow
ENDIF
ENDIF

IF w
RETURN Do_WindowEventProcedure ( ::oEvent:Get( Key ), i, o, Key, p )
ENDIF

RETURN Do_ControlEventProcedure( ::oEvent:Get( Key ), i, o, Key, p )


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



Пост N: 2192
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.02.19 20:02. Заголовок: gfilatov2002 Еще, из..


gfilatov2002
Еще, измените код, а то мелькает в левом верхнем углу
 
FUNCTION HMG_Alert( cMsg, aOptions, cTitle, nType, cIcoFile, nIcoSize )
...
DEFINE WINDOW oDlg WIDTH 0 HEIGHT 0 ;
TITLE cTitle ;
MODAL NOSIZE

// ON INIT FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize )

END WINDOW

FillDlg( cMsg, aOptions, nLineas, cIcoFile, nIcoSize )

ACTIVATE WINDOW oDlg
...


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




Пост N: 1424
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.02.19 20:39. Заголовок: SergKis пишет: можн..


SergKis пишет:

 цитата:
можно зарезервировать


Cделал

SergKis пишет:

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


Принято

SergKis пишет:

 цитата:
мелькает в левом верхнем углу


Благодарю за помощь!

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



Пост N: 2193
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 03.02.19 22:23. Заголовок: gfilatov2002 пишет С..


gfilatov2002 пишет
 цитата:
Сделал


Спасибо.
Вот что получилось с примером (h_objects.prg свежий) https://my-files.ru/v1kc9m

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



Пост N: 2194
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.02.19 09:59. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение.
Вынести за скобки #ifdef _OBJECT_ процедуры
1.
FUNCTION Do_WindowEventProcedure( bBlock, i, p1, p2, p3, p4 )
FUNCTION Do_ControlEventProcedure( bBlock, i, p1, p2, p3, p4 )
 
2.
#command ACTIVATE WINDOW <name, ...> [ <nowait: NOWAIT> ] ;
[ INIT <bInit> ] ;
=> ;
_ActivateWindow ( \{<(name)>\}, <.nowait.>, , <{bInit}> )

#command ACTIVATE WINDOW ALL [ INIT <bInit> ] ;
=> ;
_ActivateAllWindows ( <{bInit}> )
3.
*-----------------------------------------------------------------------------*
FUNCTION _ActivateWindow ( aForm, lNoWait, lDebugger, bInit )
*-----------------------------------------------------------------------------*
...
* Look For Main Window
FOR EACH FormName IN aForm

i := GetFormIndex ( FormName )

IF HB_ISBLOCK( bInit )
Do_WindowEventProcedure( bInit, i, 'WINDOW_ACTIVATE' )
ENDIF

IF _HMG_aFormType [ i ] == 'A'
MainFound := .T.
EXIT
ENDIF

NEXT
...
*-----------------------------------------------------------------------------*
FUNCTION _ActivateAllWindows ( bInit )
*-----------------------------------------------------------------------------*
...
AAdd ( aForm, MainName )

_ActivateWindow ( aForm, , , bInit )

RETURN NIL
...
Использовать после END WINDOW среду This.
Form_1.Center // Form_1.Activate

ACTIVATE WINDOW Form_1 INIT _logfile(.T., This.Name, _HMG_Value())
...


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



Пост N: 2195
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.02.19 11:05. Заголовок: gfilatov2002 Правка..


gfilatov2002
Правка.
 
CLASS TDlu2Pix
...
ASSIGN Handle( hWnd ) INLINE ( ::hWnd := hWnd, ::lError := Empty( hWnd ), ;
iif( ::lError, MsgMiniGuiError("Application events are not created !"), ) )

ACCESS IsError INLINE ::lError
ACCESS Wm_nApp INLINE WM_APP_LAUNCH
ACCESS IsMsg INLINE ( ::lAction .and. ! ::lError )

...
METHOD Post ( nKey, nPar, xPar ) INLINE ::PostMsg( nKey, nPar, xPar )
METHOD PostMsg( nKey, nPar, xPar ) INLINE ( nPar := hb_defaultValue(nPar, 0), ;
iif( ::IsMsg, ( ::oParam:Set( nKey, xPar ), ;
PostMessage( ::hWnd, ::Wm_nApp, nKey, nPar ) ), Nil ) )
METHOD Send ( nKey, nPar, xPar ) INLINE ::SendMsg( nKey, nPar, xPar )
METHOD SendMsg( nKey, nPar, xPar ) INLINE ( nPar := hb_defaultValue(nPar, 0), ;
iif( ::IsMsg, ( ::oParam:Set( nKey, xPar ), ;
SendMessage( ::hWnd, ::Wm_nApp, nKey, nPar ) ), Nil ) )
...


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




Пост N: 1425
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.02.19 11:27. Заголовок: SergKis пишет: Пред..


SergKis пишет:

 цитата:
Предложение.


Сделал, конечно.
Только изменил кодовое слово INIT на ON INIT

SergKis пишет:

 цитата:
Правка


Благодарю за помощь

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



Пост N: 2196
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.02.19 11:33. Заголовок: gfilatov2002 Еще, е..


gfilatov2002
Еще, если добавить
 
CLASS TWndData
...
ACCESS App INLINE ::oApp

ACCESS AO INLINE ::oApp:oCargo
ACCESS AP INLINE ::oApp:oProp

...
можно писать короче
WITH OBJECT This.Object
:O:BColorGet := :AO:BColorGet // (App.Object):O:BColorGet
:O:FColorGet := :AO:FColorGet // (App.Object):O:FColorGet
:O:FColor1 := :AO:FColor1 // (App.Object):O:FColor1
:O:FColor2 := :AO:FColor2 // (App.Object):O:FColor2


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




Пост N: 1426
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.02.19 11:39. Заголовок: SergKis пишет: ..


SergKis пишет:

 цитата:

ACCESS AO INLINE ::oApp:oCargo
ACCESS AP INLINE ::oApp:oProp


OK

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



Пост N: 2197
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.02.19 11:39. Заголовок: gfilatov2002 Пропус..


gfilatov2002
Пропустил строки
 
CLASS TDlu2Pix
...
ACCESS IsMsg INLINE ( ::lAction .and. ! ::lError )

ACCESS Action INLINE ::lAction
ASSIGN Action( lAction ) INLINE ::lAction := !( Empty( lAction ) )
...


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




Пост N: 1427
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 04.02.19 11:42. Заголовок: SergKis пишет: ..


SergKis пишет:

 цитата:
ACCESS Action INLINE ::lAction
ASSIGN Action( lAction ) INLINE ::lAction := !( Empty( lAction ) )


OK

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



Пост N: 2198
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.02.19 08:25. Заголовок: gfilatov2002 Неболь..


gfilatov2002
Небольшая правка
 
CLASS TDlu2Pix
...
METHOD Event( Key, Block, p2, p3 ) INLINE iif( HB_ISBLOCK( Block ), ;
::oEvent:Set( Key, Block ), ;
( Block := hb_defaultValue(Block, ::oParam:Get( Key)), ;
::oEvent:Do ( Key, Block, p2, p3 ) ) )
...

и пример https://my-files.ru/em7ci6

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




Пост N: 1428
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.02.19 11:38. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшая правка


Добавил
Но модуль h_objects.prg в Вашем примере - без последних изменений

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



Пост N: 2199
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.02.19 11:52. Заголовок: gfilatov2002 Сори, ..


gfilatov2002
Сори, забыл заменить. Тут https://my-files.ru/42c6pn

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



Пост N: 2204
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.19 10:21. Заголовок: gfilatov2002 Можно ..


gfilatov2002
Можно добавить Скрытый текст

Пример https://my-files.ru/nljgq8

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




Пост N: 1429
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 08.02.19 11:06. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно добавить


OK

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



Пост N: 2205
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.19 22:14. Заголовок: gfilatov2002 Мысли ..


gfilatov2002
Мысли вслух. Если вынести oDlu2Pixel(...) и класс TDlu2Pix за скобки #ifdef _OBJECT_, то можно Скрытый текст


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



Пост N: 2206
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.02.19 22:23. Заголовок: PS Оборвалась переда..


PS
Оборвалась передача, пропала ссылка на пример с указанными изменениями
Пример тут https://my-files.ru/2iogvt

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