HiAsm - Конструктор программ

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Управление отдельными Edit-ами в StringTableMT


Управление отдельными Edit-ами в StringTableMT

Сообщений 1 страница 3 из 3

1

Схема для тех, кто не хочет заморачиваться со своими edit-ами при редактировании строки StringTableMT, но хочет получить некоторый доступ к встроенным editam (которые появляются при двойном клике на строке - режим редактирования строки).

https://forumupload.ru/uploads/001b/10/a7/10/t224919.png

Например, нужно заблокировать для изменения последние две ячейки редактируемой строки:

Код:
Add(MainForm,2953706,217,266)
{
 Width=911
 Height=350
 Position=1
}
Add(StringTableMT,7503742,448,280)
{
 Width=903
 Height=250
 Align=2
 Font=[Calibri,28,0,0,204]
 Name="table1"
 Columns=#7:авб=200|7:где=150|7:еёж=150|11:зик-T20=160|7:лмн=160|
 StrDelimiter="\9"
 Redaction=0
 Flat=1
 TabGrid=0
 Grid=0
 IconsCheck=[]
 MiscIcons=[]
 Icons=[]
 StringsStrLst=#24:йцу\9енг\9шщз\9фыв\9апро|28:еке\9енг\9шщипз\9фы54в\9апро|32:йцпку\9е55нг\9ш5нщз\9фыв\9апрьго|34:й5епцу\9ен634г\9шщз\9фыцьв\9аьпгро|34:йцрну\9е5нг\9шитщз\9фтпыв\9апрпк4о|
 AutoTblStrLst=0
 StaticColumn=0
 Point(onEscCell)
 Point(onChange)
 Point(Matrix)
 Point(EndIdx)
 Point(FullTextTab)
 Point(doInitTxtTab)
 Point(onKeyDown)
 Point(Index)
 Point(Handle)
}
Add(InfoTip,13056749,217,427)
{
 Info=#31:Блокировка редактирования ячеек|
 Font=[MS Sans Serif,8,1,0,1]
 Frame=2
 HAlign=0
 Width=498
 Height=340
 Margin=3
}
Add(Timer,2437119,287,574)
{
 Interval=200
 link(onTimer,1492792:doEvent1,[])
}
Add(Hub,1492792,336,574)
{
 OutCount=4
 link(onEvent2,3632333:In,[])
 link(onEvent3,11821637:doEnumChildWindows,[])
 link(onEvent4,6899760:doEnum,[(360,601)(360,692)])
}
Add(LineBreak,1044611,525,483)
{
 link(Out,3781745:doClear,[])
 Primary=[3632333,-161,98]
}
Add(WinEnum,11821637,406,567)
{
 Point(onEnumChildWindows)
 Point(doEnumChildWindows)
 Point(ParentHandle)
 link(onEnumChildWindows,12747369:doValue,[])
 link(ParentHandle,2020457:Var,[])
}
Add(MT_MultiMem,12747369,455,581)
{
 link(onData,10525174:doCompare,[])
}
Add(If_else,10525174,497,581)
{
 Op2=String(obj_EDIT)
 link(onTrue,1765035:doAdd,[])
 link(Op1,12747369:Value1,[(503,569)(482,569)(482,625)(461,625)])
 AddHint(1,37,70,13,Op2)
}
Add(IntegerArray,3781745,567,469)
{
 IntArray=[]
}
Add(ArrayRW,1765035,567,567)
{
 link(Array,922605:Var2,[])
 link(Value,16686113:Var,[])
}
Add(LineBreak,11887094,462,637)
{
 Caption="hnd"
 Type=1
 link(Data,12747369:Value2,[])
 Primary=[16686113,119,-98]
}
Add(LineBreak,3080009,490,336)
{
 Caption="hnd1"
 Type=1
 link(Data,7503742:Handle,[])
 Primary=[2020457,-77,189]
}
Add(GetDataEx,922605,567,504)
{
 link(Data,3781745:Array,[])
}
Add(LineBreak,614473,574,518)
{
 Caption="arr"
 Type=1
 link(Data,922605:Var3,[(580,509)])
 Primary=[1795958,-203,140]
}
Add(CounterEx,5285802,413,686)
{
 Max=1
 Default=-1
 Point(onThroughMax)
 link(onNext,999608:doEvent1,[])
}
Add(ArrayEnum,6899760,371,686)
{
 Type=1
 link(onItem,5285802:doNext,[])
 link(Array,1795958:Var,[])
 AddHint(-85,26,35,13,Type)
}
Add(Case,6258814,483,693)
{
 Value=Integer(1)
 link(onTrue,7738208:In,[])
 AddHint(3,-23,21,13,Value)
}
Add(Hub,999608,455,686)
{
 link(onEvent1,5300686:doData,[])
 link(onEvent2,6258814:doCase,[])
}
Add(LineBreak,3956031,329,693)
{
 link(Out,6899760:doStop,[])
 Primary=[7738208,196,7]
}
Add(WinTools,10447454,616,658)
{
 Point(doEnable)
 link(Handle,3317433:Var,[])
}
Add(DoData,5300686,567,686)
{
 Data=Integer(0)
 link(onEventData,10447454:doEnable,[])
 AddHint(1,35,21,13,Data)
}
Add(LineBreak,14718416,371,728)
{
 Caption="hnd"
 Type=1
 link(Data,6899760:Item,[])
 Primary=[3317433,245,-98]
}

