Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Form auf dem Bildschirm richtig positionieren? (https://www.delphipraxis.net/128932-form-auf-dem-bildschirm-richtig-positionieren.html)

AlexII 9. Feb 2009 20:50


Form auf dem Bildschirm richtig positionieren?
 
Hallo,

wie positioniere ich mein Programm richtig auf dem Bildschirm? Muss die rechte obere Ecke sein.
Ich hab folgenden Code ausprobiert, aber irgendwie funkt das ganze nicht wenn man die Auflösung ändert.

Delphi-Quellcode:
Form1.Left:=Screen.Width-400;
Form1.Top:=Screen.Height-900;
:gruebel:

himitsu 9. Feb 2009 20:52

Re: Form auf dem Bildschirm richtig positionieren?
 
schau dir mal die Eigenschaft .Position deiner Form an :zwinker:


[add]
ansonsten, wie berechnet man selber die Mitte .....

Fenstermitte mit Bildschirmitte übereinander setzen

> also Hälfte des Bildschirms minus Hälfte deiner Form

war blöd

himitsu 9. Feb 2009 20:54

Re: Form auf dem Bildschirm richtig positionieren?
 
[del]

isilive 9. Feb 2009 20:56

Re: Form auf dem Bildschirm richtig positionieren?
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
  begin
    form1.Left:=screen.Width-400;
    form1.top:=0;
  end;
end.
Funktioniert bei mir - respektive einer Fensterbreite von 400 natürlich....

SirThornberry 9. Feb 2009 20:59

Re: Form auf dem Bildschirm richtig positionieren?
 
Im übrigen ist es sinnvoller Setbounds zu verwenden da sonst intern bei jedem setzen von Left, Top, Width und/oder Height SetBounds aufgerufen wird.

DP-Maintenance 9. Feb 2009 21:03

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Delphi-Frage

AlexII 9. Feb 2009 21:11

Re: Form auf dem Bildschirm richtig positionieren?
 
Also ich hab jetzt folgendes:

Delphi-Quellcode:
Form1.SetBounds(Screen.Width-Form1.Width-20, 100, Width, Height);
Muss halt nicht etwas runter (150) und nach links (20)

Scheint zu funken :thumb:

himitsu 9. Feb 2009 21:17

Re: Form auf dem Bildschirm richtig positionieren?
 
:wall: leicht verlesen...

nja, irgendwo hier gab's doch 'nen Code, welcher die Größe des Desktopbereiches lieferte (also ohne Startleiste und Co.) ... wäre natürlich besser diese Maße zu verwenden, falls mal wer seine Startleiste wo anders hat, oder noch durch andere Dinge seinen Desktop verkleinert hat.

AlexII 9. Feb 2009 21:32

Re: Form auf dem Bildschirm richtig positionieren?
 
Und wo findet man das? Ich finde es nicht :gruebel:

Satty67 9. Feb 2009 21:36

Re: Form auf dem Bildschirm richtig positionieren?
 
Also zum positionieren oben links mache ich es so:
Delphi-Quellcode:
procedure TForm1.FensterAusrichten;
var
  DeskDC : hDC;
  ScreenClientRect : TRect;
begin
  DeskDC := GetDC(0);
  SystemParametersInfo(SPI_GETWORKAREA,SizeOf(ScreenClientRect),@ScreenClientRect,0);
  ReleaseDC(0,DeskDC);

  SetBounds(ScreenClientRect.Left,ScreenClientRect.Top,Width,Height);
end;
Geht jetzt davon aus, das Fensterhöhe/Breite beibehalten werden soll und berücksichtigt auch unterschiedliche Positionen der Taskbar.

Für rechts oben dann (die letzte Zeile) so:
Delphi-Quellcode:
SetBounds(ScreenClientRect.Right - Width,ScreenClientRect.Top,Width,Height);

AlexII 9. Feb 2009 21:42

Re: Form auf dem Bildschirm richtig positionieren?
 
Zitat:

Zitat von Satty67
Geht jetzt davon aus, das Fensterhöhe/Breite beibehalten werden soll

Wie meinst du das? :gruebel:

Hawkeye219 9. Feb 2009 21:45

Re: Form auf dem Bildschirm richtig positionieren?
 
Hallo,

Zitat:

Zitat von AlexII
Und wo findet man das?

Im Objekt Delphi-Referenz durchsuchenScreen der Unit Forms:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  R : TRect;
begin
  R := Screen.WorkAreaRect;
  R.Left := R.Right - Width;
  R.Bottom := R.Top + Height;

  BoundsRect := R;
end;
Gruß Hawkeye

Satty67 9. Feb 2009 21:49

Re: Form auf dem Bildschirm richtig positionieren?
 
Zitat:

Zitat von AlexII
Zitat:

Zitat von Satty67
Geht jetzt davon aus, das Fensterhöhe/Breite beibehalten werden soll

Wie meinst du das? :gruebel:

Na das dein Fenster nur verschoben wird und Höhe/Breite beibehalten... na sach mal :shock:

Screen.WorkAreaRect Gibt es bei Delphi5 nicht :cry:

AlexII 9. Feb 2009 21:58

Re: Form auf dem Bildschirm richtig positionieren?
 
OK, danke :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 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