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


Haz
администратор




Пост N: 1659
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 09.10.20 14:53. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Теперь пример работает нормально


попереключал сортировку в своем проекте с последними изменениям - все отлично работает. Видимо в примере действительно проблема была

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




Пост N: 3466
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.10.20 19:39. Заголовок: Haz пишет пока не сл..


Haz пишет
 цитата:
пока не сложилось как понять что oCell принадлежит видимой части ( окну ) бровса


Так в теории будет выглядеть функция (метод такой вряд ли нужен, слишком много вариантов, что можно делать)
 
FUNC FastDrawCheck( oBrw )
Local oCols := oKeyData():aKey := hb_HSort( oBrw:aFastDrawCell )
Local aCols := oCols:GetAll(.F.)
Local cAls := oBrw:cAlias
Local aCol, nCol, oCol, cCell
Local xData, uData, nRec
Local lVisi, lEque

FOR EACH aCol IN aCols
cCell := aCol[1]
oCol := aCol[2]
nRec := val( left(cCell, At(".", cCell)-1) )
lEque := .F.
lVisi := .F.
uData := Nil
xData := oCol:oCell:uValue
If nRec != (cAls)->( RecNo() )
(cAls)->( dbGoto(nRec) )
EndIf
If nRec == (cAls)->( RecNo() )
uData := oBrw:GetValue(oCol:cName)
lEque := xData == uData
lVisi := AScan( oBrw:aRowPosAtRec, nRec ) > 0 // видимость на екране
IF ! lEque
// ...
ENDIF
IF lVisi
// ...
ENDIF
EndIf
AAdd( aCol, lVisi )
AAdd( aCol, lEque )
AAdd( aCol, xData )
AAdd( aCol, uData )
NEXT

RETURN aCols


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




Пост N: 3467
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.10.20 21:08. Заголовок: gfilatov2002 Посмот..


gfilatov2002
Посмотрел h_tbrowse.zip, небольшие правки
 
METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::lRowPosAtRec
IF Empty( ::aRowPosAtRec ) .OR. Len( ::aRowPosAtRec ) != ::nRowCount()
::aRowPosAtRec := Array( ::nRowCount() )
AFill( ::aRowPosAtRec, 0 )
ENDIF
IF ::nLen == 0 .OR. xRow == 0 .OR. xRow > Len( ::aRowPosAtRec )
ELSE
::aRowPosAtRec[ xRow ] := ( nAt := ::nAtPos )
ENDIF
ENDIF
...
Не обязательно, но так лучше - убрать лишнее
IF Empty( oColumn:oCell )
oColumn:oCell := TSBcell():New()
ENDIF

oCell := oColumn:oCell

oCell:nRow := xRow
oCell:nCol := nStartCol
...
oCell:nCursor := 0 // 31 Rect cursor
oCell:lInvertColor := .F. // 32 Invert color
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::lRowPosAtRec .AND. Len( ::nRowCount() ) > 0
IF Empty( ::aRowPosAtRec ) .OR. Len( ::aRowPosAtRec ) != ::nRowCount()
::aRowPosAtRec := Array( ::nRowCount() )
AFill( ::aRowPosAtRec, 0 )
ENDIF
IF ::nLen == 0 .or. xRow == 0 .OR. xRow > Len( ::aRowPosAtRec )
ELSE
::aRowPosAtRec[ xRow ] := ( nAt := ::nAtPos )
ENDIF
ENDIF
...
IF Empty( oColumn:oCell )
oColumn:oCell := TSBcell():New()
ENDIF

oCell := oColumn:oCell

oCell:nRow := nRowPos
oCell:nCol := nStartCol
...
oCell:nCursor := nCursor // 31 Rect cursor
oCell:lInvertColor := !( ::lCellBrw .AND. nJ != ::nCell ) // 32 Invert color



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




Пост N: 3468
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.10.20 21:08. Заголовок: gfilatov2002 Посмот..


