Вверх ↑
Этот топик читают: Гость
Ответов: 187
Рейтинг: 3
#31: 2022-04-23 15:07:45 ЛС | профиль | цитата
nesco писал(а):

ric писал(а):
Работает отлично, только пока индекс CheckBoxIndex=3, если поменять на другой то нет

Там еще есть одна ошибка, надо будет исправить. Насчет индекса -- ты это, поменял расположение индексов, а исходную инициализацию оставил старой. В исходной инициализации нет иконок, вот они и стоят на позиции 4.

--- Добавлено в 2022-04-23 13:08:26

Вот, исправил код, должно работать нормально. В примере CheckBoxIndex=4

Редактировалось 4 раз(а), последний 2022-04-23 13:08:26


на индекс 4 да это ты прав, мой косяк недоглядел
тут другое при сворачивании исчезают суб чеки и субы получают -1й индекс скрывая их.

Тоже самое при загрузке из файла, если родитель имеет -1 индекс а дети 0 или 1, то присваивается индекс родителя -1.

Add(MainForm,16077975,154,238)
{
Width=614
Height=275
Position=1
Point(Handle)
Point(onClose)
link(onCreate,14720549:doTimer,[])
}
Add(TreeViewTrain,1574694,406,203)
{
Width=264
Height=236
Align=1
Name="main"
RightClickSelect=0
IconsManager="ico"
CheckBoxes=0
SetCheckOnChild=0
CaptionIndex=1
ParentIDIndex=2
IconIndex=3
CheckBoxIndex=4
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
Point(onKillFocus)
Point(IDAtPos)
Point(DataAtPos)
Point(onDrop)
Point(doSetFocus)
Point(doExpand)
link(onMouseUp,8665795:doEvent1,[])
}
Add(TVT_AddNode,3105964,462,147)
{
TreeView="main"
}
Add(ArrayEnum,10500446,329,154)
{
link(onItem,11917214:doMT,[])
link(onEndEnum,1574694:doExpand,[(373,167)(373,223)])
link(Array,4902202:Array,[])
}
Add(MT_String,11917214,406,147)
{
link(onResult,3105964:doAddNode,[])
}
Add(ListBox,13100349,644,231)
{
Left=325
Width=220
Height=235
}
Add(TVT_EnumNodes,3715868,504,231)
{
TreeView="main"
link(onEnum,3144293:doString,[])
}
Add(FormatStr,3144293,553,231)
{
DataCount=5
Mask="%5 - %1"
link(onFString,13100349:doAdd,[])
}
Add(Hub,8665795,462,224)
{
link(onEvent1,13100349:doClear,[(487,230)(487,223)(620,223)(620,244)])
link(onEvent2,3715868:doEnum,[])
}
Add(StrList,4902202,315,77)
{
Strings=#19:1;категория 1;-1;1;|22:2;категория 2;-1;0;-1 |11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|20:3;категория 3;-1;0;1|11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|11:4;sub;2;0;0|
}
Add(IconsManager,7094788,406,77)
{
Name="ico"
Icons=['Icon'=[ZIP5E07000078DACD934112C2200C453FD3053770BA74E9B2C7F0581C8D837810174ED3503462118AC08C4D13164CF2FA7F3A05143FE30877E2AA8113800B175F6182BF7771D638465014BD3815284A4405675792BDD94CCA780B2784B4737C4FE86E739670A4214328D94FAC4D08F2A23A4E38D2C2898D977078D2E7DB575ACFAB779BBF724AF43C51B59CDDA5E53929A7E2F72BC700922D7ACCBA44CEEE9CFFFAEAF2BD8E13346BD063E052A0BB8293693E4A5595C5B0FE430B04F81071],'Icon'=[ZIP5E07000078DAED94210F825014858F4983D9919CD168331AF5FFD82CCC64B3D96C369BCD860EC7AC069A9B3AFF80240C6CF880BD797DDC870F6771F3F05DC6BB070E77EC0DA0220ECB4272C6A00A3400B44589163AC8FA895A55FC952A962AB836CCF9D8FD5ECEF195BC65229F92BED1E7ACE2793C099DDCE328C85143B81C18E438125DDF31F82C6B82320FD3D7CFB322E4EF642C4DCE92C0EEE7A5D97E5E10A077DF6A4E28EB52CD08655D455389AECFBA794D24BA3EEBB21A4B940EB5C66651230EE496261A127EF84FFEAC5D1FF1294C2B6ADAB8D7BB08365D5CB7A22E315C37847B10B5E9C30DC4FA96D5F59C55B017CFD46C44BD67E6036D86ED08],'Icon'=[ZIP5E07000078DAD5956B4C536718C70F59321293393687435D16B35B302EB864D308BAB8647371CB0C1765C864385C3670A0D862B8295AA0DC61DCD44D708E4926024245A00C1D2A2A0814E805A5EDB99F52289C9E5BDB538AD907F79E035B8C64DFF6617BFB7B9F3CE739FFFEDEF7DB81203FF00B0A82A40AEDF287A0D5100405830D46D03BD0E25C5AEBFDA1FFC33A999E969E9A9C9E9AB29C0C99F47F26E3688AF2484A6D4DCDF9B8B0EAC84D5511214F13BEAC59466578C899A84D87DEDF90792CED76C5E107F77B8C035A894109C3A076E911704F6BBAF7C4E340F76266B1370C681FDEB8A48EDB95A954DCF9B512F32DC0BC07E13DB08C5506E60444F022146C1BEBB099FB61DE6DE5C0D0050B222C2C2561CE4DCC5205C95F662A9503974A508FD732C75A690E00D39C658E3399F4F6D1F6BE3BBA9D5F77472734587AEB2D38A61FBC65D777A33376EB1C6F057919DC41164A1EC5FDA6524CF481BFC34E1EA679C4C95FE8B67C72F04A5D71EDE5BAD321F9A35BD503BDB5D905AA9F22E21AAFFF523F6D9FB43A5DB07CA2D5C991B35471721CB88FAEB908F7FA509A030600C6B0B94D862D65639BBFEDDCA9D4C41BC5987EFAC3033FBF9DAC7D25575774A689A686119A95C29287A7E6C89294FD990AC5587311214A1ECCC9A38C7B586F3C373899833F8ABFE9F8AC194DD08B9F0FBBB637983FBA3EB375C89DD5DA63EA3C6BC7C651C6053CA893B7CD916587BF00F7196D019E0520C1590171705129D7DF4BBC7164C49566799434317F60DC1333C4478C899F8EF2DB7A66DE88ED8A4D68301B4710C60D24A853B0D164B9ECD1B71690E03E4E9E60052BCD27B5C031AD689A51FCCEE4CD9B14CEF5F4C765176F2EED7BB7090DD1106F55E93F2EBEF970428FCA1ECC294CD164C511E05118AFA8497101973D282B9CB7FB54E41F59D68544A3F7B769776F67576C54E4C643D5C18DC446AD3DF8D65CF45DEA817D1A6304C9C308769AF83E3516DCC7D8A6A6BC0B04237980EDAEC3FDA39E4DED67BE3188BFCFB87BBBB4B17BA2B6975EFC40E709EBA2F2FB4634388DB12E9C1170860775DA49541E051E85A94D4DFEED61789215DA6FE3F18DE84183B76FDAD5D3D9BD2F2A7247C5C51DC6F9B036C4A01FB6731C484A3CE1C9522A26AFE6525E1F291B4846205997D121D4219E32581C25C8EAB2A26DA1A119B567B3106F9689B1D0520C48E430389A9F6588D3CA7DC0035F53D9BC3E8AE12956C2C6F2532C4F301C068E434C753525E111113DBDDD36CF3CC84CC919390C3CD2C56619ECB43246F2749CB4893E8AF7D8048028555E941BD1C6F3D629627CC248314EBB7B5E9E78965E49310FC9791C34F2C3B1E8EC34C558CDEEA16BB52357CB463ACA751DE5A0825E2757A9015553BAF8767132A229070C4BB54CA72937B417D6268566A72BB45F3DDB16EDD7BAF7695A961AA8652FB4348C96869AFD2B3AE257B6C7FA5F8D5B511FF35A53C29BA57B0255C73386142B4D27D69973D6987382CC278240B52CF6D2E36AF389C0C9E381E6E3AB26B35F3067BFF8302B002FD960ABDA82146FC0ABC2CEAB0E5FCE4FBE90287D0B1C0DBBB1C2D789A2F5847A2D91FFB2446E2091B71A57AF21F2D612EA7538203F0857BD84AB5661A702B09CE7F093A03E8F9F0AC0F302F1C257FF9B1F8BC74B4B055AE85FD97E603FF397F6F19FD840E3D7]]
}
Add(Button,8823795,238,154)
{
Left=270
Top=5
Width=50
link(onClick,15965545:doWork2,[])
}
Add(Timer,14720549,217,252)
{
Interval=1
Enable=1
AutoStop=1
link(onTimer,15965545:doWork3,[(298,258)])
}
Add(HubEx,15965545,294,154)
{
link(onEvent,10500446:doEnum,[])
}


