Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Datenmodule, die nicht von TDataModule kommen

  Alt 25. Jun 2005, 22:56
Hi,
ich hab ein kleines Problemchen, da Delphi nicht ganz kapiert, was ich will. Da ich ein wenig mit OOP rumspielen muss, habe ich eine Basis-TDataModule-Klasse, die ungefähr so aussieht:
Delphi-Quellcode:
type
  TBaseModule = class (TDataModule)
    {...}
  end;
Nun sieht das auch ganz schnuckelig aus. Es wird keine DFM-Datei eingebunden, weil ich der Meinung war, dass ich keine brauche, da sich keine Komponenten auf dem Modul befinden, sondern nur ein paar Felder und ein paar Methoden (teilweise abstrakt). Nun habe ich aber eine Nachfahren-Klasse, die ungefähr so aussieht:
Delphi-Quellcode:
type
  TChildModule = class (TBaseModule)
    {...]
  end;
Hier wird eine Resourcen-DFM-Datei eingebunden, weil sich hier auch einige non-visuelle Komponenten befinden (außerdem werden die abstrakten Methoden implementiert).

Soweit so gut. Das Problem ist, dass Delphi nicht kapiert, dass es sich bei TChildModule um ein Datenmodul handelt, sondern es wie ein Formular behandelt. Das ist schlecht, sehr schlecht sogar, weil in der DFM von TChildModule stehen Dinge drin, die gar nicht existieren, wie z.B. die Eigenschaft Color. Das ist deswegen schlecht, weil dem entsprechend auch die Meldung beim Starten des Programmes kommt:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt xpFileMoverDemo.exe ist eine Exception der Klasse EReadError mit der Meldung 'Eigenschaft Color existiert nicht.' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Wie kann man Delphi dazu bringen, dass er die DFM einfach in Ruhe lassen soll, oder die Klasse TChildModule wie ein Datenmodul handhaben soll?

Chris
  Mit Zitat antworten Zitat