AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein MessageDlg mit Text in Tabellenform schöner formatieren
Thema durchsuchen
Ansicht
Themen-Optionen

MessageDlg mit Text in Tabellenform schöner formatieren

Ein Thema von Helmi · begonnen am 27. Mai 2010 · letzter Beitrag vom 27. Mai 2010
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 20:29
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?
Miniaturansicht angehängter Grafiken
messagedlg_123.jpg  
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.070 Beiträge
 
Delphi 12 Athens
 
#2

Re: MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 20:38
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

Re: MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 21:11
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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

Re: MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 21:13
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#5

Re: MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 21:20
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?
Miniaturansicht angehängter Grafiken
messagedlg2_127.jpg  
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

Re: MessageDlg mit Text in Tabellenform schöner formatieren

  Alt 27. Mai 2010, 21:31
Eine Schrift mit gleich breiten Buchstaben würde sich da gut eignen 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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  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 17:02 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