AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual vs. Dynamic

Ein Thema von Gloegg_FHBI · begonnen am 16. Dez 2010 · letzter Beitrag vom 16. Dez 2010
Antwort Antwort
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
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Virtual vs. Dynamic

  Alt 16. Dez 2010, 16:01
Kann mir jemand etwas genauer beschreiben worin nun der Unterschied liegt und wann man dynamic jemals braucht?
Wurde schon gesagt: Wenn man für ein Zielsystem arbeitet das bezüglich Ram "schwach auf der Brust" ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Virtual vs. Dynamic

  Alt 16. Dez 2010, 17:11
Na ob ein kleiner Eintrag in der VMT da wirklich so viel ausmacht?!
Manche Dinge kann man auch nur als dynamic und nicht als virtual deklarieren ... was war das doch gleich nochmal?
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#4

AW: Virtual vs. Dynamic

  Alt 16. Dez 2010, 17:13
Ganz grob :

Jede virtuellen Methode erhält einen Eintrag in der Virtuellen Methoden Tabelle, jedesmal, bei jedem Nachfolger. Die Methode wird immer über die VMT gerufen.
Dynamische Methoden erhalten nur dann einen Eintrag in der DynamicTable, wenn sie überschrieben werden. Die Methode wird über eine Procedure gerufen, die die Nummer der Methode mit einer Liste vergleicht und bei einem Treffer die dazugehörige Adresse aufruft.
Darum kann man wahrscheinlich eine Dynamische Methode nicht abstract machen

Dass man den Unterschied merkt, kann ich mir heutzutage nicht mehr vorstellen
Glückauf

Geändert von guinnes (16. Dez 2010 um 17:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz