Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Speichern und Laden von Control.Daten (https://www.delphipraxis.net/99538-speichern-und-laden-von-control-daten.html)

torud 13. Sep 2007 15:08


Speichern und Laden von Control.Daten
 
Hallo Wissende,

ich habe mir eine kleine Procedure geschrieben, mit der ich mir die Daten bestimmter verschiebbarer Controls speichere und wieder lade. Nun möchte ich speziell für das TPRLabel die Textausrichtung noch mitspeichern und zuweisen. Wie könnte ich das realisieren?

Routine zum speichern:
Delphi-Quellcode:
procedure TForm1.btn_pdf_saveClick(Sender: TObject);
var
  i:integer;
  ini:TIniFile;
begin
    ini:=TIniFile.Create(App_Path + 'test.ini');
    for i := 0 to pan_top.ControlCount-1 do
      begin //nur die controls des panels speichern
        ini.WriteInteger(pan_top.Controls[i].Name,'left',pan_top.Controls[i].Left);
        ini.WriteInteger(pan_top.Controls[i].Name,'top',pan_top.Controls[i].Top);
        ini.WriteInteger(pan_top.Controls[i].Name,'width',pan_top.Controls[i].Width);
        ini.WriteInteger(pan_top.Controls[i].Name,'height',pan_top.Controls[i].Height);
      end;
    for i := 0 to pan_main.ControlCount-1 do
      begin //nur die controls des panels speichern
        ini.WriteInteger(pan_main.Controls[i].Name,'left',pan_main.Controls[i].Left);
        ini.WriteInteger(pan_main.Controls[i].Name,'top',pan_main.Controls[i].Top);
        ini.WriteInteger(pan_main.Controls[i].Name,'width',pan_main.Controls[i].Width);
        ini.WriteInteger(pan_main.Controls[i].Name,'height',pan_main.Controls[i].Height);
      end;
    ini.Free;
end;
Für Tipps bedanke ich mich im voraus.

DeddyH 13. Sep 2007 15:14

Re: Speichern und Laden von Control.Daten
 
Die Textausrichtung ist doch eine Enumeration. Dazu kannst Du Dir diesen Thread (http://www.delphipraxis.net/internal...t.php?t=118360) mal anschauen und die Enumeration dann mit ReadInteger bzw. WriteInteger auslesen/speichern.

torud 13. Sep 2007 15:58

Re: Speichern und Laden von Control.Daten
 
Danke! Schreiben gayt schon mal. Müsste ich nur noch wissen, was ich in die Uses aufnehmen muss, damit TEnum nicht mehr unbekannt ist...Die Hilfe half mir nicht weiter.

DeddyH 13. Sep 2007 16:00

Re: Speichern und Laden von Control.Daten
 
TEnum war doch nur ein Beispiel. Textausrichtung ist doch TAlignment (wenn ich nicht gerade auf dem Schlauch stehe).

torud 13. Sep 2007 16:03

Re: Speichern und Laden von Control.Daten
 
Umso verblüffter und ratloser bin ich jetzt. Ich dachte, dass dann das Alignment intern in eine Zahl gewandelt wird. Hm und nun? Also mit Ord klappt das ganz gut. Rechtsbübndiger Text ist eine 1 und Linksbündig erhält über ord eine 0. Ich könnte das nun über ein Case lösen, aber gehts auch anders?

Sidorion 13. Sep 2007 16:05

Re: Speichern und Laden von Control.Daten
 
Führ Dir mal die Unit TypInfo zu Gemüte da gibts zwei Funktionen um Enums in Strings und zurück zu konvertieren. Dann steht in Deiner Ini sogar der Member ordentlich drin.
[edit] in der gleichen Unit gibt es auch Methoden, um dierekt auf published-properties von Objekten zuzugreifen (SetEnumProp/GetEnumProp)[/edit]

DeddyH 13. Sep 2007 16:06

Re: Speichern und Laden von Control.Daten
 
Delphi-Quellcode:
Label.Alignment := TAlignment(Ini.ReadInteger(...));

torud 13. Sep 2007 16:18

Re: Speichern und Laden von Control.Daten
 
Dankeschön!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz