![]() |
Problem mit Fensterposition auf erweitertem Desktop
Hallo,
ich habe eine einfache Anwendung mit 2 Forms. Vom Hauptform wird das zweite Form bei Bedarf mit Form2.Visible sichtbar gemacht, welches dann mit dem x-Knopf wieder gechlossen werden kann. Beim Betrieb mit einem einfachen Desktop auf einem Monitor wird die Form2 immer da wieder sichtbar, wo sie beim letzten Öffnen war (klar, Left und Top sind ja immer konstant, so lange man die Form2 nicht verschiebt). Beim Betrieb auf einem über 2 Motitore erweiterten Desktop geschieht etwas seltsames, wenn Form1 und Form2 auf zwei verschiedene Monitore verteilt werden: Bei Form2.Visible:=true wird Form2.Left und Form2.Top automatisch so geändert, dass Form2 auf demselben Monitor erscheint wie Form1 und nicht da, wo man es zuletzt hingeschoben hat. Kann man dieses Verhalten ändern? |
Re: Problem mit Fensterposition auf erweitertem Desktop
Hallo,
eventuell könntest du dir die Koordinaten beim Schließen der Form2 merken und später beim wieder Anzeigen der Form2 manuell setzen.
Delphi-Quellcode:
mfG Burn
Form2.OnClose
Form2.OnShow |
Re: Problem mit Fensterposition auf erweitertem Desktop
Dir wird nix übrigbleiben, als dir die "aktuelle" Position zu merken und nach dem Anzeigen neu zu setzen,
denn weder SetVisible, noch SetWindowToMonitor lassen sich überschreiben/verändern.
Delphi-Quellcode:
procedure TCustomForm.Show;
begin Visible := True; BringToFront; end; procedure TCustomForm.SetVisible(Value: Boolean); begin if fsCreating in FFormState then if Value then Include(FFormState, fsVisible) else Exclude(FFormState, fsVisible) else begin if Value and (Visible <> Value) then SetWindowToMonitor; inherited Visible := Value; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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 by Thomas Breitkreuz