Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Beste Einstellung für Hauptform (https://www.delphipraxis.net/127063-beste-einstellung-fuer-hauptform.html)

HolgerCW 7. Jan 2009 10:08


Beste Einstellung für Hauptform
 
Hallo zusammen,

ich habe in der Hauptform folgendes eingestellt:

- WindowState := wsMaximized
- BorderStyle := bsSizeable
- Position := poScreenCenter

Wenn nun ein Anwender die Taskleiste auf "immer im Vordergrund halten" gestellt hat, verschwindet der untere Teil meiner Hauptform hinter der Taskleiste. Wie kann man die Hauptform so einstellen, dass meine Anwendung über der Taskleiste aufhört ?

Gruss

Holger

Sherlock 7. Jan 2009 10:30

Re: Beste Einstellung für Hauptform
 
Hmm, welche Bordericons hast du denn noch?

Sherlock

DeddyH 7. Jan 2009 10:33

Re: Beste Einstellung für Hauptform
 
Vielleicht so (WindowState auf wsNormal)?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var R: TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA,0,@R,0); //ggf. das "@" weglassen, unter Delphi 5 nötig
  SetBounds(R.Left,R.Top,R.Right - R.Left,R.Bottom - R.Top);
end;

SirThornberry 7. Jan 2009 10:33

Re: Beste Einstellung für Hauptform
 
Ich kann das geschilderte Verhalten nicht nachvollziehen. Wenn ich auf das maximieren Symbol klicke und der Rest wie beschrieben eingestellt ist wird das Fenster nur so groß wie die Workarea ist.

Sherlock 7. Jan 2009 10:42

Re: Beste Einstellung für Hauptform
 
Das passiert nicht wenn man von Hand maximiert, sondern maximiert startet. Ich kenne das auch. Ich habe das bisher umgangen, indem ich die Workarea (Screen.WorkareaHeight) ermittelte, und das Fenster daran anpasste.

Sherlock

nahpets 7. Jan 2009 10:44

Re: Beste Einstellung für Hauptform
 
Hallo,

anderer Vorschalg:

Schau Dir mal Regforms von der Delphi-Super-Page an, die Komponente wird einfach auf's Formular gelegt und merkt sich beim Schließen des Formulars die Position, Breite und Höhe. Beim Öffnen des Formulars werden diese Werte wieder hergestellt. Gespeichert wird entweder in einer INI oder der Registry. D. H.: Der Anwender kann (muss) einmalig die Formulare "zurechtschieben" und hat dann immer "seine" Einstellungen. Vorteil, Du musst Dir keine Gedanken über die Formularposition und -größe machen und der Anwender muss sich das beim Programmstart wieder alles so hinschibbeln, wie er das möchte. Die Formularposition setzt Du auf poDesigned und wählst bei der Entwicklung für Höhe und Breite Werte, bei denen Du erstmal davon ausgehen kannst, dass das im Wesenlichen auf alle Bildschirme passen, unabhängig von der Position und Größe der Taskbar.

HolgerCW 7. Jan 2009 11:00

Re: Beste Einstellung für Hauptform
 
Danke schon mal.

Habe nun festgestellt, wenn ich die Form auf fsnormal stelle, den Code von DeddyH nutze und nach starten der Anwendung manuell maximiere klappt es.

Wie kann ich abfragen, ob die Taskleiste auf "immer im Vordergrund halten" gestellt ist? Dann würde ich beim starten der Anwendung die Hauptform daraufhin einstellen.

Mache es nun so -> Stelle Form auf fsnormal + Code von DeddyH und beim Starten der Form setze ich WindowsState auf wsMaximized, so klappt es dann immer, egal ob die Taskleiste im Vordergrund ist, oder nicht.

Gruss

Holger

Bomberbb 7. Jan 2009 11:41

Re: Beste Einstellung für Hauptform
 
Wenn es dir nicht auf
Delphi-Quellcode:
Position := poScreenCenter;
ankommt, klappt es auch mit
Delphi-Quellcode:
Position := poDesktopCenter;
Das ist ein Problem, was seit XP auftritt. Wenn man bei Darstellung auf Windows-Klassisch schaltet gibt es auch keine Auswirkungen.
Die o.g. Änderung hat sonst auch nur Auswirkungen bei mehreren Bildschirmen.

HolgerCW 7. Jan 2009 11:44

Re: Beste Einstellung für Hauptform
 
Das mit dem DesktopCenter ist sogar noch besser. Wo genau soll da überhaupt der unterschied sein ?

nahpets 7. Jan 2009 11:47

Re: Beste Einstellung für Hauptform
 
Zitat:

Zitat von Bomberbb
Wenn es dir nicht auf
Delphi-Quellcode:
Position := poScreenCenter;
ankommt, klappt es auch mit
Delphi-Quellcode:
Position := poDesktopCenter;

poDesktopCenter hat den Nachteil: Wenn man zwei Bildschirme hat, dann ist eine Hälfte auf dem einen und die andere auf dem anderen Bildschirm. Ist zumindest gewöhnungsbedürftig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 Uhr.
Seite 1 von 2  1 2      

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