AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim löschen von Objekten

Ein Thema von Delphi-Narr · begonnen am 30. Jan 2010 · letzter Beitrag vom 30. Jan 2010
 
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

Fehler beim löschen von Objekten

  Alt 30. Jan 2010, 18:09
Hallo, ich habe einen Mapeditor erstellt, der aus Shapes, die man auf die Form zieht, eine Karte erstellt.
Dazu werden die Objekte mit Namen, Left, Top, Width und Heigth in einer Liste (SL) gespeichert, um die Karte hinterher wieder laden zu können:

Inhalt SL:
Delphi-Quellcode:
Name //Zufällig erstellt
Left
Top
Width
Height
Dies geschieht beim MouseUp-Ereignis der Form.

Außerdem wird den erstellten Objekten ein OnMouseDown-Ereignis zugewiesen, die Prozedur Destroyer.

Diese sieht wie folgt aus:

(Bei "Objekt" handelt es sich um eine Variable des Typs TShape)

Delphi-Quellcode:
procedure TMap.Destroyer(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
var name:string;
    i:integer;
begin
     //Abfrage
     if MessageDLG('Objekt wirklich löschen?',mtcustom,[mbyes,mbno],0)=mrno then exit;
     Name:=(Sender as TShape).name;
     Objekt:=Findcomponent(name) as TShape;
     i:=0;
     //Aus Liste löschen
     while LowerCase(SL[i])<>LowerCase(name) do
     begin
          //Objektnamen suchen
          i:=i+1;
     end;
     //Alle 5 Eigenschaften aus der Liste löschen
     SL.Delete(i);
     SL.Delete(i);
     SL.Delete(i);
     SL.Delete(i);
     SL.Delete(i);

     //Objekt selber löschen
     Sender.Destroy;
end;
Bei Sender.destroy passiert jedoch folgendes: Es werden zusätzlich alle Shapes gelöscht, die nach diesem Shape erstellt wurden. Wo ist da der Fehler???

Liebe Grüße!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz