AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Komponente.Height bis zum Bildschirmrand setzen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente.Height bis zum Bildschirmrand setzen

Ein Thema von PAX · begonnen am 2. Feb 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#1

Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 15:27
Hi Leude!

Ich habe eine grafische Komponente, welche evtl. auch eine vertikale Scrollleiste haben kann, die bei einem Maximierten Formular von der Höhe her bis zum Bildschirmrand gehen soll. Das Problem dabei ist, dass bei den 0,0 Koordinaten auf dem Form nicht vom tatsächlichen Nullpunkt ausgegangen wird, sondern die y-Achse erst unter der Titel+Menüleiste mit 0 anfängt! Auf eine bestimmte Zahlenkonstante kann ich mich nicht festlegen, weil die höhe der Titelleiste, bzw. Menüleiste, je nach eingestellten Windowsschema, variiert!
Beispielsweise ist die Titelleiste bei WindowsXP-Design breiter als beim klassischen. Eine lösungsmöglichkeit wäre, eben die aktuelle Breite dieser beiden Leisten zu ermitteln, aber vielleicht existiert ja noch eine andere Möglichkeit.
Ich hoffe mal, ihr habt meinen Wirrwarr verstanden
Machts gut

P A X
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 15:30
Du könntest BorderStyle der Form auf bsNone stellen, allerdings ist dann die Titelleiste weg.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 15:30
Dann musst Du komplett ohne die Menüzeile und ohne die Titelzeile arbeiten. Also kein MainMenu im Form setzen und FormStyle sowie Bordestyle entsprechend anpassen.

Formmenü und Formcaption liegen im Non-Client Bereich des Forms, da kommen einfache Komponenten aber nicht hin. Kurz: die müssen weg

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 15:41
Ruhig Blut...Alles kein Problem:

Delphi-Quellcode:
P := ScreenToClient(Point(Form1.Left,Form1.Top));
  P.X := 0 - P.X;
  P.Y := 0 - P.Y;
  Label13.Caption := IntToStr(P.X);
  Label14.Caption := IntToStr(P.Y);
Achso: var P : TPoint

Diese paar Zeilen sagen dir, wie breit und wie hoch der Randbereich von deinem Fenster sind.

Also
ClientLeft := Form1.Left + P.X
ClientTop := Form1.Top + P.Y

Zusätzlich gibts auch noch ClientToScreen, ClientToParent, und umgedreht
Einfach mal in die Hilfe Schauen
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  Mit Zitat antworten Zitat
Benutzerbild von PAX
PAX

Registriert seit: 22. Jun 2003
Ort: Karlsruhe
88 Beiträge
 
Delphi 7 Personal
 
#5

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 16:34
Die Firma dankt!
Kannst du mir noch erklären, wie das funktioniert? Ich hab nicht verstanden, was lokale oder Clientkoordinaten sind? Ich hab über die Delphi-Hilfe nicht für mich rausfinden können, wie ScreenToClient funktioniert, was es macht.
Kannst du mir das noch erklären?

PAX
Andreas
"Wenn man irgendwann mal von allen akzeptiert wird, dann weiß man, dass man irgendwas falsch gemacht hat." Zitat: Herr Weidner

  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 16:45
ALso, Client gibt, so zu sagen, die Fläche des Formulars an, die du verwenden kannst.

Delphi-Quellcode:
Client.Width //Breite des verwendbaren Bereichs
Client.Height //Höhe ...
  Mit Zitat antworten Zitat
Schubi

Registriert seit: 4. Nov 2003
Ort: Happurg (Nürnberg)
331 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Komponente.Height bis zum Bildschirmrand setzen

  Alt 2. Feb 2004, 18:10
ScreenToClient Sagt dir die Koordinaten im Client wenn du die Screen-Koordinaten übergibst. Wenn dein Form also Top = 100 Sitzt (Screen) und die Titelzeile 23 hoch ist, gibt ScreenToClient(Point(?,130))
einen Y-Wert von 7 zurück, weil das Form bei 100 + 23 für den Titel sind 123 wo dein Client beginnt, und von da aus sinds noch 7 bis zur 130

Umgedreht, gleiches Beispiel: ClientToScreen(Point(?,7)) -> Y = 130

Parent ist dann z.B. ein Button oder ein Memo auf dem Client
Christian Schubert
Ich fange gerade erst an, den Umfang meiner Ahnungslosigkeit zu begreifen...
  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 21:19 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