Announcement

Collapse
No announcement yet.

Problem beim Setzen von Windowstate

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem beim Setzen von Windowstate

    Hallo,

    in meiner Anwendung merke ich mir Fensterposition, Größe und Windowstate der einzelnen Fenster in der Registry. Für den Windowstate setze ich für maximized eine 1 ansonsten eine 0.
    Im Create der Forms lese ich das ganze wieder aus.
    Bei einigen Fenstern wird, wenn das Fenster mit WindowState = 1 geschlossen und danach wieder geöffnet wird, das Fenster zwar mit wsMaximized aber nicht bildschirmfüllend angezeigt, sondern in der linken oberen Ecke mit seinen Standardmaßen.
    Wird das Fenster wiederhergestellt klinkt es sich an der richtigen Stelle ein, wird es erneut maximiert ist alles ok.
    Die Fenster unterscheiden sich nicht in den Einstellungen, sie sind alle fsNormal, poDesigned und baSizeable. Der Windowstate wird mit Windowstate := wsMaximizid gesetzt.
    Beim Debuggen gibt es keine Probleme. Die Werte werden richig in die Registry eingetragen und auch wieder ausgelesen.

    Woran kann das liegen?

    M.f.G. Andreas Käding

  • #2
    Hi Andreas,<br>
    ich schreibe diese Daten so weg:<pre>
    ini.WriteInteger('Typkonstruktion', 'WindowState', ord(WindowState));
    if WindowState = wsNormal then
    ini.WriteRect('Typkonstruktion', 'WindowPos', BoundsRect);
    </pre>
    und lese sie so wieder ein:<pre>
    ws := TWindowState(ini.ReadInteger('Typkonstruktion', 'WindowState', ord(wsNormal)));
    if ws in [wsNormal, wsMinimized, wsMaximized] then
    WindowState := ws
    else
    WindowState := wsNormal;

    if WindowState = wsNormal then
    begin
    r := Rect(1, 1, 0, 0);
    r := ini.ReadRect('Typkonstruktion', 'WindowPos', r);
    if (r.Right > r.Left) and (r.Bottom > r.Top) then
    BoundsRect := r;
    end;
    </pre>
    (jeweils in Methoden der Form). Das funktioniert bei mir. :-)<br>
    HTH, Uli

    Comment


    • #3
      Form.Position ändern auf <> poDefaultXX

      Comment


      • #4
        Danke das war der entscheidende Tip, allerdings etwas anders. Die Fenster sind bei mir <> poDefault. Sie sind alle poDesigned. Das Problem ist aber gelöst, wenn man für die Fenster, bei denen maximized in der Registry steht Position auf poDefault setzt

        Comment

        Working...
        X