16. januar 2002 - 12:40Der er
6 kommentarer og 1 løsning
Slet dynamisk label
Jeg har et program hvor jeg opretter en del labels dynamisk men hvordan kan jeg slette en af dem igen jeg har prøvet med dette : If Assigned(FLabel) Then Begin FLabel.Free; FLabel:= Nil; end; men det fjerner den sidst oprettet label og ikke den som jeg har valgt
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det fjerner den label du har sat til at \"pege\" på FLabel det er nok fordi du opretter alle dine label\'s med FLabel variablen, du skal ha\' en variable for alle dine label\'s ellers kan du ikke få fat i dem igen
procedure TForm1.OnCreate(sender...); begin FList := TList.Create; end
procedure TForm1.OnDestroy... begin FList.Free; end;
procedure TForm1.CreateLabel(Caption : String); Var Lbl : TLabel; // Temp begin // Opret ny label Lbl := TLabel.Create(self); Lbl.Caption := Caption; Lbl.OnClick := OnDynLabelClick; // Gem en pointer til den nye label, // of gem dens index i tag variablen Lbl.Tag := FList.Add(Lbl); end;
procedure TForm1.DeleteLabel(Idx : Integer); begin if FLabel[Idx] <> NIL Then begin (FLabel[Idx] AS TLabel).Free; FLabel[Idx] := NIL; end; end;
Procedure TForm1.OnDynLabelClick(Sender : TObject); begin Deletelabel((Sender AS TLabel).Tag); end;
public FList : TList; øverst oppe, se hans kommentar FList eq FLabelList
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.