On-line: PSP, Haz, гостей 1. Всего: 3 [подробнее..]
АвторСообщение
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: 2146
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.23 11:51. Заголовок: SergKis пишет: Небо..


SergKis пишет:

 цитата:
Небольшие добавки


Принято

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




Пост N: 4292
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.06.23 16:36. Заголовок: gfilatov2002 Предла..


gfilatov2002
Предлагаю добавить для dbf use shared и режима :lRowPosAtRec := .T. обновление первой записи на экране, т.к. при ее модификации (в потоке или др. пользователем) буфер RDD остается прежним, не соответствующим записи на диске, т.е.
 
CLASS TSBrowse FROM TControl
...
DATA lShared AS LOGICAL INIT .F. // dbf file opened shared at .T.

...
METHOD SetDbf( cAlias ) CLASS TSBrowse
...
IF "ADS" $ ::cDriver
...
ELSE
...
::lShared := ( cAlias )->( dbInfo( 36 ) ) // DBI_SHARED 36 /* the file opened shared ? */

ENDIF
...
METHOD Refresh( lPaint, lRecount, lClearHash ) CLASS TSBrowse
LOCAL nOldRec

...
::lNoPaint := .F.

IF ::lIsDbf .and. ::nLen > 0 .and. ::lShared .and. ::lRowPosAtRec .and. HB_ISARRAY( ::aRowPosAtRec )
IF Len( ::aRowPosAtRec ) > 0
nOldRec := ( ::cAlias )->( RecNo() )
( ::cAlias )->( dbGoto( ::aRowPosAtRec[ 1 ] ) )
IF nOldRec != ::aRowPosAtRec[ 1 ]
( ::cAlias )->( dbGoto( nOldRec ) )
ENDIF
ENDIF
ENDIF

RETURN ::Super:Refresh( lPaint )



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




Пост N: 2147
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.06.23 17:52. Заголовок: SergKis пишет: доба..


SergKis пишет:

 цитата:
добавить для dbf use shared и режима :lRowPosAtRec := .T. обновление первой записи на экране


Принято с благодарностью
Сейчас готовлю 3-е обновление для сборки 23.04

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




Пост N: 4293
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.06.23 16:40. Заголовок: gfilatov2002 Немног..


gfilatov2002
Немного изменить код выше с :lRowPosAtRec (для удобного использования)
 
CLASS TSBrowse FROM TControl
...
ACCESS nAtPos INLINE iif( ::lIsDbf, ( ::cAlias )->( RecNo() ), ::nAt )
ACCESS IsRowPosAtRec INLINE ( ::lIsDbf .AND. ::nLen > 0 .AND. ::lRowPosAtRec .AND. HB_ISARRAY( ::aRowPosAtRec ) .AND. Len( ::aRowPosAtRec ) > 0 )

...
METHOD Refresh( lPaint, lRecount, lClearHash ) CLASS TSBrowse
...
IF ::IsRowPosAtRec .and. ::lShared

nOldRec := ( ::cAlias )->( RecNo() )
( ::cAlias )->( dbGoto( ::aRowPosAtRec[ 1 ] ) )
IF nOldRec != ::aRowPosAtRec[ 1 ]
( ::cAlias )->( dbGoto( nOldRec ) )
ENDIF
ENDIF
...


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




Пост N: 2148
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 10.06.23 17:15. Заголовок: SergKis пишет: Немн..


SergKis пишет:

 цитата:
Немного изменить код выше


Понял, добавил этот код

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




Пост N: 4295
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.06.23 08:50. Заголовок: gfilatov2002 Был не..


gfilatov2002
Был не прав с :IsRowPosAtRec , работает и с массивом ( ::aRowPosAtRec[ xRow ] := ( nAt := ::nAtPos ) ), надо поправить
 
ACCESS IsRowPosAtRec INLINE ( ::lIsDbf .AND. ::nLen > 0 .AND. ::lRowPosAtRec .AND. HB_ISARRAY( ::aRowPosAtRec ) .AND. Len( ::aRowPosAtRec ) > 0 )
и
IF ::lIsDbf .and. ::lShared .and. ::IsRowPosAtRec

nOldRec := ( ::cAlias )->( RecNo() )
...


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




Пост N: 2149
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.06.23 10:53. Заголовок: SergKis пишет: надо..


SergKis пишет:

 цитата:
надо поправить


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

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




Пост N: 2150
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 12.06.23 11:29. Заголовок: Выложил 3-е обновлен..


Выложил 3-е обновление сборки 23.04 с учетом последних исправлений и дополнений

Скачать

Обновил также Unicode архив этой сборки для Сергея...

Ну вот и все

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




Пост N: 4300
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.06.23 07:13. Заголовок: gfilatov2002 Возник..


gfilatov2002
Возникла путаница
Было
b := This.(cBtn).Action
...
This.(cBtn).Action := b

Теперь b := This.(cBtn).Action не работает, т.к. (i_this.ch) стало
#xtranslate This . <c> . <p:Refresh,SetFocus,DeleteAllItems,Release,Show,Save,Hide,Play,Stop,Close,Pause,Eject,OpenDialog,Resume,Action,OnClick,OnGotFocus,OnLostFocus,OnChange,OnDblClick,OnEnter,ColumnsAutoFit,ColumnsAutoFitH> [()] => DoMethod ( _HMG_THISFORMNAME, <(c)> , <"p"> )
...
#xtranslate This . <c> . <p:ReadOnly,DisableEdit,Options,Spacing,Speed,Volume,Zoom,Action,OnClick,OnGotFocus,OnLostFocus,OnChange,OnDblClick,OnEnter> := <n> => SetProperty ( _HMG_THISFORMNAME, <(c)> , <"p"> , <n> )
...
т.е.
This.(cBtn).Action := b
работает, как и
b := GetProperty(cWnd, cBtn, "Action")
...
SetProperty(cWnd, cBtn, "Action", b)

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




