Avatar billede anold Nybegynder
16. januar 2002 - 12:40 Der 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
Avatar billede martinlind Nybegynder
16. januar 2002 - 12:49 #1
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

/Martin
Avatar billede anold Nybegynder
16. januar 2002 - 12:51 #2
Øh NÅ.
Og hvordan gør jeg lige det ???
Avatar billede martinlind Nybegynder
16. januar 2002 - 12:58 #3
f.eks sådan

FLab := TStringList.create;
for Cnt := 0 to AntalLabels do
begin
  FLab.AddObject(\'Lab\'+IntToStr(Cnt),TLabel.Create); 
end;

Så har du en FLab liste med ref\'s til alle de labels du har oprettet
Avatar billede djernaes Nybegynder
16. januar 2002 - 16:45 #4
..
..
  public
    FLabelList : TList;
..

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;
Avatar billede djernaes Nybegynder
16. januar 2002 - 16:45 #5
FList eq FLabelList
Avatar billede anold Nybegynder
17. januar 2002 - 07:10 #6
Hej djernaes
Jeg er lige ved at prøve dit forslag
men jeg får en fejl der siger:
Undeclared identifier: \'FList\'
Hvad er der galt ??
Avatar billede morten_s Nybegynder
17. januar 2002 - 08:24 #7
du skal skrive


  public
    FList : TList;
øverst oppe, se hans kommentar FList eq FLabelList
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB