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


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




Пост N: 4810
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.25 18:10. Заголовок: gfilatov2002 Если н..


gfilatov2002
Если нет AltD(1), то нет и проверки, я так понял, но у меня НИКОГДА нет режима AltD, команды такой в коде. И на своем PC при разработке VerifyControl удобна в отладке (есть вызов, нет его - не важно), а на PC клиента уже она лишняя.
Т.е. надо вставлять в INIT PROCEDURE ... AltD( App.Cargo:oIni:nVerifyControl ) ?
Где nVerifyControl = 0\1

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




Пост N: 2495
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.09.25 18:15. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо вставлять в INIT PROCEDURE ... AltD( App.Cargo:oIni:nVerifyControl ) Где nVerifyControl = 0\1


Да, верно.

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




Пост N: 4812
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.25 18:23. Заголовок: gfilatov2002 А прим..


gfilatov2002
А применение AltD(0\1) разве не тащит лишние объектники в модуль, для реализации своих решений ?
А при таком решении будет тащить всегда, раньше были рекомендации, не включать в конечную программу эти модули.
Были какие то решения о динамическом переводе режима 0 в режим 1 и получении всей информации о программе у клиента.

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




Пост N: 2496
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.09.25 18:36. Заголовок: SergKis пишет: разв..


SergKis пишет:

 цитата:
разве не тащит лишние объектники в модуль


Нет, конечно.
Вот эта функция из исходников Харбора:

 цитата:
 
#define ALTD_DISABLE 0
#define ALTD_ENABLE 1

PROCEDURE AltD( nAction )

IF PCount() == 0

ELSEIF HB_ISNUMERIC( nAction )

SWITCH nAction
CASE ALTD_DISABLE
Set( _SET_DEBUG, .F. )
EXIT
CASE ALTD_ENABLE
Set( _SET_DEBUG, .T. )
EXIT
ENDSWITCH

ENDIF

RETURN



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




Пост N: 4813
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.25 18:55. Заголовок: gfilatov2002 :sm36..


gfilatov2002
AltD(0)

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




Пост N: 4814
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.09.25 23:50. Заголовок: gfilatov2002 Положи..


gfilatov2002
Положил вариант примера basic\mdi_2 на ftp

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




Пост N: 2499
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 23.09.25 15:34. Заголовок: Благодарю за поправк..


Благодарю за поправки в функции _TBrowse()

P.S. Добавил пропущенный второй параметр при определении кодового блока

 цитата:
 
{|ob,op| _TBrowse_bAdjColumns(ob,op) }



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




Пост N: 4815
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.09.25 16:53. Заголовок: gfilatov2002 пишет Д..


gfilatov2002 пишет
 цитата:
Добавил пропущенный второй параметр



Нашел неточность в _TBrowse
 
...
IF HB_ISARRAY( oParam:aFont )
IF Len( oParam:aFont ) < 5
ASize( oParam:aFont, 5 )
ENDIF
FOR i := 1 TO Len( oParam:aFont )
IF Empty( oParam:aFont[ i ] ) ; oParam:aFont[ i ] := oParam:aFont[ 1 ]
ENDIF
NEXT
ELSE
...


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




Пост N: 4816
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.09.25 13:51. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение (множественное выполнение блоков кода в ::bOnDrawLine)
 
METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::bOnDrawLine != NIL
IF IsArray( ::bOnDrawLine )
FOR nI := 1 TO Len( ::bOnDrawLine )
IF IsBlock( ::bOnDrawLine[ nI ] )
IF ! Empty( Eval( ::bOnDrawLine[ nI ], Self, xRow ) )
RETURN Self
ENDIF
ENDIF
NEXT
ELSEIF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF

ENDIF
/*
IF ::bOnDrawLine != NIL
IF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF
ENDIF
*/
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::bOnDrawLine != NIL
IF IsArray( ::bOnDrawLine )
FOR nI := 1 TO Len( ::bOnDrawLine )
IF IsBlock( ::bOnDrawLine[ nI ] )
IF ! Empty( Eval( ::bOnDrawLine[ nI ], Self, xRow ) )
RETURN Self
ENDIF
ENDIF
NEXT
ELSEIF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF

ENDIF
/*
IF ::bOnDrawLine != NIL
IF ! Empty( Eval( ::bOnDrawLine, Self, xRow ) )
RETURN Self
ENDIF
ENDIF
*/
...

Другие предложения и примеры положил на ftp

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