Редактировалось 2 раз(а), последний 2022-04-23 15:20:55
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#32: 2022-04-23 15:40:33 ЛС | профиль | цитата
Попробуй потестировать вот это код


  procedure Enum(prn: cardinal; CheckBoxes: boolean; CheckBoxIndex: integer);
var
j: integer;
FCurNode: PData;
begin
if prn > 0 then
begin
FCurNode := PData(Sender.TVItemData[prn]);
j := 0;
while FCurNode <> nil do
begin
if CheckBoxes and (j = CheckBoxIndex) and (ItemStateImg <> ToInteger(FCurNode^) + 1) then
begin
if ItemStateImg <> 0 then
begin
if _IsInteger(FCurNode^) then
FCurNode.idata := ItemStateImg - 1
else if _IsStr(fd^) then
FCurNode.sdata := Int2Str(ItemStateImg - 1)
else
begin
FCurNode.idata := ItemStateImg - 1;
FCurNode.sdata := Int2Str(ItemStateImg - 1);
FCurNode.rdata := ItemStateImg - 1;
end;
Sender.TVItemStateImg[prn] := ItemStateImg;
end;
end;
inc(j);
FCurNode := FCurNode.ldata;
end;
if Sender.TVItemChild[prn] > 0 then Enum(Sender.TVItemChild[prn], CheckBoxes, CheckBoxIndex);
Enum(Sender.TVItemNext[prn], CheckBoxes, CheckBoxIndex);
end;
end;

