Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MessageDlg mit Text in Tabellenform schöner formatieren (https://www.delphipraxis.net/151677-messagedlg-mit-text-tabellenform-schoener-formatieren.html)

Helmi 27. Mai 2010 19:29


MessageDlg mit Text in Tabellenform schöner formatieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich zeige in meinem Programm einen MessageDlg an (siehe Bild).
Wie man sieht ist in der Mitte eine Art Tabelle.
Leider sind die Zahlen nicht sauber untereinander und die dazugehörigen Texte daraus resultierend auch nicht.

Der Text der Message schaut wie folgt aus:
Delphi-Quellcode:
  Msg10 = 'Es wurden folgende Daten ausgelesen:' + sLineBreak + sLineBreak +
          leer + '%2dx Allgemein'    + sLineBreak +
          leer + '%2dx Kanal'        + sLineBreak +
          leer + '%2dx Achs'         + sLineBreak +
          leer + '%2dx Antrieb'      + sLineBreak +
          leer + '%2dx Setting'      + sLineBreak +
          leer + '%3dx NC-Programme' + sLineBreak +
          sLineBreak + 'Gespeichert unter "%s"!' + sLineBreak +
                       'Projektordner öffnen?';
(leer = 15 Leerzeichen)

Wie könnte man die Texte und Zahlen sauberer untereinander schreiben?
Gibt es eine einfache Möglichkeit oder muss ich via "CreateMessageDialog" einen eigenen MessageDialog erschaffen?

himitsu 27. Mai 2010 19:38

Re: MessageDlg mit Text in Tabellenform schöner formatieren
 
Bei dieser Schriftart sind etwa 2 Leerzeichen eine Zahl,
also müßten die vorangestellten Füllleerzichen verdoppelt werden.


Delphi-Quellcode:
Msg10 = 'Es wurden folgende Daten ausgelesen:' + sLineBreak + sLineBreak +
          leer + '%*dx Allgemein'    + sLineBreak +
          leer + '%*dx Kanal'        + sLineBreak +
          leer + '%*dx Achs'         + sLineBreak +
          leer + '%*dx Antrieb'      + sLineBreak +
          leer + '%*dx Setting'      + sLineBreak +
          leer + '%*dx NC-Programme' + sLineBreak +
          sLineBreak + 'Gespeichert unter "%s"!' + sLineBreak +
                       'Projektordner öffnen?';
wäre wohl irgendwie so
Delphi-Quellcode:
 [(3 - Log10(allgemein)) * 2, allgemein,
(3 - Log10(kanal)) * 2, kanal,
...]
Aber ein eigener Dialog wäre wohl sicherer, da die Schriftarten sich auch mal ändern können.

Helmi 27. Mai 2010 20:11

Re: MessageDlg mit Text in Tabellenform schöner formatieren
 
Zitat:

Zitat von himitsu
Aber ein eigener Dialog wäre wohl sicherer, da die Schriftarten sich auch mal ändern können.

Hallo himitsu

Ich werd mir wohl einen eigenen MessageDialog basteln müssen

s.h.a.r.k 27. Mai 2010 20:13

Re: MessageDlg mit Text in Tabellenform schöner formatieren
 
Wenn du es nicht selbst machst, dann wird es immer ungenau werden. Außer man kann evtl. Tabs einfügen, aber ich glaube nicht, dass das zum Erfolg führen wird.

Helmi 27. Mai 2010 20:20

Re: MessageDlg mit Text in Tabellenform schöner formatieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von s.h.a.r.k
Wenn du es nicht selbst machst, dann wird es immer ungenau werden. Außer man kann evtl. Tabs einfügen, aber ich glaube nicht, dass das zum Erfolg führen wird.

Mit Tabs würds zwar gehen, schaut aber auch nicht sehr schön aus (siehe Bild: die ersten zwei Zeilen der Tabelle)

Was für eine Komponente könnte ich für die Tabellenansicht im CreateMessageDialog verwenden?

s.h.a.r.k 27. Mai 2010 20:31

Re: MessageDlg mit Text in Tabellenform schöner formatieren
 
Eine Schrift mit gleich breiten Buchstaben würde sich da gut eignen :zwinker: Aber das willst mit Sicherheit nicht. Ansonsten kannst ja zwei Memos nehmen, disabled und passt das Alignment an. Den Dialog und die Memos musst halt passend vergrößern.

Oder du zeichnest den Text selbst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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