Пост N: 2151
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.06.23 11:12. Заголовок: SergKis пишет: Возн..


SergKis пишет:

 цитата:
Возникла путаница


Поправил, прошу проверить результат ниже:
Скрытый текст


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




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


gfilatov2002 пишет
 цитата:
прошу проверить


Проверил, с new i_this.ch ошибка компиляции на строке
This.(cBtn).Action := b

Пример тут https://TransFiles.ru/r516c
строки помечены (начало) //!!! new i_this.ch

PS. такое же как i_this.ch содержимое i_window.ch

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




Пост N: 2152
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.06.23 12:05. Заголовок: SergKis пишет: с ne..


SergKis пишет:

 цитата:
с new i_this.ch ошибка компиляции на строке


Да, у меня такая же ошибка в этой строке.
Поэтому вернул старый i_this.ch обратно.

SergKis пишет:

 цитата:
такое же как i_this.ch содержимое i_window.ch


Именно так
Я снова проверил эти определения для свойства Action, и они все используют вызов функции DoMethod()
Поэтому для вашего случая надо использовать вызов

 цитата:
b := GetProperty(cWnd, cBtn, "Action")


как и сделано в вашем примере.

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




Пост N: 4302
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.06.23 12:18. Заголовок: gfilatov2002 тогда ..


gfilatov2002
тогда немного не логично в названиях, т.е. далее идут списком как события OnClick,On..., и к ним Domethod () подходит, а Action выпадает (для события OnAction название подходит).
#xtranslate This . <c> . <p:...,Action,OnClick,OnGotFocus,OnLostFocus,OnChange,OnDblClick,...
Может тогда сделать дополнительно
OnAction,Click,GotFocus,LostFocus,Change,DblClick => Get\SetProperty(...)
Получается установить можем
This.(cBtn).Action := b
а прочитать, в таком же синтаксисе, нет
b := This.(cBtn).Action

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




Пост N: 2153
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.06.23 12:37. Заголовок: SergKis пишет: Полу..


SergKis пишет:

 цитата:
Получается установить можем
This.(cBtn).Action := b
а прочитать, в таком же синтаксисе, нет
b := This.(cBtn).Action


Согласен.
Но для Минигуи основным синтаксисом является Get\SetProperty(...)
Кстати, в официальной версии HMG вообще не существует определений свойства Action для синтаксиса This

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




Пост N: 4303
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.06.23 12:51. Заголовок: gfilatov2002 пишет К..


gfilatov2002 пишет
 цитата:
Кстати, в официальной версии HMG вообще не существует определений свойства Action для синтаксиса This


Там много чего удобного нет, потому и не используем ее.
А товарищ пошел дальше и обвязал в MiniGui все _Define... объектами и пишет как в VO (привычка), а oHMG - слабоват был на 2011 г.

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




Пост N: 4304
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.06.23 16:07. Заголовок: gfilatov2002 Добави..


gfilatov2002
Добавил в i_this.ch
 
#xtranslate This . <c> . Event . <p:Action,OnClick,OnGotFocus,OnLostFocus,OnChange,OnDblClick,OnEnter> => GetProperty ( _HMG_THISFORMNAME, <(c)> , <"p"> )
#xtranslate This . <c> . Event . <p:Action,OnClick,OnGotFocus,OnLostFocus,OnChange,OnDblClick,OnEnter> := <n> => SetProperty ( _HMG_THISFORMNAME, <(c)> , <"p"> , <n> )
в примере
b := This.(cBtn).Event.Action
...
This.(cBtn).Action := b
или
This.(cBtn).Event.Action := b

работает

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




Пост N: 2155
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 13.06.23 16:19. Заголовок: SergKis пишет: Доба..


SergKis пишет:

 цитата:
Добавил в i_this.ch


Продублировал у себя эти изменения
SergKis пишет:

 цитата:
работает


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

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




Пост N: 2160
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 20.06.23 15:26. Заголовок: По ходу добавил прим..


По ходу добавил пример отображения строки с разным цветом букв (давно был запрос об этой возможности ).

Разноцветная строка рисуется по окну в событии ON PAINT:



Если есть интерес в таком примере - напишите...

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




Пост N: 4314
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.06.23 16:26. Заголовок: gfilatov2002 пишет Е..


gfilatov2002 пишет
 цитата:
Если есть интерес в таком примере - напишите...


Если бы окно было Transparent к нижним окнам, было бы super. Андрей бы точно с использовал и много раз.

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




Пост N: 4316
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.06.23 16:08. Заголовок: gfilatov2002 Почему..


gfilatov2002
Почему убрано ?
 
METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) CLASS TSBrowse
...
#if 0
ELSEIF nClickRow == -1 .AND. ! Empty( ::lDrawFooters ) // Added 19.05.2020

IF ::bLDblClick != NIL
Eval( ::bLDblClick, uPar1, uPar2, nKeyFlags, Self )
ENDIF
#endif

ELSEIF nClickRow == -2 .AND. ::lDrawSpecHd // SergKis 11.11.21
...

тогда :bLDblClick не работает для Footer

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