--- Добавлено в 2022-04-23 15:42:53

Прикол с наследованием распространяется не только на -1, но и на все остальные значения. Я пока не знаю как это закостылять, попробую подумать над этим. Код выше имеет защиту только от родительского -1.

Редактировалось 1 раз(а), последний 2022-04-23 15:42:53
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#33: 2022-04-23 15:59:29 ЛС | профиль | цитата
nesco писал(а):

Прикол с наследованием распространяется не только на -1, но и на все остальные значения. Я пока не знаю как это закостылять, попробую подумать над этим. Код выше имеет защиту только от родительского -1.

Кастыль работает, да тоже заметил если в субе снять чек и тыкнуть на родителя то присвоится индекс родителя.
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#34: 2022-04-23 16:18:44 ЛС | профиль | цитата
ric писал(а):
если в субе снять чек и тыкнуть на родителя то присвоится индекс родителя.

Чек по родителю и должен изменить чеки всех наследников, так и должно работать. А вот при сворачивании и разворачивании узла изменяться, КМК, не должно.
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#35: 2022-04-23 16:46:58 ЛС | профиль | цитата
nesco писал(а):

Чек по родителю и должен изменить чеки всех наследников, так и должно работать.

Это да но, я тукаю не чек а имя родителя и тоже происходит присвоение от родителя, а чек не менялся.
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#36: 2022-04-23 17:28:34 ЛС | профиль | цитата
Вроде вот так нормально работает


function WndOnCheck(Sender: PControl; var Msg: TMsg; var Rslt: Integer): Boolean;
const
NM_FIRST = 0;
NM_CLICK = NM_FIRST - 2;
NM_CUSTOMDRAW = NM_FIRST - 12;
type
tagNMITEMACTIVATE = packed record
hdr: TNMHdr;
iItem: Integer;
iSubItem: Integer;
uNewState: UINT;
uOldState: UINT;
uChanged: UINT;
ptAction: TPoint;
lParam: LPARAM;
uKeyFlags: UINT;
end;
PNMItemActivate = ^TNMItemActivate;
TNMItemActivate = tagNMITEMACTIVATE;
var
NMOD: PNMItemActivate;
fClass: ThiTreeViewTrain;
fd: PData;
where: dword;
ItemStateImg, i: integer;

