On-line: Andrey, PSP, гостей 2. Всего: 4 [подробнее..]
АвторСообщение
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 [только новые]


gfilatov2002
moderator




Пост N: 1131
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.07.17 22:46. Заголовок: И еще файл h_objmisc..


И еще файл h_objmisc.prg
Скрытый текст

Возможно, Вы захотите указать также свой копирайт в этих файлах

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




Пост N: 1570
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.07.17 22:02. Заголовок: gfilatov2002 неболь..


gfilatov2002
небольшие изменения Скрытый текст

Пока остановлюсь с изменениями, надо посмотреть что получилось в реальности.

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




Пост N: 1132
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.07.17 22:22. Заголовок: SergKis пишет: Конт..


SergKis пишет:

 цитата:
Контрол это Cnl был, а Ctl вроде как каталог ?


Нет, это было сделано намеренно.
Сокращение Ctl используется для обозначения контрола (см. название системной библиотеки comctl32.dll)

SergKis пишет:

 цитата:
VAR oOnEventBlock AS OBJECT


Благодарю!
Уже сделал эти правки - посмотрел в Вашем описании работы с классами

SergKis пишет:

 цитата:
METHOD Destroy() INLINE ( ::Del(),


Этот метод также уже поправил ...

SergKis пишет:

 цитата:
Copyright 2017 Aleksandr Belov, Sergej Kiselev <bilance@bilance.lv>




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




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


gfilatov2002
Можно ли добавить в TsBrowse переменную для запрета работы метода KeyChar(...) ?
 
VAR lNoKeyChar INIT .F.
и
METHOD KeyChar( nKey, nFlags ) CLASS TSBrowse
...
Default ::nUserKey := nKey

If ::nUserKey == 255 .or. :lNoKeyChar // from KeyDown() method
Return 0
EndIf

If ::lAppendMode
...

мучить все время :nUserKey := 255 неудобно.

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




Пост N: 1133
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.07.17 13:52. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно ли добавить в TsBrowse переменную для запрета работы метода KeyChar


Благодарю за предложение!
Если надо, то, конечно, добавлю

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




Пост N: 1572
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.07.17 18:07. Заголовок: gfilatov2002 пишет Е..


gfilatov2002 пишет
 цитата:
Если надо, то, конечно, добавлю


Это надо при работе с ячейками и lEdit := .T., но не надо вкл. Edit от нажатий цифр\букв.

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




Пост N: 1134
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 07.07.17 22:05. Заголовок: SergKis пишет: Это ..


SergKis пишет:

 цитата:
Это надо при работе с ячейками и lEdit := .T.


Понятно, я уже добавил этот переключатель

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




Пост N: 1576
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.07.17 17:39. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение Скрытый текст

Если это интересно, можно еще поискать места.

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




Пост N: 1135
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.07.17 12:06. Заголовок: SergKis пишет: Пред..


SergKis пишет:

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


Я понимаю Вашу логику, чтобы добавить дополнительный параметр Index, как это сделано в функциях _getvalue() и _setvalue()
Но без острой необходимости не хотелось бы усложнять существующую логику, которая опирается на использование только ControlName и ParentForm параметров в большинстве других внутренних функций.
Поэтому пока Ваше предложение не принято...

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




Пост N: 1577
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.07.17 12:19. Заголовок: gfilatov2002 пишет н..


gfilatov2002 пишет
 цитата:
не хотелось бы усложнять существующую логику, которая опирается на использование только ControlName и ParentForm параметров в большинстве других внутренних функций


Основной целью предложения - это исп. в классах, т.к. там индекс известен и сразу может указываться в вызовах.

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




Пост N: 1136
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.07.17 16:42. Заголовок: SergKis Возник вопр..


SergKis
Возник вопрос после небольшой проверки использоапния ООП в базовом примере MAIN_DEMO.
Добавил в главное меню такую строчку

 цитата:
ITEM 'ALL TYPE' ACTION MsgDebug( (ThisWindow.Object):GetListType(), 'ALL TYPE' )

После запуска примера эта команда показывает используемые типы элементов управления главного окна, как и ожидалось.
Но еслм, напрмер, открыть и затем закрыть дочернее окно из пункта меню 'More Tests', то все эти элементы управления, которые показывала добавленная в меню команда, стираются из переменной ::oName
В чем состоит моя ошибка и как это исправить

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




Пост N: 1580
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.07.17 20:30. Заголовок: gfilatov2002 пишет В..


gfilatov2002 пишет
 цитата:
В чем состоит моя ошибка и как это исправить


тут моя ошибка, красным лишнее (убираться должно только в destroy() окна)
 
CLASS TCnlData INHERIT TWndData
...
// Destructor
METHOD Destroy() INLINE ( ::Del(), ;
::oCargo := iif( HB_ISOBJECT(::oCargo ) , ::oCargo:Destroy() , Nil ), ;
::oEvent := iif( HB_ISOBJECT(::oEvent ) , ::oEvent:Destroy() , Nil ), ;
::oOnEventBlock := iif( HB_ISOBJECT(::oOnEventBlock ), ::oOnEventBlock:Destroy(), Nil ), ;
::oName := iif( HB_ISOBJECT(::oName ) , ::oName:Destroy() , Nil ), ;
::oHand := iif( HB_ISOBJECT(::oHand ) , ::oHand:Destroy() , Nil ), ;

::oUserKeys := iif( HB_ISOBJECT(::oUserKeys) , ::oUserKeys:Destroy() , Nil ), ;
::nParent := ::nIndex := ::cName := ::cType := ::cVar := ::cChr := Nil, ;
hmg_DelWindowObject( ::nHandle ), ::nHandle := Nil )



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




Пост N: 1581
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.07.17 20:35. Заголовок: PS Я сейчас в Питере..


PS
Я сейчас в Питере и что бы что то смотреть, нужна Ваша сборка hmg, с собой у меня мало что есть.

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




Пост N: 1137
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.07.17 21:10. Заголовок: SergKis пишет: убир..


SergKis пишет:

 цитата:
убираться должно только в destroy() окна


Благодарю за исправление!
Сейчас после закрытия дочерних окон все в порядке

Но если вызвать окно предварительного просмотра печати из главного окна, то после закрытия этого окна просмотра снова будет стерто содержимое переменной ::oName

SergKis пишет:

 цитата:
нужна Ваша сборка hmg


Завтра отправлю ссылку на Ваш почтовый адрес <bilance[at]bilance.lv>


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




Пост N: 1582
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.07.17 21:34. Заголовок: gfilatov2002 пишет З..


gfilatov2002 пишет
 цитата:
Завтра отправлю ссылку на Ваш почтовый адрес <bilance[at]bilance.lv>


Лучше в личку, почты с собой нет, с работой общаюсь, через ftp

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




Пост N: 1138
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.07.17 10:36. Заголовок: SergKis пишет: Лучш..


SergKis пишет:

 цитата:
Лучше в личку


Отправил ссылку ы Л.С.

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




Пост N: 1583
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.07.17 11:33. Заголовок: gfilatov2002 пишет О..


gfilatov2002 пишет
 цитата:
Отправил ссылку ы Л.С.


Спасибо, забрал и по ситуации с FUNCTION PRINTPIE, где печать Preview, можно глубже лезть, но, возможно есть еще окна такого типа, предложение для них делать, как я сделал в примере:
 
*------------------------------------------------------------------------------*
FUNCTION PRINTPIE
*------------------------------------------------------------------------------*
...
LOCAL lOOP := _HMG_lOOPEnabled

If lOOP
SET OOP OFF
EndIf

SET FONT TO _GetSysFont() , 8
...
SET FONT TO _GetSysFont() , GetDefaultFontSize()

If lOOP
SET OOP ON
EndIf

RETURN NIL
и в таком случае, немного подправить команду SET OOP <еще от переменной, кроме ON\OFF>

еще предложение добавить функцию
*------------------------------------------------------------------------------*
FUNC Do_Obj( nHandle, bBlock, p1, p2, p3 )
*------------------------------------------------------------------------------*
LOCAL o

If hmg_IsWindowObject(nHandle)
o := hmg_GetWindowObject(nHandle)
If HB_ISBLOCK(bBlock)
RETURN Eval( bBlock, o, p1, p2, p3 )
EndIf
Endif

RETURN o
т.е. объект независимо от ф-ий _ControlObj(...), _WindowObj(...), определяем в блоке кода принадлежность IsWindow\IsControl



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




Пост N: 1584
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.07.17 11:50. Заголовок: PS Добавил в пример ..


PS
Добавил в пример
 
@ 140,10 BUTTONEX Button_00 ;
CAPTION 'Capture Form' ;
ON CLICK SaveWindow ( 'Form_1' ) ;
TOOLTIP 'Save Form to BMP file'

@ 140,10+This.Button_00.Width+2 BUTTONEX Button_000 ;
CAPTION 'All Type' ;
ON CLICK MsgDebug( (This.Object):GetListType(), 'ALL TYPE' ) ;
WIDTH 80 ;
TOOLTIP 'All type for window'

@ 170,10 BUTTONEX Button_0 ;

Для демонстрации наследования. Т.е. в контроле применяем метод прописанный в окне.
Списки (:GetListType(), :GetObj4Type( cType, lEque ), :GetObj4Name( cName )) можно получать и на контролах


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




Пост N: 1139
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.07.17 12:51. Заголовок: SergKis пишет: немн..


SergKis пишет:

 цитата:
немного подправить команду SET OOP <еще от переменной


Добавил новую команду SET OOP TO <lOOP>

SergKis пишет:

 цитата:
еще предложение добавить функцию


Добавил, конечно.
Благодарю за помощь

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




Пост N: 1586
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.07.17 18:01. Заголовок: gfilatov2002 Думаю,..


gfilatov2002
Думаю, я был не прав с
 
FUNCTION _ReleaseWindow ( FormName )
...
FormHandle := _HMG_aFormHandles [ i ]

* Release Window // с этой вставкой

IF _HMG_lOOPEnabled
Eval ( _HMG_bOnFormDestroy, i )
ENDIF

IF _HMG_aFormType [ i ] == 'M' .AND. _HMG_ActiveModalHandle <> FormHandle
...
т.к. далее идет
PostMessage ( FormHandle, WM_CLOSE, 0, 1 )
а в Events(...)
CASE WM_CLOSE
...
есть обработка
SWITCH _HMG_InteractiveClose
т.е. может быть отказ от закрытия окна.
поэтому, выделенный код, надо, перенести в Events() line 3378
ELSE

IF ISBLOCK( _HMG_aFormReleaseProcedure [ i ] )

_HMG_InteractiveCloseStarted := .T.
_DoWindowEventProcedure ( _HMG_aFormReleaseProcedure [ i ] , i , 'WINDOW_RELEASE' )

ENDIF

_hmg_OnHideFocusManagement ( i ) // эта строка сначала или выделенный код ниже ? т.е поменять местами ?


IF _HMG_lOOPEnabled
Eval ( _HMG_bOnFormDestroy, i )
ENDIF


ENDIF
...
тогда в
FUNC Do_OnCtlRelease( i, p )
можно убрать
IF hmg_IsWindowObject( hWnd ) // .AND. _HMG_aFormType[ p ] != 'M'



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