Einzelnen Beitrag anzeigen

Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#3

Re: Mehrere erzeute Objekte in Schleife wieder löschen?

  Alt 19. Mär 2004, 12:45
Hallo,
für unterschiedliche Edits benötigst Du unterschiedliche Instanzen à la Edit1, Edit2. ... EditN.
Momentan überschreibst Du immer wieder ein und das selbe Editfeld (MyEdit) Dies könnte auch
der Grund der Zugriffsverletzung sein, da hier der von der Instanz (MyEdit) benötigte Speicherplatz überschieben wird, bevor er freigegeben wurde!
Wir erstellen unterschiedliche Edits mal so:
Delphi-Quellcode:
 MyEdit1 := TEdit.Create(self); // EDIT NUMERO 1 !!!
 with MyEdit1 do
    begin
      Name := 'NewEditAuftragArt_' + IntToStr(intAuftragAnzahlEdits);
      Parent := Form1.ScrollBox1;
      Font.Size := 10;
      Width := 33;
      Left := 81;
      Top := 80 + ((intAuftragAnzahlEdits-1) * 80);
      Text := 'A';
      MaxLength := 1;
      OnKeyPress := AuftragArtCheck;
      OnEnter := AuftragAuftragErfassenEditOnEnter;
      OnChange := AuftragAuftragErfassenEditOnEnter;
     end;
  MyEdit2 := TEdit.Create(self);
// hier fängt edit 2 an!!!
  with MyEdit2 do // EDIT NUMERO 2 !!!
    begin
      Name := 'NewEditAuftragArtNr_' + IntToStr(intAuftragAnzahlEdits);
      Parent := Form1.ScrollBox1;
      Font.Size := 10;
      Width := 60;
      Left := 142;
      Top := 80 + ((intAuftragAnzahlEdits-1) * 80);
      Text := '';
      OnKeyPress := AuftragArtikel;
      OnEnter := AuftragAuftragErfassenEditOnEnter;
      OnChange := AuftragAuftragErfassenEditOnEnter;
     end;
So, und danach werden die Edits freigegeben mit: edit1.free und edit2.free.
Frage:
Warum machst Du Dir so'nen Stress mit dynamischen Edits? Warum nicht statisch?

Nachtrag:
Delphi-Quellcode:
//Sowas hier ...
   MyLabel := nil;
   MyEdit := nil;
   MyCheckBox := nil;
//...ersetze bitte durch
  MyLabel.free;
  MyEdit.free;
  MyCheckBox.free;
DANNYBOY
How much wood would a wood-chuck chuck if a wood-chuck would chuck wood?
Check this out.
DANNYBOY
  Mit Zitat antworten Zitat