Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#10

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

  Alt 25. Jan 2017, 13:56
Ich benutze für sowas MSDN-Library durchsuchenGetWindowPlacement/MSDN-Library durchsuchenSetWindowPlacement. Damit erspart man sich z.B. die Prüfung auf zwischenzeitlich nicht mehr vorhandene Monitore etc. Aufrufen tue ich das normalerweise im OnShow/OnHide.
Hier mal die Schreib-Routine als Beispiel:
Delphi-Quellcode:
procedure WriteWindowPlacement(AIni: TCustomIniFile; const Section, NamePrefix: string; Form: TCustomForm);
var
  wp: TWindowPlacement;
  sl: TStringList;
  s: string;
begin
  wp.length := SizeOf(TWindowPlacement);
  GetWindowPlacement(Form.Handle, @wp);

  sl := TStringList.Create;
  sl.Capacity := 9;
  try
    sl.Append(IntToStr(wp.showCmd));
    sl.Append(IntToStr(wp.ptMinPosition.X));
    sl.Append(IntToStr(wp.ptMinPosition.Y));
    sl.Append(IntToStr(wp.ptMaxPosition.X));
    sl.Append(IntToStr(wp.ptMaxPosition.Y));
    sl.Append(IntToStr(wp.rcNormalPosition.Left));
    sl.Append(IntToStr(wp.rcNormalPosition.Top));
    sl.Append(IntToStr(wp.rcNormalPosition.Right));
    sl.Append(IntToStr(wp.rcNormalPosition.Bottom));
    s := EncodeDelimitedText('(', ';', ')', sl); // Hier "sl" irgendwie in einen einzeiligen String wandeln (sl.DelimitedText oder so).
  finally
    sl.Free;
  end;

  AIni.WriteString(Section, NamePrefix + 'WindowPlacement', s);
end;
Uli Gerhardt

Geändert von uligerhardt (25. Jan 2017 um 14:28 Uhr)
  Mit Zitat antworten Zitat