Forum: Algorithmen, Datenstrukturen und Klassendesign
by stahli,
2. Okt 2011
FreeAndNil(O);
macht folgendes:
O.Free;
O := nil;
Danach führt ein Zugriff auf O zu einem Fehler.
Wenn das Objekt sebst schon nicht mehr existierte, scheitert FreeAndNil schon selbst.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by stahli,
30. Sep 2011
Das erfolgt bei Ableitungen von TComponent automatisch:
constructor TComponent.Create(AOwner: TComponent);
begin
FComponentStyle := ;
if AOwner <> nil then AOwner.InsertComponent(Self);
end;
destructor TComponent.Destroy;
begin
Forum: Algorithmen, Datenstrukturen und Klassendesign
by stahli,
30. Sep 2011
In den Haltepunkteigenschaften kannst Du auch Bedingen definieren. Du kannst also dafür sorgen, dass die Unterbrechung nur in bestimmten Situationen erfolgt.
Dein Problem (wenn ich es richtig interpretiere) kenne ich beim Löschen eines Controls, das den Focus hat. Windows will dieses später noch einmal neu zeichnen, dann existiert es aber nicht mehr.
Ich habe dies gelöst, indem ich das...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by stahli,
30. Sep 2011
Das muss nicht unbedingt problematisch sein. Zum Zeitpunkt der Click-Behandlung existiert das Objekt ja noch.
Nun wird es in der Click-Behandlung freigeben. Wenn darauf danach nicht mehr (innerhalb des Objektes und außerhalb darauf zugegriffen wird), macht das keine Probleme.
Und selbst wenn noch ein Zugriff auf die Speicherstelle erfolgt, liegen dort noch die bisherigen Objektdaten.
Ob es ein...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by stahli,
30. Sep 2011
Erst einmal herzlich willkommen.
Es ist etwas schwierig, die Abschnitte schnell zu durchblicken.
Mal ein paar Hinweise:
- Die Schleifen müssen ggf. von 0 bis Count-1 laufen.
- Du musst nicht vor jeden Variable "var" deklarieren.
- Du musst in einer Methode von Form1 nicht noch einmal "Form1."MyComponent schreiben.
- "(Sender as TLabel)" kannst Du auch einmalig einer Variable UseLabel...