procedure Enum(prn: cardinal; CheckBoxes: boolean; CheckBoxIndex: integer);
var
j: integer;
FCurNode: PData;
begin
if prn > 0 then
begin
FCurNode := PData(Sender.TVItemData[prn]);
j := 0;
while FCurNode <> nil do
begin
if CheckBoxes and (j = CheckBoxIndex) and (ItemStateImg <> ToInteger(FCurNode^) + 1) then
begin
if _IsInteger(FCurNode^) then
FCurNode.idata := ItemStateImg - 1
else if _IsStr(fd^) then
FCurNode.sdata := Int2Str(ItemStateImg - 1)
else
begin
FCurNode.idata := ItemStateImg - 1;
FCurNode.sdata := Int2Str(ItemStateImg - 1);
FCurNode.rdata := ItemStateImg - 1;
end;
Sender.TVItemStateImg[prn] := ItemStateImg;
break;
end;
inc(j);
FCurNode := FCurNode.ldata;
end;
if Sender.TVItemChild[prn] > 0 then Enum(Sender.TVItemChild[prn], CheckBoxes, CheckBoxIndex);
Enum(Sender.TVItemNext[prn], CheckBoxes, CheckBoxIndex);
end;
end;

begin
Result := false;
fClass := ThiTreeViewTrain(Sender.Tag);
with fClass do
begin
if Msg.message = WM_NOTIFY then
begin
NMOD := Pointer( Msg.lParam );
if (NMOD.hdr.code = NM_CLICK) then
PostMessage(Sender.Handle, WM_STATECHANGED, 0, Sender.TVItemAtPos(Ms.X, Ms.Y, where));
end;
if (Msg.message = WM_STATECHANGED) and (Msg.LParam <> 0) then
begin
ItemStateImg := Sender.TVItemStateImg[Msg.LParam];

fd := Sender.TVItemData[Msg.LParam];
i := 0;
while fd <> nil do
begin
if _prop_CheckBoxes and (i = _prop_CheckBoxIndex) and (ItemStateImg <> ToInteger(fd^) + 1) then
begin
if _IsInteger(fd^) then
fd.idata := ItemStateImg - 1
else if _IsStr(fd^) then
fd.sdata := Int2Str(ItemStateImg - 1)
else
begin
fd.idata := ItemStateImg - 1;
fd.sdata := Int2Str(ItemStateImg - 1);
fd.rdata := ItemStateImg - 1;
end;
if _prop_SetCheckOnChild then
Enum(Sender.TVItemChild[Msg.LParam], _prop_CheckBoxes, _prop_CheckBoxIndex);
break;
end;
inc(i);
fd := fd.ldata;
end;
end;
end;
end;
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#37: 2022-04-23 17:46:33 ЛС | профиль | цитата
Работает как надо
nesco писал(а):

Я пока не знаю как это закостылять

Закостылял или накостылял все таки
nesco Благодарю за помощь.
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#38: 2022-04-23 17:50:54 ЛС | профиль | цитата
ric писал(а):
Работает как надо

Ты еще потестируй, потом добавлю на SVN.
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#39: 2022-04-23 18:29:07 ЛС | профиль | цитата
ок
карма: 1

0
Ответов: 187
Рейтинг: 3
#40: 2022-04-24 14:41:53 ЛС | профиль | цитата
nesco писал(а):

Ты еще потестируй, потом добавлю на SVN.

Работает по тестировал как мог нечего не заметил
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#41: 2022-04-24 17:16:30 ЛС | профиль | цитата
ric писал(а):
Работает по тестировал как мог нечего не заметил

А я вот заметил
Схема

