hi,
tb und tbtn nehm ich halt um den pointer auf das aktuelle Objekt zwischenzuspeichern, die variablen hab ich eh schon deklariert, da ich die auch für die erstellung der Buttons/toolbars verwende. Es sieht außerdem schöner aus als tb.Buttons[j].tag und mit "with" will ich nicht hantieren, da man da ganz schnell blöde Fehler reinbekommt...
zum eigentlichen Problem: ich denke ich verstehe, wie es gemeint ist, jedoch fällt mir spontan keine lösung ein, um performant dies zu realisieren.
so in etwa würde das wohl gehen (genauso leider nicht):
Delphi-Quellcode:
for i:=0 to tb.buttoncount -1 do
begin
j:=i;
while j< tb.buttoncount-1 do
begin
tbtn:=tb.buttons[j];
if tbtn.tag=i+1 then
begin
tbtn.left:=tbtn.tag*tb.buttonWidth+1;
j:=tb.buttoncount-1;
end;
inc(j);
end;
end;
Gruß Frank