Автор | Сообщение |
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
[только новые]
|
|
gfilatov2002
|
| moderator
|
Пост N: 1436
Зарегистрирован: 11.02.10
|
|
Отправлено: 11.02.19 11:41. Заголовок: SergKis пишет: В пр..
SergKis пишет: OK
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2225
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.02.19 14:28. Заголовок: gfilatov2002 Пропус..
gfilatov2002 Пропустил я в примере 3 DEFINE GETBOX Text_6 // Alternate Syntax ... BACKCOLOR :O:BColorGet ... и TOOLTIPы поправить, может быть @ :Y, :X GETBOX Text_5 WIDTH :D1 HEIGHT :H1 ; TOOLTIP "Text_5. DublClick => Edit" ; ... @ :Y, :X GETBOX Text_7 WIDTH :O:nDefLen HEIGHT :H1 ; BACKCOLOR :O:BColorGet ; TOOLTIP "Characters field. DublClick => Edit " ; ... @ :Y, :X GETBOX Text_8 WIDTH :O:nBoolLen HEIGHT :H1 ; ... TOOLTIP "Logical field. DublClick => Edit" ;
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1437
Зарегистрирован: 11.02.10
|
|
Отправлено: 11.02.19 15:04. Заголовок: SergKis пишет: в пр..
SergKis пишет: цитата: | в примере 3 DEFINE GETBOX Text_6 // Alternate Syntax ... BACKCOLOR :O:BColorGet ... и TOOLTIPы поправить |
| Благодарю за помощь
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2226
Зарегистрирован: 17.02.12
|
|
Отправлено: 11.02.19 15:30. Заголовок: gfilatov2002 пишет У..
gfilatov2002 пишет цитата: | У меня такой пример тоже сработал (о tsb) |
| Мне понравилось использовать on init. В своей версии 2.07 прошел по всем контролам и добавил bInit. Даже в timer Local ow := oDlu2Pixel() ... IF _HMG_lOOPEnabled Eval ( _HMG_bOnControlInit, k, mVar ) ow := _WindowObj( ParentFormHandle ) ENDIF Do_WindowEventProcedure( bInit, k, ow, ControlName, k ) Return Nil Если в IDE добавить on init {|| NIL }, то в ней можно переустанавливать координаты (к примеру): ON INIT {|| This.Row := :Y, This.Col := :X, This.Width := :W1, This.Height := :H1, :Y += This.Height + :GapsHeight, ... }
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1438
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.02.19 12:40. Заголовок: SergKis пишет: про..
SergKis пишет: цитата: | прошел по всем контролам и добавил bInit |
| Добавил обработку bInit в 20 базовых элементов управления (плюс TBrowse, конечно). Поправил выделение при получении фокуса по событию ON GOTFOCUS в GetBox с символьными данными: IF ValType( Value ) == "C" _HMG_aControlGotFocusProcedure [k] := {|| SendMessage( _HMG_aControlHandles [k], EM_SETSEL, 0, iif( Empty( Value ), -1, Len( Trim( ( _HMG_aControlHeadClick [k] ):Cargo ) ) ) ) } Неточность выделения видна при редактировании поля Text_7 на десятой записи из базы. Также в альтернативном синтаксисе использовал новую команду ON INIT <b> вместо увеличения длины команды END <control> [ON INIT]. Теперь бы не мешало проверить эти изменения на реальном примере...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2227
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.19 12:56. Заголовок: gfilatov2002 Дайте ..
gfilatov2002 Дайте ссылку в личку или так Покручу. В тек. версии только несколько элементов от on init-ил
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1439
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.02.19 13:02. Заголовок: SergKis пишет: Дайт..
SergKis пишет: Отправил ссылку
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2228
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.19 13:45. Заголовок: gfilatov2002 пишет О..
gfilatov2002 пишет Забрал
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1440
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.02.19 13:53. Заголовок: SergKis пишет: Забр..
SergKis пишет: Если описание использования dlu в файле doc\Changelog.txt содержит неточности (или ошибки), то прошу их исправить без стеснения
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2229
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.02.19 17:50. Заголовок: gfilatov2002 Родной..
gfilatov2002 Родной "оригинальный" BASIC\GetBox из 19.01 переделал на проверку ON INIT. Только прорисовка убрана в ON INIT, остальное не трогал Тут https://TransFiles.ru/36pe9
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1441
Зарегистрирован: 11.02.10
|
|
Отправлено: 12.02.19 17:58. Заголовок: SergKis пишет: BASI..
SergKis пишет: цитата: | BASIC\GetBox из 19.01 переделал на проверку ON INIT |
| Супер! Большое спасибо за помощь
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2230
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.02.19 10:13. Заголовок: gfilatov2002 Малень..
gfilatov2002 Маленькая правка METHOD GetObj4Name( cName ) CLASS TWndData ... ::oName:Eval( {| oc | iif( cName $ Upper(oc:cName), AAdd( aObj, oc ), Nil ) } ) ...
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1442
Зарегистрирован: 11.02.10
|
|
Отправлено: 15.02.19 10:27. Заголовок: SergKis пишет: Мале..
SergKis пишет: Ok
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2231
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.02.19 10:57. Заголовок: gfilatov2002 Предло..
gfilatov2002 Предложение по TREE добавить в Node и Item Cargo, использовав _HMG_aControlHeadClick[ k ] #xcommand NODE <text> [ IMAGES <aImage> ] [ ID <id> ] [ CARGO <Cargo> ]; =>; _DefineTreeNode (<text>, <aImage> , <id>, <Cargo> ) #xcommand DEFINE NODE <text> [ IMAGES <aImage> ] [ ID <id> ] [ CARGO <Cargo> ] ; =>; _DefineTreeNode (<text>, <aImage> , <id>, <Cargo> ) #xcommand END NODE ; =>; _EndTreeNode() #xcommand TREEITEM <text> [ IMAGES <aImage> ] [ ID <id> ] [ CARGO <Cargo> ] ; => ; _DefineTreeItem (<text>, <aImage> , <id>, <Cargo> ) h_tree.prg #include "minigui.ch" #include "i_winuser.ch" STATIC lDialogInMemory := .F. STATIC a_Node_Item_Cargo := {} *-----------------------------------------------------------------------------* FUNCTION _DefineTree ( ControlName, ParentFormName, row, col, width, height, ; ... __defaultNIL( @dblclick, "" ) a_Node_Item_Cargo := {} mVar := '_' + ParentFormName + '_' + ControlName ... *-----------------------------------------------------------------------------* FUNCTION InitDialogTree( ParentName, ControlHandle, k ) *-----------------------------------------------------------------------------* ... FOR n := 1 TO Len( _HMG_aDialogTreeItem ) aImage := _HMG_aDialogTreeItem[ n, 2 ] text := _HMG_aDialogTreeItem[ n, 1 ] id := _HMG_aDialogTreeItem[ n, 3 ] NodeIndex := _HMG_aDialogTreeItem[ n, 4 ] Cargo := _HMG_aDialogTreeItem[ n, 6 ] ... ImgDef := iif( ValType( aImage ) == "A", Len( aImage ), 0 ) // Tree+ NodeHandle := _HMG_NodeHandle[ NodeIndex ] AAdd( a_Node_Item_Cargo, Cargo ) IF ImgDef == 0 ... _HMG_aControlPageMap [ _HMG_ActiveTreeIndex ] := _HMG_aTreeMap _HMG_aControlPicture [ _HMG_ActiveTreeIndex ] := _HMG_aTreeIdMap _HMG_aControlHeadClick[ _HMG_ActiveTreeIndex ] := AClone ( a_Node_Item_Cargo ) ... *-----------------------------------------------------------------------------* FUNCTION _DefineTreeNode ( text, aImage, Id, Cargo ) *-----------------------------------------------------------------------------* ... IF lDialogInMemory _HMG_NodeIndex++ AAdd ( _HMG_aDialogTreeItem, { text, aImage, Id, _HMG_NodeIndex, 'NODE', Cargo } ) ELSE ... AAdd ( _HMG_aTreeMap, _HMG_NodeHandle[ _HMG_NodeIndex ] ) AAdd ( _HMG_aTreeIdMap, Id ) AAdd ( a_Node_Item_Cargo, Cargo ) ENDIF ... *-----------------------------------------------------------------------------* FUNCTION _DefineTreeItem ( text, aImage, Id, Cargo ) *-----------------------------------------------------------------------------* ... IF lDialogInMemory AAdd ( _HMG_aDialogTreeItem, { text, aImage, Id, _HMG_NodeIndex, 'ITEM', Cargo } ) ELSE ... AAdd ( _HMG_aTreeMap, Handle ) AAdd ( _HMG_aTreeIdMap, Id ) AAdd ( a_Node_Item_Cargo, Cargo ) ENDIF ... *-----------------------------------------------------------------------------* FUNCTION _EndTree() *-----------------------------------------------------------------------------* IF .NOT. lDialogInMemory _HMG_aControlPageMap [ _HMG_ActiveTreeIndex ] := _HMG_aTreeMap _HMG_aControlPicture [ _HMG_ActiveTreeIndex ] := _HMG_aTreeIdMap _HMG_aControlHeadClick[ _HMG_ActiveTreeIndex ] := AClone( a_Node_Item_Cargo ) IF _HMG_ActiveTreeValue > 0 ... ENDIF a_Node_Item_Cargo := {} RETURN NIL ... *-----------------------------------------------------------------------------* FUNCTION TreeNodeItemCargo( ControlName, ParentForm, Item, Value ) *-----------------------------------------------------------------------------* LOCAL i, xVal IF ( i := GetControlIndex( ControlName, ParentForm ) ) > 0 IF Item > 0 .and. Item <= Len ( _HMG_aControlHeadClick[ i ] ) xVal := _HMG_aControlHeadClick[ i ][ Item ] IF pCount() > 3 _HMG_aControlHeadClick[ i ][ Item ] := Value ENDIF ENDIF ENDIF RETURN xVal h_controlmisc.prg FUNCTION _DeleteAllItems ( ControlName , ParentForm ) ... CASE t == "TREE" TreeView_DeleteAllItems ( c , _HMG_aControlPageMap [ i ] ) // Tree+ ASize ( _HMG_aControlPageMap [ i ] , 0 ) ASize ( _HMG_aControlPicture [ i ] , 0 ) ASize ( _HMG_aControlHeadClick[ i ] , 0 ) ... FUNCTION _DeleteItem ( ControlName , ParentForm , Value ) ... CASE T == "TREE" ... ASize ( _HMG_aControlPageMap [ix] , AfterCount ) ASize ( _HMG_aControlPicture [ix] , AfterCount ) HB_ADEL( _HMG_aControlHeadClick[ix] , Value, .T. ) ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2232
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.02.19 11:00. Заголовок: PS Пример BASIC\..
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2233
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.02.19 11:04. Заголовок: PPS При TreeItemSort..
PPS При TreeItemSort(...) и AddItem, думаю NODE\ITEM Cargo не стоит исползовать
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2234
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.02.19 18:32. Заголовок: gfilatov2002 Замени..
gfilatov2002 Замените, пожалуйста, методы, добавлена обработка удаленных контролов METHOD GetObj4Type( cType, lEque ) CLASS TWndData LOCAL aObj := {}, aO := {}, o IF ! Empty( cType ) lEque := hb_defaultValue( lEque, .T. ) IF ::cChr $ cType ; lEque := .F. ENDIF FOR EACH cType IN hb_ATokens( Upper( cType ), ::cChr ) ::oName:Eval( {| oc | iif( lEque, iif( cType == oc:cType, AAdd( aObj, oc ), ), ; iif( cType $ oc:cType, AAdd( aObj, oc ), ) ) } ) NEXT FOR EACH o IN aObj If _IsControlDefined(o:Name, o:Window:Name) aAdd(aO, o) EndIf NEXT ENDIF RETURN aO METHOD GetObj4Name( cName ) CLASS TWndData LOCAL aObj := {} IF ! Empty( cName ) FOR EACH cName IN hb_ATokens( Upper( cName ), ::cChr ) ::oName:Eval( {| oc | iif( _IsControlDefined(oc:Name, oc:Window:Name), ; iif( cName $ Upper(oc:cName), AAdd( aObj, oc ), Nil ), Nil ) } ) NEXT ENDIF RETURN aObj
|
|
|
gfilatov2002
|
| moderator
|
Пост N: 1443
Зарегистрирован: 11.02.10
|
|
Отправлено: 16.02.19 19:34. Заголовок: SergKis пишет: Заме..
SergKis пишет: цитата: | Замените, пожалуйста, методы, добавлена обработка удаленных контролов |
| Принято. Благодарю за помощь
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 807
Зарегистрирован: 13.10.05
|
|
Отправлено: 17.02.19 09:54. Заголовок: Ещё бы хороший приме..
Ещё бы хороший пример (на основе DBF) построения ДЕРЕВА и работы с ним
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2235
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.02.19 10:19. Заголовок: Vlad04 пишет Ещё бы ..
Vlad04 пишет цитата: | Ещё бы хороший пример (на основе DBF) построения ДЕРЕВА и работы с ним |
| Какие трудности с dbf. К примеру имеем - группы - подгруппы - товар while ! eof() // группы group := ... NODE group sele podgroup set scope group to group go top while ! eof() podgoup := ... NODE podgroup sele tovar set scope podgroup to podgroup go top while ! eof() ITEM tovar skip enddo END NODE sele podgroup skip enddo END NODE sele group skip enddo Если это в одном файле, открываем его три раза group, podgroup, tovar и делаем то же самое group, podgroup тэги UNIQUE
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|