Add(MainForm,16077975,364,301)
{
Width=614
Height=275
Position=1
Point(Handle)
link(onCreate,12035853:doTimer,[])
}
Add(TreeViewTrain,1574694,525,364)
{
Width=264
Height=236
Align=1
Name="main"
RightClickSelect=0
IconsManager="ico"
CheckBoxes=0
SetCheckOnChild=0
ParentIDIndex=2
IDIndex=1
IconIndex=3
CheckBoxIndex=4
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
Point(onKillFocus)
Point(IDAtPos)
Point(DataAtPos)
Point(onDrop)
Point(doSetFocus)
Point(doExpand)
link(onMouseUp,8665795:doEvent1,[])
}
Add(TVT_AddNode,3105964,581,308)
{
TreeView="main"
}
Add(ArrayEnum,10500446,469,315)
{
link(onItem,11917214:doMT,[])
link(onEndEnum,1574694:doExpand,[(510,328)(510,384)])
link(Array,4902202:Array,[])
}
Add(MT_String,11917214,525,308)
{
link(onResult,3105964:doAddNode,[])
}
Add(Timer,12035853,413,315)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,10500446:doEnum,[])
}
Add(ListBox,13100349,763,392)
{
Left=295
Width=220
Height=235
}
Add(TVT_EnumNodes,3715868,623,392)
{
TreeView="main"
link(onEnum,3144293:doString,[])
}
Add(FormatStr,3144293,672,392)
{
DataCount=5
Mask="%5 - %1"
link(onFString,13100349:doAdd,[])
}
Add(Hub,8665795,581,385)
{
link(onEvent1,13100349:doClear,[(606,391)(606,384)(739,384)(739,405)])
link(onEvent2,3715868:doEnum,[])
}
Add(StrList,4902202,455,238)
{
Strings=#20:категория 1;1;-1;1;1|21:категория 2;2;-1;0;0 |13:sub 1;4;2;0;0|14:sub 11;5;4;2;0|15:sub 12;6;4;2;-1|14:sub 13;7;4;2;0|13:sub 2;8;2;0;0|13:sub 3;9;2;0;0|21:категория 3;3;-1;0;-1|15:sub 1;10;3;2;-1|15:sub 2;11;3;2;-1|15:sub 3;12;3;2;-1|
}
Add(IconsManager,7094788,525,238)
{
Name="ico"
Icons=['Icon'=[ZIP5E07000078DACD934112C2200C453FD3053770BA74E9B2C7F0581C8D837810174ED3503462118AC08C4D13164CF2FA7F3A05143FE30877E2AA8113800B175F6182BF7771D638465014BD3815284A4405675792BDD94CCA780B2784B4737C4FE86E739670A4214328D94FAC4D08F2A23A4E38D2C2898D977078D2E7DB575ACFAB779BBF724AF43C51B59CDDA5E53929A7E2F72BC700922D7ACCBA44CEEE9CFFFAEAF2BD8E13346BD063E052A0BB8293693E4A5595C5B0FE430B04F81071],'Icon'=[ZIP5E07000078DAED94210F825014858F4983D9919CD168331AF5FFD82CCC64B3D96C369BCD860EC7AC069A9B3AFF80240C6CF880BD797DDC870F6771F3F05DC6BB070E77EC0DA0220ECB4272C6A00A3400B44589163AC8FA895A55FC952A962AB836CCF9D8FD5ECEF195BC65229F92BED1E7ACE2793C099DDCE328C85143B81C18E438125DDF31F82C6B82320FD3D7CFB322E4EF642C4DCE92C0EEE7A5D97E5E10A077DF6A4E28EB52CD08655D455389AECFBA794D24BA3EEBB21A4B940EB5C66651230EE496261A127EF84FFEAC5D1FF1294C2B6ADAB8D7BB08365D5CB7A22E315C37847B10B5E9C30DC4FA96D5F59C55B017CFD46C44BD67E6036D86ED08],'Icon'=[ZIP5E07000078DAD5956B4C536718C70F59321293393687435D16B35B302EB864D308BAB8647371CB0C1765C864385C3670A0D862B8295AA0DC61DCD44D708E4926024245A00C1D2A2A0814E805A5EDB99F52289C9E5BDB538AD907F79E035B8C64DFF6617BFB7B9F3CE739FFFEDEF7DB81203FF00B0A82A40AEDF287A0D5100405830D46D03BD0E25C5AEBFDA1FFC33A999E969E9A9C9E9AB29C0C99F47F26E3688AF2484A6D4DCDF9B8B0EAC84D5511214F13BEAC59466578C899A84D87DEDF90792CED76C5E107F77B8C035A894109C3A076E911704F6BBAF7C4E340F76266B1370C681FDEB8A48EDB95A954DCF9B512F32DC0BC07E13DB08C5506E60444F022146C1BEBB099FB61DE6DE5C0D0050B222C2C2561CE4DCC5205C95F662A9503974A508FD732C75A690E00D39C658E3399F4F6D1F6BE3BBA9D5F77472734587AEB2D38A61FBC65D777A33376EB1C6F057919DC41164A1EC5FDA6524CF481BFC34E1EA679C4C95FE8B67C72F04A5D71EDE5BAD321F9A35BD503BDB5D905AA9F22E21AAFFF523F6D9FB43A5DB07CA2D5C991B35471721CB88FAEB908F7FA509A030600C6B0B94D862D65639BBFEDDCA9D4C41BC5987EFAC3033FBF9DAC7D25575774A689A686119A95C29287A7E6C89294FD990AC5587311214A1ECCC9A38C7B586F3C373899833F8ABFE9F8AC194DD08B9F0FBBB637983FBA3EB375C89DD5DA63EA3C6BC7C651C6053CA893B7CD916587BF00F7196D019E0520C1590171705129D7DF4BBC7164C49566799434317F60DC1333C4478C899F8EF2DB7A66DE88ED8A4D68301B4710C60D24A853B0D164B9ECD1B71690E03E4E9E60052BCD27B5C031AD689A51FCCEE4CD9B14CEF5F4C765176F2EED7BB7090DD1106F55E93F2EBEF970428FCA1ECC294CD164C511E05118AFA8497101973D282B9CB7FB54E41F59D68544A3F7B769776F67576C54E4C643D5C18DC446AD3DF8D65CF45DEA817D1A6304C9C308769AF83E3516DCC7D8A6A6BC0B04237980EDAEC3FDA39E4DED67BE3188BFCFB87BBBB4B17BA2B6975EFC40E709EBA2F2FB4634388DB12E9C1170860775DA49541E051E85A94D4DFEED61789215DA6FE3F18DE84183B76FDAD5D3D9BD2F2A7247C5C51DC6F9B036C4A01FB6731C484A3CE1C9522A26AFE6525E1F291B4846205997D121D4219E32581C25C8EAB2A26DA1A119B567B3106F9689B1D0520C48E430389A9F6588D3CA7DC0035F53D9BC3E8AE12956C2C6F2532C4F301C068E434C753525E111113DBDDD36CF3CC84CC919390C3CD2C56619ECB43246F2749CB4893E8AF7D8048028555E941BD1C6F3D629627CC248314EBB7B5E9E78965E49310FC9791C34F2C3B1E8EC34C558CDEEA16BB52357CB463ACA751DE5A0825E2757A9015553BAF8767132A229070C4BB54CA72937B417D6268566A72BB45F3DDB16EDD7BAF7695A961AA8652FB4348C96869AFD2B3AE257B6C7FA5F8D5B511FF35A53C29BA57B0255C73386142B4D27D69973D6987382CC278240B52CF6D2E36AF389C0C9E381E6E3AB26B35F3067BFF8302B002FD960ABDA82146FC0ABC2CEAB0E5FCE4FBE90287D0B1C0DBBB1C2D789A2F5847A2D91FFB2446E2091B71A57AF21F2D612EA7538203F0857BD84AB5661A702B09CE7F093A03E8F9F0AC0F302F1C257FF9B1F8BC74B4B055AE85FD97E603FF397F6F19FD840E3D7]]
}

