Hi
Ich bin grade beim schreiben von ein paar Klassen über diese Modifizierer gestolpert.
Delphi-Quellcode:
TBase = class
protected
procedure put(Index : integer; value : boolean); dynamic; abstract;
function get(Index : integer) : boolean; dynamic; abstract;
public
property Channels[Index : integer] : boolean read get write put;
end;
Dies liefert beim compilen aber diese Fehlermeldung:
[DCC Fehler] Unit1.pas(15): E2148 Dynamische Methode oder Methoden zur Nachrichtenbehandlung ist hier nicht erlaubt
Verwendet man nun virtual statt dynamic läuft es wunderbar.
Bei einer kurzen Recherche konnte ich nur finden, das man lieber virtual verwenden soll und das der einzige Unterschied ist, dass virtual etwas mehr Speicher verbraucht, dafür schnelleren Code produziert, während dynamic weniger Speicher braucht aber etwas langsameren Code produziert.
Kann mir jemand etwas genauer beschreiben worin nun der Unterschied liegt und wann man dynamic jemals braucht?