[erledigt] Objekt als Property zuweisen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

[erledigt] Objekt als Property zuweisen

Beitragvon charlytango » 1. Okt 2017, 11:21 [erledigt] Objekt als Property zuweisen

Hi,

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 ?
Zuletzt geändert von charlytango am 1. Okt 2017, 12:52, insgesamt 2-mal geändert.
charlytango
 
Beiträge: 104
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: FPC 3.0; Laz 1.6 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon Soner » 1. Okt 2017, 12:13 Re: Objekt als Property zuweisen

Du hast schon richtig gemacht nur write bei Property vergessen:
poSettings:TdmSettings_parent Read FoSettings WRITE FoSettings;
Soner
 
Beiträge: 364
Registriert: 26. Sep 2012, 23:07
Wohnort: Hamburg
OS, Lazarus, FPC: Win7Pro-32Bit, Immer letzte Lazarus Release mit SVN-Fixes | 
CPU-Target: 32Bit
Nach oben

Beitragvon charlytango » 1. Okt 2017, 12:51 Re: Objekt als Property zuweisen

mahhhhh......

danke fürs Kopf zurechtrücken -- so blöd kann man eigentlich nicht sein dass man den Wald vor lauter Bäumen nicht sieht

case closed
charlytango
 
Beiträge: 104
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: FPC 3.0; Laz 1.6 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: Yahoo [Bot] und 2 Gäste

porpoises-institution
accuracy-worried