AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Problem mit Fensterposition auf erweitertem Desktop
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Fensterposition auf erweitertem Desktop

Ein Thema von iphi · begonnen am 26. Mär 2010 · letzter Beitrag vom 26. Mär 2010
Antwort Antwort
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit Fensterposition auf erweitertem Desktop

  Alt 26. Mär 2010, 09:00
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?
  Mit Zitat antworten Zitat
burn

Registriert seit: 9. Apr 2003
80 Beiträge
 
Delphi 5 Professional
 
#2

Re: Problem mit Fensterposition auf erweitertem Desktop

  Alt 26. Mär 2010, 09:06
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:
Form2.OnClose
Form2.OnShow
mfG Burn
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Problem mit Fensterposition auf erweitertem Desktop

  Alt 26. Mär 2010, 09:30
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;
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz