ich bastel hier gerade in einem Projekt mit mehreren Geräten, die an API angebunden werden sollen.
Dazu wollte ich eine Factory verwenden.
Bsp. von taazz:
https://forum.lazarus.freepascal.org/in ... ic=21076.0
Wenn ich jetzt eine der Klassen um einen Constructor erweiter, wird dieser aber nicht aufgerufen.
Code: Alles auswählen
{ TChimp }
TChimp = class(TApe)
public
procedure Print;override;
constructor Create;
end;
...
constructor TChimp.Create;
begin
WriteLn('Loading Chimp!');
end;
Code: Alles auswählen
Affe := TApeFactory.CreateApe(atChimp);
Affe.print;
ReadLn;
Aufgefallen ist mir das in meinem Projekt beim senden an die serielle Schnittstelle eines Geräts - Objekt war nicht instanziiert.Chimp
Ein Breakpoint im Constructor wird vom Debugger auch nicht erreicht.
Das Object, welches ich über die "Factory" übergeben bekomme, habe ich als Bild angehängt.
Geschwärzt bezogen aufs AffenBeispiel:
Code: Alles auswählen
Affe = tChimp{tChimp}
..
var Affe: TApe = CLASS
Grüße,
ich schau morgen wieder rein.