Einzelnen Beitrag anzeigen

rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Formular Position speichern, Generell wenn geschlossen wird oder bei ModalResult

  Alt 25. Jan 2017, 14:51
Hi Kidi,

ich verwende 2 Proceduren, mit denen ich die Werte in INI-Dateien schreibe (neben all den anderen Werten, die man so braucht):

Delphi-Quellcode:
procedure TfrmMain.p_IniRead;
{-------------------------------------------------------------------------------
   INI Datei einlesen
-------------------------------------------------------------------------------}

var
   Ini      : TIniFile;
begin
   Ini      := TIniFile.Create(ChangeFileExt( Application.ExeName, '.INI' ) );
   try
      Top    := Ini.ReadInteger( 'Windows Form Settings', 'Top', 100 );
      Left    := Ini.ReadInteger( 'Windows Form Settings', 'Left', 100 );
      Height    := Ini.ReadInteger( 'Windows Form Settings', 'Height', 100);
      Width    := Ini.ReadInteger( 'Windows Form Settings', 'Width', 100);
      if Ini.ReadBool( 'Windows Form Settings', 'InitMax', false ) then
         WindowState          := wsMaximized
      else
         WindowState          := wsNormal;
   finally
      Ini.Destroy;
   end;
end;

procedure TfrmMain.p_IniWrite;
{-------------------------------------------------------------------------------
   INI Datei wegschreiben
-------------------------------------------------------------------------------}

var
   Ini      : TIniFile;
begin
   Ini       := TIniFile.Create(ChangeFileExt( Application.ExeName, '.INI' ) );
   try
      Ini.WriteDateTime('Userdata', 'LastLogOut', now());
      Ini.WriteInteger( 'Windows Form Settings', 'Top', Top);
      Ini.WriteInteger( 'Windows Form Settings', 'Left', Left);
      Ini.WriteInteger( 'Windows Form Settings', 'Height', Height);
      Ini.WriteInteger( 'Windows Form Settings', 'Width', Width);
      Ini.WriteBool( 'Windows Form Settings', 'InitMax', WindowState = wsMaximized );
   finally
      Ini.Destroy;
   end;
end;
Den p_IniRead lese ich im OnCreate der Form und den p_IniWrite führe ich im OnClose aus. Und wenn Du die Positionen von weiteren Fenstern benötigst, dann erweiterst Du dir das entsprchend.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat