Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Höhe der Taskleiste?
soisseteben - So 01.10.06 11:46
Titel: Höhe der Taskleiste?
Gibt es eine Möglichkeit, mir die Höhe der Taskleiste in Pixeln ausgeben zu lassen oder mein Formular gleich genau darauf aufzusetzten?
Dankeschön
Reinhard Kern - So 01.10.06 12:17
Titel: Re: Höhe der Taskleiste?
soisseteben hat folgendes geschrieben: |
Gibt es eine Möglichkeit, mir die Höhe der Taskleiste in Pixeln ausgeben zu lassen oder mein Formular gleich genau darauf aufzusetzten?
Dankeschön |
Hallo,
die Höhe der TaskBar kann man beim Entwurf setzen und lesen und später auch, die Eigenschaft heisst Height (ist schon schwer, drauf zu kommen, aber in der Hilfe findet man so etwas...).
Was du mit "Formular drauf aufsetzen" meinst, ist mir nicht verständlich - jedenfalls gehört die Tskbar zum Client-Bereich des Formulars, man muss sie also dort abziehen, wenn man den verfügbaren Platz bestimmen will.
Gruss Reinhard
elundril - So 01.10.06 12:21
ich glaub er meint unten die Startleiste und mit draufsetzen meint er sowas wie beim WMP wenn man ihn minimiert!
wenn nicht dann meint er mit draufsetzen vl das man zu den minimieren, maximieren und schließen button noch einen (oder auch was anderes) hinzufügen kann!
mfg el
DarkLord05 - So 01.10.06 12:42
Er will sein Programm auf die taskleiste setzten. Ich denke er will sich die höhe des Bildes holen und dann die höhe der Taskleiste abziehen um sein Programm da aufzusetzten.
Kenn die lösung selbst nicht (würd mich aber auch interessieren), wollt nur erklären was er meint^^
soisseteben - So 01.10.06 13:23
Ziel war es, ein Formular so zu maximieren, das es nicht mehr hinter der Taskleiste liegt, sondern direkt darauf. Mit Taskleiste mein ich die Leiste am Bilschirm mit Start usw... . Da müsste es doch eine Win-Funktion geben, die mir deren Höhe zurückliefert, sodass ich dann die Größe meines Formulars darauf abstimmen kann. Kann mir schlecht vorstelen das ich das mit "Height" (einfach so) im Entwurf einstellen kann. Lass mich aber gern eines besseren belehren.
Ich hoffe es war jetzt verständlich.
/EDIT: Also eigentlich genau wie DarkLord meinte.
cuejo - So 01.10.06 13:28
Also spontan fällt mir dazu nur folgendes ein:
Delphi-Quelltext
1:
| TaskleistenHoehe:=Screen.Height-Screen.WorkAreaHeight; |
DarkLord05 - So 01.10.06 13:30
Öhm, kann mich auch irren, aber wenn du ein Formular maximierst, dann legt sich das doch automatisch auf die Taskleiste. Oder soll das unabhängig vom "maximieren" sein?
Blackheart666 - So 01.10.06 13:31
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function GetTaskbarHeight: integer; var SysTray: Windows.HWND; Rect: TRect; begin Result := -1; SysTray := FindWindow('Shell_TrayWnd', nil); If SysTray <> INVALID_HANDLE_VALUE then begin If GetWindowRect(SysTray, Rect) then begin Result := Screen.Height - Rect.Top; end; end; end; |
Martin1966 - So 01.10.06 13:32
Vielleicht hilft dir die Funktion
SYSTEMPARAMETERSINFO mit dem Parameter
SPI_GETWORKAREA weiter:
Delphi-Quelltext
1: 2: 3: 4:
| var r: TRect; begin SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0); |
Andreas L. - So 01.10.06 13:35
Mit screen.WorkAreaHeight bekommst du die Höhe des Desktops abzüglich sämtlicher Leisten und DeskBands. Also
Delphi-Quelltext
1:
| form1.top := screen.WorkAreaHeight - form1.height; |
cuejo - So 01.10.06 13:43
Andreas L. hat folgendes geschrieben: |
Delphi-Quelltext 1:
| form1.top := screen.WorkAreaHeight - form1.height; | |
Dadurch wird
Form1.Top negativ! Ich plädiere immer noch für meinen Vorschlag :mrgreen:
cuejo - So 01.10.06 13:46
Sorry, hab mich verguckt! :oops: Das ist vollkommen richtig.
soisseteben - So 01.10.06 14:12
Jo...ich schau mir das alles mal an. Danke schonmal für euer Engagement :D.
soisseteben - So 01.10.06 18:42
Da ich nur Maximieren wollte hab ichs jetzt so gemacht:
Delphi-Quelltext
1: 2: 3: 4:
| Top := 0; Left := 0; Height := Screen.WorkAreaHeight; Width := Screen.WorkAreaWidth; |
Danke nochmal! :D
Blackheart666 - So 01.10.06 19:01
Warum stellst Du dann nicht gleich WindowState auf wsMaximized.
Andreas L. - So 01.10.06 19:51
Blackheart666 hat folgendes geschrieben: |
Warum stellst Du dann nicht gleich WindowState auf wsMaximized. |
Weil wsMaximized keine Taskleisten und Deskbands beachtet wenn diese auf nicht fixiert gestellt wurden (nur XP). Zumindest bin ich auf dieses Problem gestoßen als ich mir ne GUI gebaut habe.
jakobwenzel - So 01.10.06 19:56
das aber nur, wenn borderStyle auf bsNone ist.
soisseteben - Mo 02.10.06 18:19
nicht in D7.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!