Einzelnen Beitrag anzeigen

RaGro

Registriert seit: 10. Aug 2008
Ort: Griesheim
15 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

TLabel Probleme beim freigeben

  Alt 10. Aug 2008, 13:36
Hallo @all

Ich habe ein kleines Problem mit dem ich nicht weiter komme.
Während der Laufzeit des Programm erstelle ich TLabels und will die auch wieder während der Laufzeit löschen.
Nun, also zum Problem...
Ich kann die TLabels nicht mehr löschen da ich immer den Fehler des Index außerhalb des gültigen Bereiches komme.
Der Index ist jedoch zum Zeitpunkt 5 und componentcount hat 62 Objekte zu diesem zeitpunkt...

Ein Hinweis noch... Lösche ich den TLabel mit Namen direkt funktioniert es (z.B. Label6.free)
Zur Entwurfszeit weiß ich jedoch noch nicht wieviele TLabel ich bekomme.

Wo ist mein Fehler?????



Hier erst einmal der Source Code zum erstllen.

Delphi-Quellcode:
procedure TForm6.BitBtn10Click(Sender: TObject);
var
x,y:integer;
a:TLabel;
begin
  x:=1;
  for y:=0 to componentcount-1 do
  if components[y]is TLabel then x:=x+1;
  a:=TLabel.Create(Form6);
  a.name:='Label'+inttostr(x);
  a.Parent:=Form6;
  a.Left:=100;
  a.Font.Size:=12;
  a.Font.Style:=[fsbold];
  a.Top:=50;
  a.tag:=37;
  a.OnMouseMove:=Image1Mousemove;
  a.OnClick:=statictext6click;
 end;

Hier das Procedure zum löschen.

Delphi-Quellcode:
procedure TForm6.BitBtn8Click(Sender: TObject);
var
x:integer;
f:textfile;
a:Timage;
b:TMemo;
c:TLabel;
s:string;
begin
  opendialog1.filterindex:=1;
  if OpenDialog1.Execute then
  begin
   x:=0;
   while x<componentcount-1 do
   if (components[x])is TLabel then
    begin
     with components[x]do
     begin
      if (Name<>'Label1')and(Name<>'Label2')and(Name<>'Label3')
          and(Name<>'Label4')and(Name<>'Label5')and(Name<>'Form6')
          then
      begin
       components[x].free;
       x:=x-1;
      end;
     end;

    x:=x+1;
   end;


Danke für eure Hilfe im Vorraus

Rainer Groer

[edit=Phoenix]Delphi-Tags eingefügt. Das nächste mal bitte selber machen. Mfg, Phoenix[/edit]
Rainer Groer
  Mit Zitat antworten Zitat