AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mathematik-Problem

Ein Thema von a.def · begonnen am 1. Apr 2017 · letzter Beitrag vom 2. Apr 2017
Antwort Antwort
a.def
(Gast)

n/a Beiträge
 
#1

Mathematik-Problem

  Alt 1. Apr 2017, 17:43
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?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Mathematik-Problem

  Alt 1. Apr 2017, 17:50
Müsste Hälfte der Dialogbreite minus Hälfte der gesamten Buttonbreite sein.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#3

AW: Mathematik-Problem

  Alt 1. Apr 2017, 17:52
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.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Mathematik-Problem

  Alt 1. Apr 2017, 18:21
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?
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?
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Mathematik-Problem

  Alt 1. Apr 2017, 18:26
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.
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Mathematik-Problem

  Alt 2. Apr 2017, 05:18
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)
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mathematik-Problem

  Alt 2. Apr 2017, 07:06
Moin...
Zitat:
Wenn die Probleme so weitergehen werde ich vermutlich irgendwann auf eine normale TForm umsteigen
...so hab ich es auch gemacht. 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
Miniaturansicht angehängter Grafiken
dialog.png  

Geändert von haentschman ( 2. Apr 2017 um 07:28 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#8

AW: Mathematik-Problem

  Alt 2. Apr 2017, 09:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#9

AW: Mathematik-Problem

  Alt 2. Apr 2017, 11:30
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:

Panel1.BoundsRect := CenteredRect(Panel1.Parent.ClientRect, Panel1.BoundsRect); // uses System.Types
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 00:13 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