Thema: Delphi Virtual vs. Dynamic

Einzelnen Beitrag anzeigen

Benutzerbild von Gloegg_FHBI
Gloegg_FHBI

Registriert seit: 28. Nov 2006
Ort: Neuss
46 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Virtual vs. Dynamic

  Alt 16. Dez 2010, 15:46
Delphi-Version: 2010
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?
  Mit Zitat antworten Zitat