Автор | Сообщение |
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: 1323
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 10:53. Заголовок: SergKis пишет: Меня..
SergKis пишет: цитата: | Меня это давно как то совсем не трогает. |
| Трогает трогает Половина кода в примерах твоя
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1354
Зарегистрирован: 11.02.10
|
|
Отправлено: 20.09.18 11:31. Заголовок: Всем кому это интере..
Всем кому это интересно Подготовил второй релиз-кандидат для новой сборки библиотеки со следующим списком изменений Скрытый текст
* Fixed: Wrong row position of a WHOLEDROPDOWN menu of a ToolButton which was placed into a Vertical PagerBox control. Bug was reported by Natali Almeida. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Basic\CONTAINERS\PAGERBOX) * Fixed: Revised a bitmap cleaning at the exit from a Preview window in a graph printing module at using of the recent xHarbour compiler. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo at folder \samples\Basic\MAINDEMO_(SYNTAX_I)) * Updated: Synchronized Extended HMG for compatibility with Official HMG: Added the set/get 'Enabled' property for the forms: - ThisWindow|<FormName>.Enabled [ := | --> ] lBoolean There are the following add-ons for a TREE control: - added a new command to support a sorting: TREESORT ControlName OF ParentName [ ITEM nItem ] ; [ RECURSIVE lRecursive ] [ CASESENSITIVE lCaseSensitive ] ; [ ASCENDINGORDER lAscendingOrder ] [ NODEPOSITION nNodePosition ] (see demo in folder \samples\Advanced\DirTree_2) - enhanced Expand/Collapse methods: include recursive clause. Sample code: Form_1.Tree_1.Collapse (Form_1.Tree_1.Value, .T.) // Collapse All Form_1.Tree_1.Expand (Form_1.Tree_1.Value, .T.) // Expand All (see demo in folder \samples\Basic\TreeMenu_2) - added the useful functions (and appropriate properties) below: - TreeItemIsTrueNode(); - TreeItemGetNodeFlag(); - TreeItemIsExpand(); - TreeItemGetRootValue(); - TreeItemGetFirstItemValue(). Based upon a contribution of Claudio Soto <srvet@adinet.com.uy>. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> * Updated: Adaptation FiveWin Class TSBrowse 9.0 in HMG: - added the new method AppendRow() in TSBrowse class. Contributed by Sergej Kiselev and Igor Nazarov (see demo.prg in folder \samples\Advanced\Tsb_Basic) * Updated: HbSQLite3 library: - update for using SQLITE3 version 3.25.1 (from 3.25.0dev). Contributed by Grigory Filatov <gfilatov@inbox.ru> * Updated: Harbour Compiler 3.2.0dev (SVN 2018-09-14 15:36): * Updated: OpenSSL wrapper for using of the version 1.0.2p. Contributed by Grigory Filatov <gfilatov@inbox.ru> (look at ReadMe.txt in folder \harbour) * New: 'How to create a child form with a modal behavior' sample. Requested by Anand Gupta on HMG forum. Based upon a contribution of HMG user Edward (see in folder \samples\Basic\ChildAsModal) * New: 'Display of different fonts depending on the screen resolution' sample. Contributed by Verchenko Andrey <verchenkoag@gmail.com> (see in folder \samples\Basic\ScreenMode) * New: 'Tree Menu' sample by Andres Gonzalez Lopez. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\TreeMenu_2) * New: 'Tree Sort Directory' sample by Claudio Soto. Adapted for Minigui Extended by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Advanced\DirTree_2) * New: 'TSBrowse: network opening of the database' samples. Contributed by Igor Nazarov and Verchenko Andrey (see in folder \samples\Advanced\Tsb_Basic) * Updated: 'Tree with the images' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see ImageTree.prg in folder \samples\Basic\IMAGETREE_2) * Updated: 'Directory Tree' sample by Vladimir Chumachenko. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\IMAGETREE_3) * Updated: 'Progress bar using for showing of DBF's processing' sample. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see in folder \samples\Basic\PROGRESSBAR_3) * Updated: 'Memory File System usage' sample: - added copying of a memory table to a disk file. Contributed by Grigory Filatov <gfilatov@inbox.ru> (see demo in folder \samples\Advanced\MEMORY_TABLES). * Updated: 'TSBrowse Export data to a XLS/XML file' sample: - fixed class Tsb2Xml2Xls for export of data to XML file. Contributed by Sergej Kiselev (see Tsb4xml.prg in folder \samples\Advanced\Tsb_Brw2xml)
| Вероятно, это будет последняя сборка для компилятора BCC 5.51, поскольку поддержка Win 98 уже никому не интересна Сейчас выбираю другой компилятор из - бесплатного Embarcadero C++ 10.1 (32-bit) - платного Embarcadero C++ 7.3 (32-bit) - всем известного MinGW 8.1.0 и склоняюсь ко второму варианту Ваше мнение
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2029
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 11:37. Заголовок: Вот поправил вариант..
Вот поправил вариант :AppendRow() Скрытый текст
METHOD AppendRow( lUnlock ) CLASS TSBrowse LOCAL cAlias, bAddRec, xRet, lAdd := .F., lUps := .F. If HB_ISBLOCK( ::bAddBefore ) xRet := Eval( ::bAddBefore, Self ) If HB_ISLOGICAL(xRet) .and. ! xRet lUps := .T. // RETURN lAdd EndIf EndIf Do case case lUps case ::lIsDbf cAlias := ::cAlias bAddRec := If( !Empty( ::bAddRec ), ::bAddRec, {|| ( cAlias )->( dbAppend() ), ! NetErr() } ) If Eval( bAddRec, Self ) // SysRefresh() // ::nLen := ( cAlias )->( Eval( ::bLogicLen ) ) // ::Upstable() // ::Refresh(.T., .T.) lUps := lAdd := .T. EndIf case ::lIsArr bAddRec := If( !Empty( ::bAddRec ), ::bAddRec, {|| aAdd(::aArray, AClone( ::aDefValue ) ), .T. } ) If Eval( bAddRec, Self ) // SysRefresh() // ::nLen := Len( ::aArray ) // ::nAt := ::nLen // ::nRowPos := ::nRowCount() // ::Refresh(.T., .T.) lUps := lAdd := .T. EndIf end If HB_ISBLOCK( ::bAddAfter ) Eval( ::bAddAfter, Self, lAdd ) EndIf If lAdd .and. ::lIsDbf .and. ! empty(lUnlock) ( cAlias )->( dbUnlock() ) EndIf If lUps If ::lIsDbf SysRefresh() ::nLen := ( cAlias )->( Eval( ::bLogicLen ) ) ::Upstable() ::Refresh(.T., .T.) ElseIf ::lIsArr SysRefresh() ::nLen := Len( ::aArray ) ::nAt := ::nLen ::nRowPos := ::nRowCount() ::Refresh(.T., .T.) EndIf EndIf ::SetFocus() RETURN lAdd
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2030
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 11:49. Заголовок: PS правка If HB..
PS правка If HB_ISBLOCK( ::bAddBefore ) xRet := Eval( ::bAddBefore, Self ) If HB_ISLOGICAL(xRet) .and. ! xRet If ::lIsDbf cAlias := ::cAlias EndIf lUps := .T. // RETURN lAdd EndIf EndIf
|
|
|
Haz
|
| |
Пост N: 1324
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 12:27. Заголовок: SergKis пишет: If ..
SergKis пишет: цитата: | If lUps If ::lIsDbf SysRefresh() ::nLen := ( cAlias )->( Eval( ::bLogicLen ) ) ::Upstable() ::Refresh(.T., .T.) ElseIf ::lIsArr SysRefresh() ::nLen := Len( ::aArray ) ::nAt := ::nLen ::nRowPos := ::nRowCount() ::Refresh(.T., .T.) EndIf EndIf |
| Тогда так If lUps SysRefresh() If ::lIsDbf ::nLen := ( cAlias )->( Eval( ::bLogicLen ) ) ::Upstable() ElseIf ::lIsArr ::nLen := Len( ::aArray ) ::nAt := ::nLen ::nRowPos := ::nRowCount() EndIf ::Refresh(.T., .T.) End Но это уже так - перестановка слагаемых ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2031
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 12:28. Заголовок: PPS Как бы работает,..
PPS Как бы работает, но при :nLen < :nRowCount() перепоказ передергивает курсор через 1ый :nRowPos Моргание наблюдается
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2032
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 12:31. Заголовок: Haz пишет перестанов..
Haz пишет цитата: | перестановка слагаемых ... |
| Оптимизация всегда приветствуется
|
|
|
Haz
|
| |
Пост N: 1325
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 13:32. Заголовок: SergKis пишет: Как ..
SergKis пишет: цитата: | Как бы работает, но при :nLen < :nRowCount() перепоказ передергивает курсор через 1ый :nRowPos Моргание наблюдается |
| Это Upstable() .... можно с цветами поиграть
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2033
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 13:49. Заголовок: Haz пишет Это рефреш..
Haz пишет цитата: | Это рефреш .... можно с цверами поиграть |
| Это понятно, откуда ноги растут. Играть получается надо для фокуса и не в фокусе, оба возможны. Сохранять, ставить CLR_PANE для них, потом восстанавливать ... Словом еще побороться надо. Я пока отваливаюсь, у клиента бяка вылезла - разбираться надо.
|
|
|
Haz
|
| |
Пост N: 1326
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 13:52. Заголовок: SergKis пишет: Это ..
SergKis пишет: цитата: | Это понятно, откуда ноги растут. |
| Закоменти UPstable() ВРОДЕ ОН ЛИШНИЙ
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2034
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 13:59. Заголовок: Игорь Пробнул, без н..
Игорь Пробнул, без него (+) 11 строка становится 5 дальше пол экрана тсб пусто Все убежал. нет времени
|
|
|
|
Haz
|
| |
Пост N: 1327
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 14:01. Заголовок: STATIC FUNCTION Recn..
STATIC FUNCTION RecnoRefresh(oBrw) Полная шляпа , при удалении записи в одной из запущеных копий - начинаются чудеса в других на вскидку предлагаю так STATIC FUNCTION RecnoRefresh(oBrw) LOCAL nRecno, nRowPos LOCAL lEdit := .F. LOCAL nSkip := 0 AEVAL( oBrw:aColumns, { |o| if( !Empty(o:oEdit), lEdit := .T., NIL ) }) If !lEdit .and. oBrw:nLen <> Eval(oBrw:bLogicLen) nRowPos := oBrw:nRowPos nRecno := (oBrw:cAlias)->(RecNo()) oBrw:SetFocus() oBrw:Reset() (oBrw:cAlias)->(dbGoTo(nRecNo)) nSkip := 1-nRowPos oBrw:Skip(nSkip) oBrw:Refresh(.t., .t.) oBrw:nRowPos := nRowPos DO EVENTS EndIf RETURN Nil и таймер установить на секунду DEFINE TIMER Timer_1 INTERVAL 1000 ACTION RecnoRefresh(oBr)
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 6053
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.09.18 17:24. Заголовок: Haz пишет: и таймер..
Haz пишет: цитата: | и таймер установить на секунду |
| Это круто на секунду. Каждую секунду проверят ? Хотябы 15 секунд и то хоть легче компу и сети.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2035
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.09.18 17:24. Заголовок: SergKis пишет Сохран..
SergKis пишет цитата: | Сохранять, ставить CLR_PANE для них, потом восстанавливать ... |
| Сделал вариант с цветами, вроде не мелькает Скрытый текст
METHOD AppendRow( lUnlock ) CLASS TSBrowse LOCAL cAlias, bAddRec, xRet, lAdd := .F., lUps := .F. LOCAL oClr1 := oKeyData() LOCAL oClr2 := oKeyData() LOCAL lNoGray := ::lNoGrayBar If ::lIsDbf cAlias := ::cAlias EndIf If HB_ISBLOCK( ::bAddBefore ) xRet := Eval( ::bAddBefore, Self ) If HB_ISLOGICAL(xRet) .and. ! xRet lUps := .T. EndIf EndIf Do case case lUps case ::lIsDbf bAddRec := If( !Empty( ::bAddRec ), ::bAddRec, {|| ( cAlias )->( dbAppend() ), ! NetErr() } ) If Eval( bAddRec, Self ) lUps := lAdd := .T. EndIf case ::lIsArr bAddRec := If( !Empty( ::bAddRec ), ::bAddRec, {|| aAdd(::aArray, AClone( ::aDefValue ) ), .T. } ) If Eval( bAddRec, Self ) lUps := lAdd := .T. EndIf end If HB_ISBLOCK( ::bAddAfter ) Eval( ::bAddAfter, Self, lAdd ) EndIf If lAdd .and. ::lIsDbf .and. ! empty(lUnlock) ( cAlias )->( dbUnlock() ) EndIf If lUps If ::lIsDbf SysRefresh() AEval(::aColumns, {|oc,nc| oClr1:Set(nc, { oc:nClrFocuBack, oc:nClrFocuFore }), ; oClr2:Set(nc, { oc:nClrSeleBack, oc:nClrSeleFore }), ; oc:nClrFocuBack := oc:nClrFore, ; oc:nClrFocuFore := oc:nClrBack, ; oc:nClrSeleBack := oc:nClrFore, ; oc:nClrSeleFore := oc:nClrBack }) ::lNoGrayBar := .T. ::nLen := ( cAlias )->( Eval( ::bLogicLen ) ) ::Upstable() AEval(::aColumns, {|oc,nc,ac1,ac2| ac1 := oClr1:Get(nc), ac2 := oClr2:Get(nc), ; oc:nClrFocuBack := ac1[1], ; oc:nClrFocuFore := ac1[2], ; oc:nClrSeleBack := ac2[1], ; oc:nClrSeleFore := ac2[2] }) ::lNoGrayBar := lNoGray ::Refresh(.T., .T.) ElseIf ::lIsArr SysRefresh() ::nLen := Len( ::aArray ) ::nAt := ::nLen ::nRowPos := ::nRowCount() ::Refresh(.T., .T.) EndIf EndIf ::SetFocus() RETURN lAdd
| Пример на этом варианте https://my-files.ru/u2zy55 Haz пишет цитата: | STATIC FUNCTION RecnoRefresh(oBrw) Полная шляпа |
| Андрей хотел его временно, на время отладки, потом убрать. В примере заменил, на вскидку по быстрому.
|
|
|
Haz
|
| |
Пост N: 1328
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.09.18 17:31. Заголовок: Andrey пишет: Это к..
Andrey пишет: цитата: | Это круто на секунду. Каждую секунду проверят ? |
| Исходник глянь. Как там сделано
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2036
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.09.18 07:14. Заголовок: SergKis пишет Сделал..
SergKis пишет цитата: | Сделал вариант с цветами, вроде не мелькает |
| Попробовал в :AppendRow() оставить только строки для :lNoGray - оказалось этого достаточно убрать мелькание. Так что строки сохранения\восстановления цветов убрал
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2037
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.09.18 07:34. Заголовок: gfilatov2002 пишет и..
gfilatov2002 пишет цитата: | и склоняюсь ко второму варианту Ваше мнение |
| Думаю это конец hmg, за плату лучше FW. У нас: - печать своя - работа с excel своя - почта своя - pdf свое - letodb - hmg 2.07 от 2012 unicode все на vc8 Тек. версию исп. для информации и предложений (проба, отладка) из своей версии иногда из тек. в свою. В основном это тсб, т.к. у себя еще 90% работа на переделанном browse. Новое делается с исп. тсб, т.к. уверенность в тсб стабильной работе появилась не так давно. Использование "платного Embarcadero C++ 7.3 (32-bit)" не интересно. MinGw то же под вопросом.
|
|
|
Haz
|
| |
Пост N: 1329
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.09.18 10:27. Заголовок: SergKis пишет: Испо..
SergKis пишет: цитата: | Использование "платного Embarcadero C++ 7.3 (32-bit)" не интересно. MinGw то же под вопросом. |
| Тоже склоняюсь к тому ,что переход на платный компилятор не убъет но убавит интерес к hmg, тем более что кардинальных преимуществ с переходом с 5 на 7 нет. Среди коммерческих продуктов тогда уж точно выбор перетянет FW или менее известный Xailer
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1355
Зарегистрирован: 11.02.10
|
|
Отправлено: 21.09.18 11:13. Заголовок: Haz пишет: переход ..
Haz пишет: цитата: | переход на платный компилятор не убъет но убавит интерес к hmg |
| Благодарю за Ваши комментарии. SergKis пишет: цитата: | Использование "платного Embarcadero C++ 7.3 (32-bit)" не интересно. |
| Я забыл уточнить, что речь идет об усеченной версии для командной строки, которая сейчас активно используется пользователями FW. Она доступна для всех по адресу: http://xharbour.org/index.asp?page=download/windows/required_win SergKis пишет: цитата: | MinGw то же под вопросом. |
| Если возможно, просветите, какие вопросы есть к MinGW, ведь он достаточно стабилен и постоянно развивается SergKis пишет: У меня готово решение для бесплатного Microsoft Visual C++ 2017 Community Edition, но никак не удается подружить его с библиотекой BosTaurus. Возможно, Вы сможете помочь в этом? Тогда можно будет рассмотреть вариант перехода на VC Благодарю за Ваше внимание и последние доработки метода AppendRow()
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2038
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.09.18 12:38. Заголовок: gfilatov2002 пишет п..
gfilatov2002 пишет цитата: | просветите, какие вопросы есть к MinGW |
| Да только один, не сталкивался с ним по жизни, т.е. продукт с 0. Т.е. если надо на него идти, то должна быть веская причина, к примеру, hmg unicod. цитата: | речь идет об усеченной версии для командной строки, которая сейчас активно используется пользователями FW |
| Делает это ее и продукты из нее free в использовании. А то что работают пользователи FW ..., но у нас не FW. Если бы FW был unicode ... цитата: | но никак не удается подружить его с библиотекой BosTaurus |
| Помочь не смогу, т.к. не использую и смотрел чисто поверхностно для понимания "для чего", если что. Hmg подходит из за небольшого числа gui контролов для работы в unicod. Переход на тек. версии затруднителен, т.к. больше контролов и нет mdi и нет времени и сил на новый "поход" в unicod. А того, что есть в hmg 2.07 (gui контролов) вполне достаточно для работы с табличной базой. "От добра добра не ищут"
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|