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/)
-   -   alles auf einmal speichern? (https://www.delphipraxis.net/164346-alles-auf-einmal-speichern.html)

smart 8. Nov 2011 23:12

alles auf einmal speichern?
 
Hallo!

ich habe hier eine Form mit 20 TImges, 15 TEdit und 5 TMemo. Alle sind frei beweglich. Um Die Postionen zu speichern müste ich alles einzelen speichern. Gibt es hier eine Möglichkeit alles in einem Rutsch zu speichern.

Luckie 8. Nov 2011 23:15

AW: alles auf einmal speichern?
 
FindComponente?

p80286 8. Nov 2011 23:22

AW: alles auf einmal speichern?
 
Zitat:

Zitat von smart (Beitrag 1135167)
ich habe hier eine Form mit 20 TImges, 15 TEdit und 5 TMemo. Alle sind frei beweglich.

Da diese Komponenten nicht in Relation zueinander stehen, wird Dir wohl nichts anderes übrig bleiben, als die notwendigen Abmessungen und Koordinaten für jede Komponente zu speichern.
Auf einen Rutsch? alles in einen Buffer packen und dann weg damit?

Gruß
K-H

smart 8. Nov 2011 23:35

AW: alles auf einmal speichern?
 
Zitat:

Zitat von p80286 (Beitrag 1135171)
Auf einen Rutsch? alles in einen Buffer packen und dann weg damit?

Das mit dem Rutsch war nur sybolisch gemeint. Ich meinte mit einer routine oö. alles zugleich ab zu speichern. Vorallen, mit wenig Aufwand.

sx2008 9. Nov 2011 00:05

AW: alles auf einmal speichern?
 
Schreib dir eine Funktion, die ein TIniFile-Objekt und ein TControl-Objekt entgegennimmt:
Delphi-Quellcode:
procedure TTMainForm.SaveControlProsition(ini:TIniFile; control:TControl);
begin
  ..
end;
TImge,TEdit und TMemo sind ja alle von TControl abgeleitet.
Die Koordinaten kann man über die Properties Top und Left auslesen und zuammen mit dem Namen des Controls in der Ini-Datei speichern.

In der Komponentensammlung RxLib und JVCL gibt es übrigens eine Komponente (TFormStorage),
mit der du die Positionen ohne Programmieraufwand speichern und laden kannst.

v2afrank 9. Nov 2011 06:22

AW: alles auf einmal speichern?
 
JvDesignUtils einbinden und über
Delphi-Quellcode:
procedure DesignSaveComponentToFile(AComp: TComponent; const AFileName: string);
var
  FS: TFileStream;
begin
  FS := TFileStream.Create(AFileName, fmCreate);
  try
    DesignSaveComponentToStream(AComp, FS);
  finally
    FS.Free;
  end;
end;
speichern

ConnorMcLeod 9. Nov 2011 07:09

AW: alles auf einmal speichern?
 
oder mit Delphi-Boardmitteln: die komplette Form auf einmal speichern. Das Laden ist Hausaufgabe ;-)
Delphi-Quellcode:
var
  BinStream: TMemoryStream;
  StrStream: TStringStream;
begin
  BinStream := TMemoryStream.Create;
  try
    StrStream := TStringStream.Create('');
    try
      BinStream.WriteComponent(Form1);
      BinStream.Seek(0, soFromBeginning);
      ObjectBinaryToText(BinStream, StrStream);
      StrStream.Seek(0, soFromBeginning);
      StrStream.SaveToFile('d:\temp\text.txt');
    finally
      StrStream.Free;
    end;
  finally
    BinStream.Free
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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