Forum: Algorithmen, Datenstrukturen und Klassendesign
by Captain Albern,
15. Feb 2019
Für spätere Leser, die vielleicht die gleiche Frage gesucht haben und hier gelandet sind, ich habe folgendes geändert.
In TProtoBlock, die Methode auf abstract gesetzt und aus dem Implementation-Teil entfernt...
procedure Draw(var Dst:TImage);virtual;abstract;
In TBitmapBlock ein override eingefügt. Ohne das gibt es zur Laufzeit einen Fehler...
procedure Draw(var Dst:TImage);override;
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Captain Albern,
15. Feb 2019
Danke Klaus, der Hinweis ab "abstract" hat gefehlt. Es funktioniert jetzt so, wie ich es mir vorstelle.
Zu der Frage:
Warum denkst Du, dass hier: ... TProtoBlock.draw aufgerufen wird?
Ich habe Test-Code eingetragen, der mir zeigt, welche Methode aufgerufen wird. Außerdem habe ich den Code mit dem Debugger schrittweise durchlaufen lassen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Captain Albern,
15. Feb 2019
Guten Tag,
erstmal vorab: Mein Code funktioniert schon (nicht der Code unten, das ist ein verkürztes Beispiel), er scheint mir aber unnötig aufwändig zu sein. Ich denke, es gäbe eine einfachere Lösung, wenn ich mich besser auskennen würde. Kennt sich jemand besser aus ? :wink:
Ich verwende eine Klasse "TProjekt", die ein Array von Objekten "TProtoBlock" enthält. Von diesem TProtoBlock ist...