gfilatov2002
Посмотрел h_tbrowse.zip, небольшие правки
 
METHOD DrawLine( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::lRowPosAtRec
IF Empty( ::aRowPosAtRec ) .OR. Len( ::aRowPosAtRec ) != ::nRowCount()
::aRowPosAtRec := Array( ::nRowCount() )
AFill( ::aRowPosAtRec, 0 )
ENDIF
IF ::nLen == 0 .OR. xRow == 0 .OR. xRow > Len( ::aRowPosAtRec )
ELSE
::aRowPosAtRec[ xRow ] := ( nAt := ::nAtPos )
ENDIF
ENDIF
...
Не обязательно, но так лучше - убрать лишнее
IF Empty( oColumn:oCell )
oColumn:oCell := TSBcell():New()
ENDIF

oCell := oColumn:oCell

oCell:nRow := xRow
oCell:nCol := nStartCol
...
oCell:nCursor := 0 // 31 Rect cursor
oCell:lInvertColor := .F. // 32 Invert color
...
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::lRowPosAtRec .AND. Len( ::nRowCount() ) > 0
IF Empty( ::aRowPosAtRec ) .OR. Len( ::aRowPosAtRec ) != ::nRowCount()
::aRowPosAtRec := Array( ::nRowCount() )
AFill( ::aRowPosAtRec, 0 )
ENDIF
IF ::nLen == 0 .or. xRow == 0 .OR. xRow > Len( ::aRowPosAtRec )
ELSE
::aRowPosAtRec[ xRow ] := ( nAt := ::nAtPos )
ENDIF
ENDIF
...
IF Empty( oColumn:oCell )
oColumn:oCell := TSBcell():New()
ENDIF

oCell := oColumn:oCell

oCell:nRow := nRowPos
oCell:nCol := nStartCol
...
oCell:nCursor := nCursor // 31 Rect cursor
oCell:lInvertColor := !( ::lCellBrw .AND. nJ != ::nCell ) // 32 Invert color



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




Пост N: 3469
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.10.20 21:10. Заголовок: Опять 2а раза отправ..


Опять 2а раза отправилось

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




Пост N: 1807
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.10.20 21:14. Заголовок: SergKis пишет: METH..


SergKis пишет:

 цитата:
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
IF ::lRowPosAtRec .AND. Len( ::nRowCount() ) > 0
IF Empty( ::aRowPosAtRec ) .OR. Len( ::aRowPosAtRec ) != ::nRowCount()
::aRowPosAtRec := Array( ::nRowCount() )
AFill( ::aRowPosAtRec, 0 )
ENDIF
IF ::nLen == 0 .or. xRow == 0 .OR. xRow > Len( ::aRowPosAtRec )


Эта правка не нужна, поскольку выше по тексту уже идет проверка:


 цитата:
ELSEIF ::nLen > 0



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




Пост N: 3470
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.10.20 11:28. Заголовок: Игорь Уточнение по в..


Игорь
Уточнение по видимости колонки
lVisi := AScan( oBrw:aRowPosAtRec, nRec ) > 0 .and. AScan( oBrw:aDrawCols, oBrw:nColumn(oCol:cName) ) // видимость

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



Пост N: 32
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 10.10.20 14:44. Заголовок: gfilatov2002 Григор..


gfilatov2002
Григорий, пересмотрел изменения которые я вношу, возможно данное примете в стандарт
если будет интересно сообществу
HbXlsXml
Скрытый текст



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



Пост N: 33
Зарегистрирован: 29.11.19
ссылка на сообщение  Отправлено: 10.10.20 22:43. Заголовок: gfilatov2002 пересо..


gfilatov2002
пересобрал с последними изменениями есть поправка

 
METHOD DrawSelect( xRow, lDrawCell ) CLASS TSBrowse
...
[4622] IF ::lRowPosAtRec .AND. ::nRowCount() > 0 // без len()


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




Пост N: 1808
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 11.10.20 14:30. Заголовок: kkg пишет: есть поп..


kkg пишет:

 цитата:
есть поправка


Принято

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




Пост N: 3476
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.10.20 16:35. Заголовок: Haz пишет предлагаю ..


Haz пишет
 цитата:
предлагаю добавить


Игорь, а чем не подошло
METHOD FastDrawClear( cCell ) CLASS TSBrowse
описанный выше
cCell := .T. - очищает hash
cCell := :nAtPos - удаляет колонки строки заданной
cCell := hb_ntos(:nAtPos)+"."+hb_ntos( oCol:nId ) - удаляет колонку

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




Пост N: 3477
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 13.10.20 16:39. Заголовок: PS Например AEval(oB..


PS
Например
AEval(oBrw:aRowPosAtRec, {|nat| oBrw:FastDrawClear(nat) })
удалит все колонки для строк, участвующих в Refresh()

Спасибо: 0 
Профиль
Haz
администратор




Пост N: 1661
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 13.10.20 16:55. Заголовок: SergKis пишет: Игор..


SergKis пишет:

 цитата:
Игорь, а чем не подошло


Видимо тем что отвлекался от этой темы ( работы много ) и не обновил у себя исходник. В своем ничего не нашел и быстренько написал.
Метод есть , все устраивает
Удалю пост чтоб не путать

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




Пост N: 1809
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 15.10.20 13:12. Заголовок: Всем кому это интересно


Подготовил первый RC для новой сборки 20.10

Кратко, что нового:
Скрытый текст

P.S. Желаю всем доброго здоровья и хорошего дня

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




Пост N: 1810
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.10.20 09:16. Заголовок: Опубликована новая с..


Опубликована новая сборка 20.10 для BCC 5.8.2 и компиляторов Harbour и xHarbour.

Базовый дистрибутив находится по адресу

http://hmgextended.com/files/CONTRIB/hmg-20.10-setup.exe

Огромная благодарность Сергею Киселеву и Игорю Назарову за помощь при подготовке этой сборки

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




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


gfilatov2002
Поправьте, слетает Tsb_DemoMdi при Alt+F4, .т.к. в окнах _HMG_aFormMiscData1[ k ] := {} (может еще где)
 
FUNCTION ReleaseAllWindows ()
...
IF Len( _HMG_aFormMiscData1[ i ] ) > 0 .and. _HMG_aFormMiscData1 [ i ] [ 1 ] != NIL
DestroyIcon ( _HMG_aFormMiscData1 [ i ] [ 1 ] )
ENDIF

IF Len( _HMG_aFormMiscData1[ i ] ) > 2 .and. ! Empty ( _HMG_aFormMiscData1 [ i ] [ 3 ] )
DeleteObject ( _HMG_aFormMiscData1 [ i ] [ 3 ] )
ENDIF
...


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




Пост N: 3482
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.10.20 13:27. Заголовок: PS Наверно, надо вст..


PS
Наверно, надо вставить освобождение и в h_events.prg на CASE WM_DESTROY добавить

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




Пост N: 1811
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.10.20 14:35. Заголовок: SergKis пишет: Попр..


SergKis пишет:

 цитата:
Поправьте, слетает Tsb_DemoMdi при Alt+F4


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

P.S. Сделал тихое обновление этой сборки с учетом найденных ошибок...

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




Пост N: 1812
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 28.10.20 10:23. Заголовок: Выпустил 1-е обновле..


Выпустил 1-е обновление сборки 20.10

Что нового:
Скрытый текст


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




Пост N: 1813
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 05.11.20 10:54. Заголовок: Выложил 2-е обновлен..


Выложил 2-е обновление сборки 20.10

В этом обновлении добавил новый элемент управления - PROGRESSWHEEL.

Для его усовершенствования требуется помощь сишника - Петр, сможете помочь

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