Установи Chek на Sub 1 и посмотри на Sub 12.

--- Добавлено в 2022-04-24 17:22:02

После проверки на старом коде можешь обновиться с SVN, там окончательная версия с исправленным последним багом.

Редактировалось 2 раз(а), последний 2022-04-24 17:22:39
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Ответов: 187
Рейтинг: 3
#42: 2022-04-24 18:21:40 ЛС | профиль | цитата
nesco писал(а):

Установи Chek на Sub 1 и посмотри на Sub 12.

--- Добавлено в 2022-04-24 17:22:02

После проверки на старом коде можешь обновиться с SVN, там окончательная версия с исправленным последним багом.

Это хорошо
карма: 1

0
Ответов: 187
Рейтинг: 3
#43: 2022-04-25 19:58:55 ЛС | профиль | цитата
nesco подскажи как сделать чтоб можно было менять имя ветки прямо в дереве.
карма: 1

0
Ответов: 187
Рейтинг: 3
#44: 2022-04-28 12:59:46 ЛС | профиль | цитата
А кто подскажет как это использовать (UseHashMap)

--- Добавлено в 2022-04-28 13:10:37

nesco еще одна ошибка нашлась не существенная.
При переносе узла из категории 3 в категорию 2 на субе отображается чек(со снятым флажком) суб имеет -1 индекс, и чек должен отсутствовать.

