Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mathematik-Problem (https://www.delphipraxis.net/192236-mathematik-problem.html)

a.def 1. Apr 2017 17:43

Mathematik-Problem
 
Wahrscheinlich simpel aber ich bin gerade zu doof dafür.

Sagen wir mal ich habe einen Dialog mit drei Buttons.
Code:
---------------------------
|                         |
|                         |
| [Ja] [Nein] [Abbrechen] |
|                         |
---------------------------
Ich habe in einer Variablen die Breite insgesamt von Ja, Nein und Abbrechen stehen.
Wie berechne ich nun wohin ich Ja platzieren muss, sodass alle Buttons zentriert sind?

Zacherl 1. Apr 2017 17:50

AW: Mathematik-Problem
 
Müsste Hälfte der Dialogbreite minus Hälfte der gesamten Buttonbreite sein.

a.def 1. Apr 2017 17:52

AW: Mathematik-Problem
 
Problem ist, dass ich zu diesem Zeitpunkt noch nicht die Dialogbreite kenne. Width oder ClientWidth ergibt bei mir 75, was irgendein vordefinierter Wert ist oder so.
Der Dialog ist am ende etwa 200px breiter.

Aviator 1. Apr 2017 18:21

AW: Mathematik-Problem
 
Zitat:

Zitat von a.def (Beitrag 1366139)
Ich habe in einer Variablen die Breite insgesamt von Ja, Nein und Abbrechen stehen.
Wie berechne ich nun wohin ich Ja platzieren muss, sodass alle Buttons zentriert sind?

Zitat:

Zitat von a.def (Beitrag 1366141)
Problem ist, dass ich zu diesem Zeitpunkt noch nicht die Dialogbreite kenne. Width oder ClientWidth ergibt bei mir 75, was irgendein vordefinierter Wert ist oder so.
Der Dialog ist am ende etwa 200px breiter.

Wie willst du zuverlässig die horizontale Position der Buttons berechnen wenn du nicht mal die Breite der Form hast? :shock:

a.def 1. Apr 2017 18:26

AW: Mathematik-Problem
 
Genau deswegen bin ich ja hier ;)
Es handelt sich hier um einen Custom-Message-Dialog.

Wenn die Probleme so weitergehen werde ich vermutlich irgendwann auf eine normale TForm umsteigen und die Buttons kommen dann in ein TGrid.

Ghostwalker 2. Apr 2017 05:18

AW: Mathematik-Problem
 
Setzt du den die Breite des Dialoges ?

Dann wäre

Code:
Sum(Buttonbreiten)+(((Buttonanzahl)+1)*Abstandzwischenbuttons)
die Methodik zur Berechnung der Gesamtbreite.

Hast du die Gesamtbreite des Dialoges:

Code:
(Dialogbreite - (sum(Buttonbreiten))/(Buttonanzahl+1)

haentschman 2. Apr 2017 07:06

AW: Mathematik-Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:P
Zitat:

Wenn die Probleme so weitergehen werde ich vermutlich irgendwann auf eine normale TForm umsteigen
...so hab ich es auch gemacht. :thumb: Das Ganze in eine Klasse gegossen wie der MessageDialog...
Vorteile:
1. beliebige Controls
2. beliebige Anzahl/Positionierung/Größe der Buttons
3. Internationalisierung
4. Design der Anwendung

a.def 2. Apr 2017 09:59

AW: Mathematik-Problem
 
Muss ich mich auch einmal dran setzen. Die Idee mit dem GridPanel habe ich sofort wieder verworfen, da es hier Probleme hab.
Ich werde einfach die oben genannten Formeln verwenden und zwischen allen Buttons 5px Zwischenraum lassen.
Wird schon klappen hoffentlich.

Uwe Raabe 2. Apr 2017 11:30

AW: Mathematik-Problem
 
Alternativer Vorschlag: Setzte die Buttons in ein Panel, das die passende Größe für die Buttons hat. Dann kannst du dieses Panel (hier Panel1) mit diesem Code in seinem Parent zentrieren:

Delphi-Quellcode:
Panel1.BoundsRect := CenteredRect(Panel1.Parent.ClientRect, Panel1.BoundsRect); // uses System.Types


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz