Guten Tag!
Ich habe von einem eigene TDataModule zwei weitere abgeleitet:
Delphi-Quellcode:
TdmSchnittstelle = class(TDataModule)
TdmVariante1 = class(TdmSchnittstelle)
TdmVariante2 = class(TdmSchnittstelle)
Das ganze habe ich über die
IDE gemacht, also nicht selbst Units angelegt und angefangen abzuleiten.
Nun hat jede der beiden Varianten ein eigenes Formular, auf dem die Komponenten zu sehen sind. Ist auch OK soweit.
Die Formulare fangen im Code folgendermaßen an:
Delphi-Quellcode:
inherited dmVariante1: TdmVariante1
inherited dmVariante2: TdmVariante2
Jetzt ist es aber so, das öfters (von der
IDE) die Vererbung "gelöst" wird.
Jedenfalls die der Formulare, da steht dann plötzlich nurnoch:
Delphi-Quellcode:
object dmVariante1: TdmVariante1
object dmVariante2: TdmVariante2
Beim compilieren klappt das noch alles, aber beim Programmstart kommen dann beim Instanziieren folgende Fehlermeldungen:
Code:
Exception EReadError in Modul MyProgram.exe bei 000ZYX.
Fehler beim Lesen von dmVariante1.ClientHeight: Eigenschaft ClientHeight existiert nicht.
Exception EReadError in Modul MyProgram.exe bei 000XYZ.
Fehler beim Lesen von dmVariante2.ClientHeight: Eigenschaft ClientHeight existiert nicht.
Das Ganze passiert dann, wenn ich z.B. bei Variante1 die Größe des Formulars/Datenmoduls ändere.
Lösen kann ich das nur, indem ich mir das Formular als Text anzeigen lass und händisch object zu inherited ändere.
Dann kommt noch die Meldung:
Code:
Fehler beim Lesen von dmVariante1.ClientHeight: Eigenschaft ClientHeight existiert nicht. Den Fehler ignorieren und fortsetzen?
Das gleiche für ClientWidth und Variante2.
Wenn ich das Ignoriere geht alles wieder wunderbar, bis zum nächsten Vorfall.
Was für ein Problem hat die
IDE (oder ich?) hier?
Kann ich in der
IDE irgendwo was einstellen damit sowas nichtmehr passiert?