Add(MainForm,16077975,364,301)
{
Width=614
Height=275
Position=1
Point(Handle)
link(onCreate,12035853:doTimer,[])
}
Add(TreeViewTrain,1574694,525,364)
{
Width=264
Height=236
Align=1
Name="main"
RightClickSelect=0
IconsManager="ico"
DragDrop=0
CheckBoxes=0
SetCheckOnChild=0
ParentIDIndex=2
IDIndex=1
IconIndex=3
CheckBoxIndex=4
Point(onMouseMove)
Point(onMouseDown)
Point(onMouseUp)
Point(onKillFocus)
Point(IDAtPos)
Point(DataAtPos)
Point(doSetFocus)
Point(doExpand)
Point(DropAccept)
link(onMouseUp,8665795:doEvent1,[])
link(DropAccept,1574694:IDAtPos,[(531,352)(569,352)(569,414)(538,414)])
}
Add(TVT_AddNode,3105964,581,308)
{
TreeView="main"
}
Add(ArrayEnum,10500446,469,315)
{
link(onItem,11917214:doMT,[])
link(onEndEnum,1574694:doExpand,[(510,328)(510,384)])
link(Array,4902202:Array,[])
}
Add(MT_String,11917214,525,308)
{
link(onResult,3105964:doAddNode,[])
}
Add(Timer,12035853,413,315)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,10500446:doEnum,[])
}
Add(ListBox,13100349,763,392)
{
Left=295
Width=220
Height=235
}
Add(TVT_EnumNodes,3715868,623,392)
{
TreeView="main"
link(onEnum,3144293:doString,[])
}
Add(FormatStr,3144293,672,392)
{
DataCount=5
Mask="%5 - %1"
link(onFString,13100349:doAdd,[])
}
Add(Hub,8665795,581,385)
{
link(onEvent1,13100349:doClear,[(606,391)(606,384)(739,384)(739,405)])
link(onEvent2,3715868:doEnum,[])
}
Add(StrList,4902202,455,238)
{
Strings=#20:категория 1;1;-1;1;1|21:категория 2;2;-1;0;0 |13:sub 1;4;2;0;0|14:sub 11;5;4;2;0|15:sub 12;6;4;2;-1|14:sub 13;7;4;2;0|13:sub 2;8;2;0;0|13:sub 3;9;2;0;0|21:категория 3;3;-1;0;-1|15:sub 1;10;3;2;-1|15:sub 2;11;3;2;-1|15:sub 3;12;3;2;-1|
}
Add(IconsManager,7094788,525,238)
{
Name="ico"
Icons=['Icon'=[ZIP5E07000078DACD934112C2200C453FD3053770BA74E9B2C7F0581C8D837810174ED3503462118AC08C4D13164CF2FA7F3A05143FE30877E2AA8113800B175F6182BF7771D638465014BD3815284A4405675792BDD94CCA780B2784B4737C4FE86E739670A4214328D94FAC4D08F2A23A4E38D2C2898D977078D2E7DB575ACFAB779BBF724AF43C51B59CDDA5E53929A7E2F72BC700922D7ACCBA44CEEE9CFFFAEAF2BD8E13346BD063E052A0BB8293693E4A5595C5B0FE430B04F81071],'Icon'=[ZIP5E07000078DAED94210F825014858F4983D9919CD168331AF5FFD82CCC64B3D96C369BCD860EC7AC069A9B3AFF80240C6CF880BD797DDC870F6771F3F05DC6BB070E77EC0DA0220ECB4272C6A00A3400B44589163AC8FA895A55FC952A962AB836CCF9D8FD5ECEF195BC65229F92BED1E7ACE2793C099DDCE328C85143B81C18E438125DDF31F82C6B82320FD3D7CFB322E4EF642C4DCE92C0EEE7A5D97E5E10A077DF6A4E28EB52CD08655D455389AECFBA794D24BA3EEBB21A4B940EB5C66651230EE496261A127EF84FFEAC5D1FF1294C2B6ADAB8D7BB08365D5CB7A22E315C37847B10B5E9C30DC4FA96D5F59C55B017CFD46C44BD67E6036D86ED08],'Icon'=[ZIP5E07000078DAD5956B4C536718C70F59321293393687435D16B35B302EB864D308BAB8647371CB0C1765C864385C3670A0D862B8295AA0DC61DCD44D708E4926024245A00C1D2A2A0814E805A5EDB99F52289C9E5BDB538AD907F79E035B8C64DFF6617BFB7B9F3CE739FFFEDEF7DB81203FF00B0A82A40AEDF287A0D5100405830D46D03BD0E25C5AEBFDA1FFC33A999E969E9A9C9E9AB29C0C99F47F26E3688AF2484A6D4DCDF9B8B0EAC84D5511214F13BEAC59466578C899A84D87DEDF90792CED76C5E107F77B8C035A894109C3A076E911704F6BBAF7C4E340F76266B1370C681FDEB8A48EDB95A954DCF9B512F32DC0BC07E13DB08C5506E60444F022146C1BEBB099FB61DE6DE5C0D0050B222C2C2561CE4DCC5205C95F662A9503974A508FD732C75A690E00D39C658E3399F4F6D1F6BE3BBA9D5F77472734587AEB2D38A61FBC65D777A33376EB1C6F057919DC41164A1EC5FDA6524CF481BFC34E1EA679C4C95FE8B67C72F04A5D71EDE5BAD321F9A35BD503BDB5D905AA9F22E21AAFFF523F6D9FB43A5DB07CA2D5C991B35471721CB88FAEB908F7FA509A030600C6B0B94D862D65639BBFEDDCA9D4C41BC5987EFAC3033FBF9DAC7D25575774A689A686119A95C29287A7E6C89294FD990AC5587311214A1ECCC9A38C7B586F3C373899833F8ABFE9F8AC194DD08B9F0FBBB637983FBA3EB375C89DD5DA63EA3C6BC7C651C6053CA893B7CD916587BF00F7196D019E0520C1590171705129D7DF4BBC7164C49566799434317F60DC1333C4478C899F8EF2DB7A66DE88ED8A4D68301B4710C60D24A853B0D164B9ECD1B71690E03E4E9E60052BCD27B5C031AD689A51FCCEE4CD9B14CEF5F4C765176F2EED7BB7090DD1106F55E93F2EBEF970428FCA1ECC294CD164C511E05118AFA8497101973D282B9CB7FB54E41F59D68544A3F7B769776F67576C54E4C643D5C18DC446AD3DF8D65CF45DEA817D1A6304C9C308769AF83E3516DCC7D8A6A6BC0B04237980EDAEC3FDA39E4DED67BE3188BFCFB87BBBB4B17BA2B6975EFC40E709EBA2F2FB4634388DB12E9C1170860775DA49541E051E85A94D4DFEED61789215DA6FE3F18DE84183B76FDAD5D3D9BD2F2A7247C5C51DC6F9B036C4A01FB6731C484A3CE1C9522A26AFE6525E1F291B4846205997D121D4219E32581C25C8EAB2A26DA1A119B567B3106F9689B1D0520C48E430389A9F6588D3CA7DC0035F53D9BC3E8AE12956C2C6F2532C4F301C068E434C753525E111113DBDDD36CF3CC84CC919390C3CD2C56619ECB43246F2749CB4893E8AF7D8048028555E941BD1C6F3D629627CC248314EBB7B5E9E78965E49310FC9791C34F2C3B1E8EC34C558CDEEA16BB52357CB463ACA751DE5A0825E2757A9015553BAF8767132A229070C4BB54CA72937B417D6268566A72BB45F3DDB16EDD7BAF7695A961AA8652FB4348C96869AFD2B3AE257B6C7FA5F8D5B511FF35A53C29BA57B0255C73386142B4D27D69973D6987382CC278240B52CF6D2E36AF389C0C9E381E6E3AB26B35F3067BFF8302B002FD960ABDA82146FC0ABC2CEAB0E5FCE4FBE90287D0B1C0DBBB1C2D789A2F5847A2D91FFB2446E2091B71A57AF21F2D612EA7538203F0857BD84AB5661A702B09CE7F093A03E8F9F0AC0F302F1C257FF9B1F8BC74B4B055AE85FD97E603FF397F6F19FD840E3D7]]
}


Редактировалось 1 раз(а), последний 2022-04-28 13:10:37
карма: 1

0
Разработчик
Ответов: 26013
Рейтинг: 2108
#45: 2022-04-28 13:33:47 ЛС | профиль | цитата
ric писал(а):
еще одна ошибка нашлась не существенная

Я систему дропа вообще не трогал. Даже пока не знаю, как решить данный косяк.
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)