Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Wie kann man Fenster von eigener Extension in layout speichern (https://www.delphipraxis.net/215193-wie-kann-man-fenster-von-eigener-extension-layout-speichern.html)

mattia72 24. Mai 2024 14:14

Wie kann man Fenster von eigener Extension in layout speichern
 
Hallo zusammen,

ich habe ein INTACustomDockableForm (https://www.delphipraxis.net/1534720-post8.html)
Es sind zwei Prozeduren in dem Interface, die zum Speichern und Laden benutzt werden können. Die habe ich grob so implementiert:
Delphi-Quellcode:
   
...
procedure TRipGrepperDockableForm.SaveWindowState(Desktop : TCustomIniFile; const Section : string; IsProject : Boolean);
var
   wp : TWindowPlacement;
begin
   TDebugUtils.DebugMessage(Format('TRipGrepperDockableForm.SaveWindowState: %s [%s] IsProject:%s',
      [Desktop.FileName, Section, BoolToStr(IsProject, True)]));
   wp.length := Sizeof(wp);
   GetWindowPlacement(form.handle, @wp);
   var
   pos := wp.rcNormalPosition;
   Desktop.WriteInteger(section, sLeft, pos.Left);
   Desktop.WriteInteger(section, sTop, pos.Top);
   Desktop.WriteInteger(section, sWidth, pos.Right - pos.Left);
   Desktop.WriteInteger(section, sHeight, pos.Bottom - pos.Top);
   Desktop.WriteString(section, sState, GetEnumName(TypeInfo(TWindowState), Ord(form.WindowState)));
end;
procedure TRipGrepperDockableForm.LoadWindowState(Desktop : TCustomIniFile; const Section : string);
var
   L, T, W, H : Integer;
begin
   TDebugUtils.DebugMessage('TRipGrepperDockableForm.LoadWindowState: ' + Desktop.FileName + '[' + Section + ']');

   L := Desktop.ReadInteger(section, sLeft, form.Left);
   T := Desktop.ReadInteger(section, sTop, form.Top);
   W := Desktop.ReadInteger(section, sWidth, form.Width);
   H := Desktop.ReadInteger(section, sHeight, form.Height);
   form.SetBounds(L, T, W, H);
   try
      form.Windowstate := TWindowState(GetEnumValue(TypeInfo(TWindowState), Desktop.ReadString(section, sState, 'wsNormal')));
   except
   end;

end;
Save wird ordentlich angerufen, wenn ich die IDE schließe, load aber nicht.
Wie kann ich das Fenster von meiner Extension auch in Layout speichern damit es immer auftaucht, wenn ich das Layout lade?

mattia72 28. Mai 2024 13:31

AW: Wie kann man Fenster von eigener Extension in layout speichern
 
Falls jemand das gleiche Problem hat:
https://stackoverflow.com/questions/...-delphi-layout

Benmik 28. Mai 2024 14:28

AW: Wie kann man Fenster von eigener Extension in layout speichern
 
Uwe sollte seinen Kommentar als Antwort geben, damit sie akzeptiert werden kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.

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