Пост N: 2500
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 26.09.25 14:15. Заголовок: SergKis пишет: Пред..


SergKis пишет:

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


Большое спасибо за эти дополнения.
Обязательно посмотрю новые примеры с подключением третьей базы.

P.S. Все изменения приняты, примеры 8 и 9 стали компактными.

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




Пост N: 4817
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.09.25 23:05. Заголовок: gfilatov2002 Добави..


gfilatov2002
Добавил назначение событий нажатий кнопок мышки, положил на ftp

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




Пост N: 4818
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.09.25 11:31. Заголовок: gfilatov2002 Неболь..


gfilatov2002
Небольшая правка
 
METHOD CellMarginLeftRight( nJ, cData, oColumn, nAlign, lMultiLine, nOut ) CLASS TSBrowse
...
IF HB_ISCHAR( cBuf ) .AND. Len( cBuf ) > 0
DEFAULT cData := ""
DEFAULT lMultiLine := CRLF $ cData

IF lMultiLine
...


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




Пост N: 2501
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 27.09.25 15:56. Заголовок: SergKis пишет: прав..


SergKis пишет:

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


OK
Благодарю за дополнения

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




Пост N: 4819
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 27.09.25 22:48. Заголовок: gfilatov2002 Еще не..


gfilatov2002
Еще небольшая правка h_controlmisc2.prg
 
STATIC FUNCTION _TBrowse_bBody( ob, op )
...
IF IsArray( aCol ) .and. Len( aCol ) > 0
a := {}
FOR EACH cCol IN aCol
nCol := iif( IsChar(cCol), ob:nColumn( cCol, .T. ), cCol )
IF nCol > 0 ; AAdd(a, nCol)
ENDIF

NEXT
IF Len( a ) > 0 ; ob:HideColumns( a, .T. ) ; DO EVENTS
ENDIF
ENDIF


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




Пост N: 4820
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.09.25 10:00. Заголовок: gfilatov2002 На ftp..


gfilatov2002
На ftp положил пример, по использованию, на основе примера от Андрея

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




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


SergKis пишет:

 цитата:
положил пример, по использованию


Большое спасибо

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




Пост N: 4821
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 28.09.25 12:40. Заголовок: gfilatov2002 Еще пр..


gfilatov2002
Еще правка и пример с ее использованием положил
 
STATIC FUNCTION _TBrowse_Create( oParam, uAlias, cBrw, nY, nX, nW, nH )
...
IF IsArray( oParam:aSizeLen ) .and. Len( oParam:aSizeLen ) > 0
j := Len( oParam:aSizeLen )

oParam:aSize := array( j ) ; AFill( oParam:aSize, 10 )
...


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




Пост N: 2503
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.09.25 14:05. Заголовок: SergKis пишет: Еще ..


SergKis пишет:

 цитата:
Еще правка


OK

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




Пост N: 4823
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.10.25 10:40. Заголовок: gfilatov2002 Предло..


gfilatov2002
Предложение добавить параметры (для вариантов работы без препроцессора в блоках кода)
 
FUNCTION _DoControlEventProcedure ( bBlock, i, cEventType, nParam, nParam2 )
...
IF _HMG_BeginWindowActive == .F. .OR. !( hb_defaultValue( cEventType, '' ) == 'CONTROL_ONCHANGE' ) .OR. _HMG_MainClientMDIHandle != 0

#ifdef _OBJECT_
i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] )
#endif

lRetVal := Eval ( bBlock, hb_defaultValue( nParam, 0 ), nParam2, _HMG_ThisControlName, i )
ENDIF
...
FUNCTION _DoWindowEventProcedure ( bBlock, i, cEventType )
...
#ifdef _OBJECT_
i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] )
#endif

lRetVal := Eval ( bBlock, _HMG_ThisFormName, i )
...

PS. Положил на ftp примеры с _TBrowse(...), возможно, будут интересны, использованы расчеты размеров от фонта, т.е. App.Object, можно менять размер фонта, переменные cFont := "Arial", nSize := 12

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




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


SergKis пишет:

 цитата:
Предложение добавить параметры


Это, конечно, возможно.
Но я не понял, почему в функции _DoControlEventProcedure() использовано

 цитата:

i := _WindowObj( _HMG_aFormHandles[ _HMG_ThisFormIndex ] )


а не

 цитата:

i := _ControlObj( _HMG_ThisControlName, _HMG_ThisFormName )




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

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