Autor Beitrag
Eumel
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 08.07.02 18:27 
Hallo@all,
ich brauch mal wieder etwas Hilfe.

Wie kann ich aus einen Frame, alle Labels in ein File speichern?
(Siehe www.auq.de/viewtopic.php?t=435, so hab ich die Label(s) erzeugt bzw. die Labels werden zur Programmlaufzeit hinzugefügt)
Top, Left und Caption möchte ich dabei wie in einer INI ablegen.

INIFile.WriteString('label x', 'Top', labelvars);...

Am ende sollten dann alle Label(s) untereinander in einen File/INI stehen.

[Label x]
Top=1
Left=1
Caption='Testlabel'

wer hat ein Lösungsvorschlag für mich ... :?:

Grüße EM.
chewie
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 08.07.02 21:00 
Hoi Eumel,

Du kannst einen ähnlichen Ansatz benutzen, wie ich ihn hier beschrieben habe.

Reicht dies schon, oder soll ich zu deinem Problem ein konkretes Beispiel machen?

Gruss - Jörg
Eumel Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mo 08.07.02 21:38 
Zitat:
soll ich zu deinem Problem ein konkretes Beispiel machen?

wäre nett, da ich noch nicht so mit Delphi erfahren bin.

THX schon im voraus. EM.
chewie
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 09.07.02 09:56 
Parameter obComponent kann ein TForm, TFrame, TPanel usw. (eigentlich alles, was von TComponent abgeleitet ist) sein
Parameter sFileName ist der Ini-Filename (z.B. 'Labels.ini'; wenn kein Pfad angegeben wird, wird es ins Windows-Verzeichnis gespeichert)

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
uses
  Classes,
  StdCtrls,
  SysUtils,
  IniFiles;

procedure SaveLabels(const obComponent : TComponent; const sFileName : String);
var
  iIndex    : Integer;
  obIniFile : TIniFile;
  obLabel   : TLabel;
begin
  obIniFile := TIniFile.Create(sFileName);

  try

    for iIndex := 0 to obComponent.ComponentCount-1 do begin
      if (obComponent.Components[iIndex] is TLabel) then begin
        obLabel := (obComponent.Components[iIndex] as TLabel);

        obIniFile.WriteString ('Label' + IntToStr(iIndex), 'Caption', obLabel.Caption);
        obIniFile.WriteInteger('Label' + IntToStr(iIndex), 'Top',     obLabel.Top);
        obIniFile.WriteInteger('Label' + IntToStr(iIndex), 'Left',    obLabel.Left);
      end; // if ... is TLabel
    end; // for iIndex

  finally
    // try - finally stellt sicher, dass <obIniFile> auch wieder freigegeben wird
    obIniFile.Free;
  end; // try - finally
end;


Gruss - Jörg