Autor |
Beitrag |
soisseteben
      
Beiträge: 111
Win XP
D7
|
Verfasst: So 01.10.06 11:46
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
_________________ „Wer nur nach dem Zweck der Dinge fragt, wird ihre Schönheit nie entdecken.“ - (Halldór Laxness)
|
|
Reinhard Kern
      
Beiträge: 591
Erhaltene Danke: 14
|
Verfasst: So 01.10.06 12:17
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
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: 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
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
DarkLord05
      
Beiträge: 449
WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
|
Verfasst: 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 
      
Beiträge: 111
Win XP
D7
|
Verfasst: 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.
_________________ „Wer nur nach dem Zweck der Dinge fragt, wird ihre Schönheit nie entdecken.“ - (Halldór Laxness)
|
|
cuejo
      
Beiträge: 142
Win XP
Delphi 7 Personal und 2005 PE
|
Verfasst: So 01.10.06 13:28
Also spontan fällt mir dazu nur folgendes ein:
Delphi-Quelltext 1:
| TaskleistenHoehe:=Screen.Height-Screen.WorkAreaHeight; |
_________________ Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
|
|
DarkLord05
      
Beiträge: 449
WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
|
Verfasst: 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: 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
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: 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); |
_________________ Ein Nutzer der Ecke
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: 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
      
Beiträge: 142
Win XP
Delphi 7 Personal und 2005 PE
|
Verfasst: So 01.10.06 13:43
_________________ Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
|
|
cuejo
      
Beiträge: 142
Win XP
Delphi 7 Personal und 2005 PE
|
Verfasst: So 01.10.06 13:46
Sorry, hab mich verguckt!  Das ist vollkommen richtig.
_________________ Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
|
|
soisseteben 
      
Beiträge: 111
Win XP
D7
|
Verfasst: So 01.10.06 14:12
Jo...ich schau mir das alles mal an. Danke schonmal für euer Engagement  .
_________________ „Wer nur nach dem Zweck der Dinge fragt, wird ihre Schönheit nie entdecken.“ - (Halldór Laxness)
|
|
soisseteben 
      
Beiträge: 111
Win XP
D7
|
Verfasst: 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! 
_________________ „Wer nur nach dem Zweck der Dinge fragt, wird ihre Schönheit nie entdecken.“ - (Halldór Laxness)
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: So 01.10.06 19:01
Warum stellst Du dann nicht gleich WindowState auf wsMaximized.
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: 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
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: So 01.10.06 19:56
das aber nur, wenn borderStyle auf bsNone ist.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
soisseteben 
      
Beiträge: 111
Win XP
D7
|
Verfasst: Mo 02.10.06 18:19
nicht in D7.
_________________ „Wer nur nach dem Zweck der Dinge fragt, wird ihre Schönheit nie entdecken.“ - (Halldór Laxness)
|
|