Теги: StringTableMT, edit

0

2

А вот вариант для тех, кто разбирается в IC и хочет получить расширенный доступ к editам по Handle.
https://forumupload.ru/uploads/001b/10/a7/10/t333049.png
Можно будет менять все стандартные св-ва editoв: цвет, шрифт и т .д.

Код:
Add(InlineCode,644566,714,721)
{
 WorkPoints=#1:c|
 DataPoints=#1:h|
 Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10:   private|9:   public|16:    h:THI_Event;|42:    procedure c(var dt:TData; index:word);|5: end;|0:|14:implementation|0:|24:procedure THiAsmClass.c;|16:var hnd:integer;|18:    Ctl: pControl;|5:begin|26: hnd := ToIntegerEvent(h);|39: Ctl := Pointer(GetProp(hnd, ID_SELF));|66: //GetProp - ф-ция winapi, извлекает указанное св-во окна/контрола|100: //SetProp - устанавливает св-во окна/контрола, в т.ч. произвольное (SetProp(hwnd, "TestProp", 555))|54: //KOL заносит в св-во ID_SELF Pcontrol (слава б-гу :)|22: Ctl.Color := $E8E8E8;|17: //_hi_OnEvent();|4:end;|0:|4:end.|
 link(h,11891032:Var1,[(720,649)])
}
Add(MainForm,10489408,287,266)
{
 Width=911
 Height=350
 Position=1
}
Add(StringTableMT,7503742,518,280)
{
 Width=903
 Height=250
 Align=2
 Font=[Calibri,28,0,0,204]
 Name="table1"
 Columns=#7:авб=200|7:где=150|7:еёж=150|11:зик-T20=160|7:лмн=160|
 StrDelimiter="\9"
 Redaction=0
 Flat=1
 TabGrid=0
 Grid=0
 IconsCheck=[]
 MiscIcons=[]
 Icons=[]
 StringsStrLst=#24:йцу\9енг\9шщз\9фыв\9апро|28:еке\9енг\9шщипз\9фы54в\9апро|32:йцпку\9е55нг\9ш5нщз\9фыв\9апрьго|34:й5епцу\9ен634г\9шщз\9фыцьв\9аьпгро|34:йцрну\9е5нг\9шитщз\9фтпыв\9апрпк4о|
 AutoTblStrLst=0
 StaticColumn=0
 Point(onEscCell)
 Point(onChange)
 Point(Matrix)
 Point(EndIdx)
 Point(FullTextTab)
 Point(doInitTxtTab)
 Point(onKeyDown)
 Point(Index)
 Point(Handle)
}
Add(InfoTip,13056749,287,427)
{
 Info=#31:Блокировка редактирования ячеек|
 Font=[MS Sans Serif,8,1,0,1]
 Frame=2
 HAlign=0
 Width=498
 Height=340
 Margin=3
}
Add(Timer,2437119,357,574)
{
 Interval=200
 link(onTimer,1492792:doEvent1,[])
}
Add(Hub,1492792,406,574)
{
 OutCount=4
 link(onEvent2,3632333:In,[])
 link(onEvent3,11821637:doEnumChildWindows,[])
 link(onEvent4,6899760:doEnum,[(430,601)(430,692)])
}
Add(LineBreak,6806393,595,483)
{
 link(Out,3781745:doClear,[])
 Primary=[3632333,-161,98]
}
Add(WinEnum,11821637,476,567)
{
 Point(onEnumChildWindows)
 Point(doEnumChildWindows)
 Point(ParentHandle)
 link(onEnumChildWindows,12747369:doValue,[])
 link(ParentHandle,2020457:Var,[])
}
Add(MT_MultiMem,12747369,525,581)
{
 link(onData,10525174:doCompare,[])
}
Add(If_else,10525174,567,581)
{
 Op2=String(obj_EDIT)
 link(onTrue,1765035:doAdd,[])
 link(Op1,12747369:Value1,[(573,569)(552,569)(552,625)(531,625)])
 AddHint(1,37,70,13,Op2)
}
Add(IntegerArray,3781745,637,469)
{
 IntArray=[]
}
Add(ArrayRW,1765035,637,567)
{
 link(Array,922605:Var2,[])
 link(Value,16686113:Var,[])
}
Add(LineBreak,11675387,532,637)
{
 Caption="hnd"
 Type=1
 link(Data,12747369:Value2,[])
 Primary=[16686113,119,-98]
}
Add(LineBreak,892794,560,336)
{
 Caption="hnd1"
 Type=1
 link(Data,7503742:Handle,[])
 Primary=[2020457,-77,189]
}
Add(GetDataEx,922605,637,504)
{
 link(Data,3781745:Array,[])
}
Add(LineBreak,7652535,644,518)
{
 Caption="arr"
 Type=1
 link(Data,922605:Var3,[(650,509)])
 Primary=[1795958,-203,140]
}
Add(CounterEx,5285802,483,686)
{
 Max=1
 Default=-1
 Point(onThroughMax)
 link(onNext,999608:doEvent1,[])
}
Add(ArrayEnum,6899760,441,686)
{
 Type=1
 link(onItem,5285802:doNext,[])
 link(Array,1795958:Var,[])
 AddHint(-85,26,35,13,Type)
}
Add(Case,6258814,553,693)
{
 Value=Integer(1)
 link(onTrue,7738208:In,[])
 AddHint(3,-23,21,13,Value)
}
Add(Hub,999608,525,686)
{
 link(onEvent1,5300686:doData,[])
 link(onEvent2,6258814:doCase,[])
}
Add(LineBreak,3835067,399,693)
{
 link(Out,6899760:doStop,[])
 Primary=[7738208,196,7]
}
Add(WinTools,10447454,721,658)
{
 Point(doEnable)
 link(Handle,11891032:Var2,[])
}
Add(DoData,5300686,637,686)
{
 Data=Integer(0)
 link(onEventData,7030212:doEvent1,[])
 AddHint(1,35,21,13,Data)
}
Add(LineBreak,8565236,441,728)
{
 Caption="hnd"
 Type=1
 link(Data,6899760:Item,[])
 Primary=[3317433,280,-105]
}
Add(Hub,7030212,679,686)
{
 link(onEvent1,10447454:doEnable,[])
 link(onEvent2,644566:c,[(703,699)(703,727)])
}
Add(GetDataEx,11891032,721,644)
{
 link(Data,3317433:Var,[])
}

Отредактировано 3042 (2024-03-18 16:33:50)

0

3

3042
Таблицы это вообще поле не паханное, как нибудь надо собраться и тоже кое какие наработки выложить...

0


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Управление отдельными Edit-ами в StringTableMT


Рейтинг форумов | Создать форум бесплатно