Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
2. Nov 2012
So sehen jetzt meine beiden Klassen aus und funktionierten so wie Sie sollen :
TModifyActionList = (lnNone, lnChange, lnDelete);
TDegree = class
private
FOnChange : TNotifyEvent;
FModifyAction : TModifyActionList;
FID : Integer;
FDegree : string;
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
2. Nov 2012
Das OnChange soll dann ausgeführt werden, wenn ein Objekt hinzugefügt oder geändert wird. Das OnDelete soll dann ausgeführt werden, wenn ein Object aus der ObjectList gelöscht wird.
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
1. Nov 2012
Ich glaube jetzt habe ich es verstanden. Korrigiere mich, wenn ich falsch liege. Das OnChange funktioniert deshalb, weil die Methode von OnChange nur das Objekt ändert und nicht die Liste. Mein OnDelete ändert aber meine Liste und deshalb muss meine Methode für OnDelete expliziet der ObjectList zugewiesen werden. Richtig oder falsch ?
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
1. Nov 2012
Im Beitrag 7, siehst Du im Anhang, wie der Setter von FOnDelete arbeitet. Ebenfalls im gleichen Beitrag hatte ich geschrieben, dass ein Assigned(FOnDelete) immer False ergibt.
Ich habe noch ein bisschen weiter getestet. Wenn ich die TCustomObjectList<T: class> für die Klasse TDegree folgendermaßen erstelle :
DegreeList := TCustomObjectList<TDegree>.Create;
DegreeList.OnDelete :=...
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
1. Nov 2012
Ich habe es jetzt mal getestet. Wenn ich bei der Zeile if Action = cnRemoved then einen Breakpoint setze, steht der Count von der ObjectList um einen reduziert. Das heißt für mich, dass erst das Objekt gelöscht wird und dann Notify ausgeführt wird. Um das Ergebnis noch zu verifizieren, habe ich die Procedure Delete mit in meine abgeleitet Klasse übernommen. Es ist wirklich so, das erst die Delete...
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
1. Nov 2012
Bei den Klassen geht er in den Setter und weißt auch den richtigen Wert zu. Kann es vielleicht daran liegen, dass erst der Delete-Befehl ausgeführt wird und er dann ins Notify springt von TCustomObjectList<T: class> ?
Forum: Object-Pascal / Delphi-Language
Delphi
by RWarnecke,
1. Nov 2012
Hallo zusammen,
ich habe folgende Klassen erstellt :
type
TModifyActionList = (lnNone, lnAdded, lnChange, lnDelete);
TDegree = class
private
FOnChange : TNotifyEvent;