ich komm nicht dahinter wie man ein Objekt sauber einem anderen als property zuweist.
Dazu muss ich etwas ausholen:
1.) TdmSettings_parent (enthält alle applikationsweiten Einstellungen samt Prozeduren zum Lesen und Schreiben)
2.) TdmSettings - abgleitet von TdmSettings_parent (enthält je nach Applikation Programmspezifische Einstellungen)
nun soll z.B. ein INI File eingelesen werden.
Alle nötigen Funktionen dazu möchte ich in eine Klasse (TSettingsManageIni) packen die ich bei Bedarf aufrufe.
Diese Klasse soll die eingelesenen Daten je nach Programm oder Verwendungszweck in ein Objekt vom Typ TdmSettings_parent oder TdmSettings schreiben.
meine naive Idee war dass ich der Klasse TINIManager ein Property verpasse
Code: Alles auswählen
//in TdmSettings_parent sind alle nötigen Funktionen -- die je nach Programm abgeleitete TdmSettings
property poSettings:TdmSettings_parent Read FoSettings;
und das Ziel der Schreibaktion samt den nötigen Funktionen dazu übergebe.
Code: Alles auswählen
//irgendwo im Code
dmSet := TdmSettings.Create;
function TForm1.readfromini: boolean;
var
o:TSettingsManageIni;
begin
result:=true;
o:=TSettingsManageIni.Create;
try
//o.poSettings := dmSet; //geht logischerweise nicht weil poSettings TdmSettings_parent erwartet
o.poSettings := (dmSet As TdmSettings_parent); // Error: No member is provided to access property
//o.poSettings.Assign(dmSet As TdmSettings_parent); //erzeugt einen EConvertError
o.ReadFromIni; //Lesevorgang starten der auch die Ergebnisse schreibt
finally
freeandnil(o);
end;
end;
Wie mache ich das sauber? Oder bin ich da ganz auf dem Holzweg ?