free, component
Hejjeg har lavet nogle tradiobutton'er, og vil så godt have dem fjernet igen. det gør man ved at frigøre dem, ikke? men det virker ikke. I øvrigt siger den, at der er nul komponenter, hvis jeg tæller i min onclick-procedure, der hører til mine tradiobutton'er. hvorfor dog det? al den relevante kode er her:
lidt hjælp ville være dejligt, tak.
Her skulle de gerne frigives:
procedure TForm1.N11Click(Sender: TObject);
var
i: integer;
begin
showmessage(inttostr(componentcount));
showmessage(inttostr(memo5.Lines.count));
while componentcount > componentcount-memo5.Lines.Count do
begin
if (Components[i] is tradiobutton) then
(Components[i] as tradiobutton).Free;
end;
end;
her laves de:
procedure TForm1.ndrenavn1Click(Sender: TObject);
var
radito: tradiobutton;
I: integer;
begin
listbox1.Visible:=false;
memo3.Visible:=false;
memo2.Visible:=false;
edit1.Visible:=true;
edit1.Clear;
edit2.Visible:=false;
button1.Visible:=false;
label1.Visible:=false;
label2.Visible:=false;
for i:=1 to memo5.Lines.Count do
begin
radito:=tradiobutton.Create(self);
radito.Parent:=Self;
radito.Name:='rad'+inttostr(i);
radito.Caption:=memo5.Lines[i-1];
radito.Left:=90;
radito.Top:=40+i*18;
radito.tag:=i;
radito.onclick:=skifte;
end;
end;
onclick-proceduren:
procedure tform1.skifte(sender: tobject);
var
i: integer;
begin
with sender as tradiobutton do begin
if edit1.Text='' then exit;
memo5.lines[tag-1]:=edit1.text;
memo5.lines.SaveToFile(sti+'data\navne.txt');
showmessage(tradiobutton(findcomponent('rad1')).caption);
//while componentcount >= componentcount-memo5.Lines.Count do
//showmessage(inttostr(componentcount));
//for i:=0 to componentcount-1 do
//if (Components[i] is tradiobutton) then showmessage(inttostr(i));
ShellExecute(0, nil, pchar(Application.ExeName), nil, nil, SW_NORMAL);
Close;
end;
end;
