![]() |
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Zitat:
|
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Grundlegend ist es unlogisch und eigentlich sollte Delphi auch einen Fehler bringen bei dem gleichen Weg mit einer Methode anstatt eines Constructors. Aber durch die besondere Stellung des Konstruktors wird er es wohl akzeptieren, aber ich wage zu bezweifeln, dass er es mit einer Methode so mit sich machen lässt (Behauptung/Vermutung meinerseits ohne es jetzt nachzuprüfen). Zitat:
Delphi-Quellcode:
Wird in deinem Falle immer TImport_Virtual.Create aufgerufen, aber nie der Konstruktor der Ableitung, da dieser nur durch ein überschreiben (sprich dynamischer/virtueller Konstruktor) aufgerufen wird. Durch das überschreiben wird die Methode der am höchsten entwickelten Klasse (von dem Basistyp TImport_Virtual ausgehend spezialisiserter) aufgerufen, da die Konstruktoren durch das überschreiben die alten in der VMT ersetzen. Beim verdecken bzw. definieren eines Constructors ohne irgendwas wird keine Ersetzung durchgeführt.
TImportClassType = class of TImport_Virtual;
|
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Zitat:
|
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Jetzt funktioniert es so:
Delphi-Quellcode:
aber man darf dann im Create nicht inherited Create; aufrufen ;)
type
TImport_Virtual = class(TObject) private //Basisklasse für ImportTyp FFileName: String; FFileExt: String; public FData: TDataArray; constructor Create; virtual; abstract; destructor Destroy; virtual; abstract; function OpenFile(var Err: String):Boolean; virtual; abstract; function CloseFile(var Err: String):Boolean; virtual; abstract; function Analyse(var Err: String):Boolean; virtual; abstract; function GetData(var Dat: TDataArray):Boolean; property FileName: String read FFileName write FFileName; end; TImportClassType = class of TImport_Virtual; TDBFImport = class(TImport_Virtual) private //Import aus DBF-Datei FDBF: TDBFFile; public constructor Create; override; destructor Destroy; override; function OpenFile(var Err: String):Boolean; override; function CloseFile(var Err: String):Boolean; override; function Analyse(var Err: String):Boolean; override; end; |
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Cool,
äh was hatte ich noch in meinem ersten Post geschrieben? MfG Thorsten |
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Zitat:
|
Re: Create wird nicht aufgerufen bei Klassen-Chaos
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz