Автор | Сообщение |
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; - новые и обновленные старые примеры (как обычно ).
|
|
|
Ответов - 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 пишет: цитата: | Теперь пример работает нормально |
| попереключал сортировку в своем проекте с последними изменениям - все отлично работает. Видимо в примере действительно проблема была
|
|
|
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
|
|
|
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
|
|
|
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
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3469
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.10.20 21:10. Заголовок: Опять 2а раза отправ..
Опять 2а раза отправилось
|
|
|
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 ) |
| Эта правка не нужна, поскольку выше по тексту уже идет проверка:
|
|
|
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) ) // видимость
|
|
|
kkg
|
| |
Пост N: 32
Зарегистрирован: 29.11.19
|
|
Отправлено: 10.10.20 14:44. Заголовок: gfilatov2002 Григор..
gfilatov2002 Григорий, пересмотрел изменения которые я вношу, возможно данное примете в стандарт если будет интересно сообществу HbXlsXml Скрытый текст CREATE CLASS ExcelWriterXML_Sheet VAR id VAR aAddSheet INIT {} VAR cells INIT { => } VAR colWidth INIT { => } ... METHOD ExcelWriterXML_Sheet:getSheetXML( handle ) ... xml += " </Table>" + hb_eol() if valtype(::aAddSheet) == 'A' .and. len(::aAddSheet)>0 for ir = 1 to len(::aAddSheet) xml += ::aAddSheet[ir] + hb_eol() next endif xml += "</Worksheet>" + hb_eol() ... я использую для передачи "заморозки" шапки, nFreeze и АвтоФильтра aadd(oSh,' <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">') aadd(oSh,' <Unsynced/>') aadd(oSh,' <FreezePanes/>') aadd(oSh,' <FrozenNoSplit/>') aadd(oSh,' <SplitHorizontal>+[номер строки]+</SplitHorizontal>') aadd(oSh,' <TopRowBottomPane>+[номер строки]+</TopRowBottomPane>') aadd(oSh,' <SplitVertical>'+[номер колонки]+'</SplitVertical>') aadd(oSh,' <LeftColumnRightPane>'+[номер колонки]+'</LeftColumnRightPane>') aadd(oSh,' <ActivePane>0</ActivePane>') aadd(oSh,' <Panes>') aadd(oSh,' <Pane>') aadd(oSh,' <Number>3</Number>') aadd(oSh,' </Pane>') aadd(oSh,' <Pane>') aadd(oSh,' <Number>1</Number>') aadd(oSh,' <ActiveCol>2</ActiveCol>') aadd(oSh,' </Pane>') aadd(oSh,' <Pane>') aadd(oSh,' <Number>2</Number>') aadd(oSh,' </Pane>') aadd(oSh,' <Pane>') aadd(oSh,' <Number>0</Number>') aadd(oSh,' <ActiveCol>0</ActiveCol>') aadd(oSh,' </Pane>') aadd(oSh,' </Panes>') aadd(oSh,' <ProtectObjects>False</ProtectObjects>') aadd(oSh,' <ProtectScenarios>False</ProtectScenarios>') aadd(oSh,' </WorksheetOptions>') aadd(oSh,' <AutoFilter x:Range="R+[строка]+C+[колонка]+:R+[строка]+C'+[колонка]+'" xmlns="urn:schemas-microsoft-com:office:excel">') aadd(oSh,' </AutoFilter>')
|
|
|
|
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()
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1808
Зарегистрирован: 11.02.10
|
|
Отправлено: 11.10.20 14:30. Заголовок: kkg пишет: есть поп..
kkg пишет: Принято
|
|
|
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 ) - удаляет колонку
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3477
Зарегистрирован: 17.02.12
|
|
Отправлено: 13.10.20 16:39. Заголовок: PS Например AEval(oB..
PS Например AEval(oBrw:aRowPosAtRec, {|nat| oBrw:FastDrawClear(nat) }) удалит все колонки для строк, участвующих в Refresh()
|
|
|
Haz
|
| |
Пост N: 1661
Зарегистрирован: 20.02.11
|
|
Отправлено: 13.10.20 16:55. Заголовок: SergKis пишет: Игор..
SergKis пишет: Видимо тем что отвлекался от этой темы ( работы много ) и не обновил у себя исходник. В своем ничего не нашел и быстренько написал. Метод есть , все устраивает Удалю пост чтоб не путать
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1809
Зарегистрирован: 11.02.10
|
|
Отправлено: 15.10.20 13:12. Заголовок: Всем кому это интересно
Подготовил первый RC для новой сборки 20.10 Кратко, что нового: Скрытый текст
* Added the new functions for Windows GDI objects memory release. It will activate the GDI objects recording and call CheckRes() to generate the checkres.txt log file on the application quit. Note: This feature will work after setting of debugging mode via the Harbour command Set( _SET_DEBUG, .T. ) or AltD( 1 ). * Fixed detected resource leakage of GDI objects at the release of Main form with usage of the new MiniGUI Resources control system. * TOOLBAR control: toolbuttons supports an optional ADJUST clause. * Revised a hot mouse tracking in the ButtonEx control. * Revised a releasing of the AniGif control. * Synchronized Extended HMG for compatibility with Official HMG: - COMBOBOXEX supports the optional clause NOTRANSPARENT; - IMAGE CHECKBUTTON supports the optional clause NOTRANSPARENT; - TAB control supports the optional clause NOTRANSPARENT; - TREE control supports the optional clause NOTRANSPARENT. * Added the optional color's constants to the header files i_color.ch and i_wincolor.ch. * Adaptation FiveWin Class TSBrowse 9.0 in HMG: - added the new variables :lFastDrawCell, :aFastDrawCell and :lFastDrawClear, method :FastDrawClear() for high-speed HASH-based data refreshing in the TSBrowse class; Note: you should set :lFastDrawCell to .T. for switch ON the above mode. Thanks a lot for this GREAT contribution to SergKis and Haz! * Updated Sqlite3 library. * Added the new interesting samples and updated some examples.
| P.S. Желаю всем доброго здоровья и хорошего дня
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1810
Зарегистрирован: 11.02.10
|
|
Отправлено: 21.10.20 09:16. Заголовок: Опубликована новая с..
|
|
|
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 ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 3482
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.10.20 13:27. Заголовок: PS Наверно, надо вст..
PS Наверно, надо вставить освобождение и в h_events.prg на CASE WM_DESTROY добавить
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1811
Зарегистрирован: 11.02.10
|
|
Отправлено: 21.10.20 14:35. Заголовок: SergKis пишет: Попр..
SergKis пишет: цитата: | Поправьте, слетает Tsb_DemoMdi при Alt+F4 |
| Поправил, конечно Благодарю за помощь P.S. Сделал тихое обновление этой сборки с учетом найденных ошибок...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1812
Зарегистрирован: 11.02.10
|
|
Отправлено: 28.10.20 10:23. Заголовок: Выпустил 1-е обновле..
Выпустил 1-е обновление сборки 20.10 Что нового: Скрытый текст
* Fixed: Browse control without PICTURE option had a wrong formatting for the fields with negative numbers (introduced in the build 20.05). Bug was reported by Pablo Jalabert. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\Browse_4) * Fixed: Correction in the Imagelist ADD IMAGE commands. Syntax: ADD IMAGE <image> [ MASK <mask> ] TO <control> OF <parent> ADD MASKEDIMAGE <image> [ COLOR <aColor> ] TO <control> ; OF <parent> Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\TOOLBAR_3) * Enhanced: TOOLBAR control: tool buttons respect the BALLOON style of tooltips and the command SET TOOLTIP [ ACTIVATE ] <ON | OFF>. Requested by Ivanil Marcelino <ivanil/at/linkbr.com.br>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\TOOLBAR_2) * Enhanced: ANIGIF control: added support of animated GIF from resources. Requested by Ivanil Marcelino <ivanil/at/linkbr.com.br>. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\AniGIF) * Enhanced: BtnTextBox and GetBox controls support Controls Context menu. Requested by Ivanil Marcelino <ivanil/at/linkbr.com.br>. Contributed by Grigory Filatov <gfilatov@inbox.ru> * Modified: Adding the new selected values to the multiple selection Grid was significantly accelerated (noticeable for grids with more than one hundred thousand items). Suggested by HMG user Edward. Contributed by Grigory Filatov <gfilatov@inbox.ru> * New: 'Month Calendar control with the bold days and backcolor' sample. Based upon a contribution of Kevin Carmody <i@kevincarmody.com>. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see demo3.prg in folder \samples\Basic\MONTHCAL) * New: 'MiniGUI ToolBar ImageList Demo' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\TOOLBAR_3)
|
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1813
Зарегистрирован: 11.02.10
|
|
Отправлено: 05.11.20 10:54. Заголовок: Выложил 2-е обновлен..
Выложил 2-е обновление сборки 20.10 В этом обновлении добавил новый элемент управления - PROGRESSWHEEL. Для его усовершенствования требуется помощь сишника - Петр, сможете помочь
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|