Прошу прощения, если вопрос выглядит глупо, но кажется, что я не могу правильно использовать свою голову в последние часы.Как добавить кнопки, созданные во время выполнения в массив?
У меня есть запись,
type
TMain = record
Sub:Array of TSubMain; //another record
Button:TsSpeedButton; //this is what we need!
end;
переменная
Main:Array of TMain;
и функции:
procedure TFrameSkilLView.CreateButtons(MainBtns,SubMainBtns:byte;title:Array of string);
var i,t,l,w,h:word;
section:string;
begin
l := 41; t:= 57; w := 58; h := 25;
section := 'TOOLBTN_SKILLS_MAIN';
for i := 0 to MainBtns + subMainBtns - 1 do
with TsSpeedButton.Create(nil) do begin
Width := w; Height := h; Top := t; Left := l;
if(i = 0) then SkinData.SkinSection := section + '_C' else skindata.SkinSection := section;
caption := title[i];
Parent := Self;
inc(l,w+4);
if(i = MainBtns - 1) then begin
l := 52; t := 83; w := 64; h := 28;
section := 'TOOLBTN_SKILLS_SUBMAIN';
end;
end;
end;
Позволяет сосредоточиться на петле «для I: = 0 до MainBtns + subMainBtns - 1'.Я хотел бы добавить кнопку, созданную ниже, к массиву, созданному над именем «Main: Array of Tmain».
Он должен выглядеть следующим образом:
for i:=0 to X do
with TsSpeedButton.Create(nil) do begin
Main[i] := this; //where this is the created sSpeedButton.
Howeve, этот код может даже не быть скомпилирован, поэтому я прошу выполнимо способ сделать то, что я пытаюсь сделать.
спасибо.
Хм я нашел гораздо более эффективный способ добиться этого, но я ценю ваш ответ. Принято. :) –
OK. Так что твой лучший способ, просто из любопытства? –