Entwickler-Ecke
Sonstiges (Delphi) - Wie Text in MessageBox zentriert darstellen?
UTA2000 - Do 27.03.03 12:42
Titel: Wie Text in MessageBox zentriert darstellen?
Ich kann mich mal dunkel daran erinnern, in einem anderen Quellcode so nen Zusatz (ähnlich zu #13 für Zeilenvorschub) bei nem Meldungsstring gesehen zu haben, der den Text zentriert darstellte.
Aber ich weiß nicht mehr wie?
Wie bekomme ich das hin?
Delete - Do 27.03.03 15:50
Bei der Messagebox von TApplication geht es definitiv nicht. Wie es bei den Dingern von Borland aussieht, weiß ich nicht.
AndyB - Do 27.03.03 16:13
Das kann man so lösen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| with CreateMessageDialog('Dies ist ein'#10'Test der zentriert'#10'dargestellt wird.', mtInformation, [mbOK]) do try TLabel(FindComponent('Message')).Alignment := taCenter; ShowModal; finally Free; end; |
UTA2000 - Do 27.03.03 16:37
Nee, das war kürzer. Nur son Zusatz am String, irgendwas mit ^C oder sowas. Kann auch noch aus alten Turbo Pascal Zeiten sein und ich verwechsle das jetzt.
Aber auf alle Fälle finde ich das eine fehlende Option, ich könnte es oft brauchen!
Golo - Do 27.03.03 16:48
Eine kurze Zwischenfrage lediglich...
Kann man den Text in einem Edit-Feld ebenfalls zentriert ausgeben bwz. anzeigen?
GreetZ!
AndyB - Do 27.03.03 19:35
Mit der TJvEdit-Komponente aus der
JVCL [
http://jvcl.sourceforge.net] geht das.
| Zitat: |
| Nee, das war kürzer. |
Dann mach eine Funktion daraus und es ist kürzer. :lol:
| Zitat: |
| Nur son Zusatz am String, irgendwas mit ^C oder sowas. |
Nein, so ein Steuerzeichen gibt es nicht, außer man produziert eigene Steuerzeichen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| function MessageDlgEx(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; var S: string; Centered: Boolean; begin S := Msg; if (S <> '') and (S[1] = #1) then begin Delete(S, 1, 1); Centered := True; end else Centered := False; with CreateMessageDialog(S, DlgType, Buttons) do try HelpContext := HelpCtx; if Centered then TLabel(FindComponent('Message')).Alignment := taCenter; Result := ShowModal; finally Free; end; end;
MessageDlgEx(#1'Dies ist ein zentierter'#10'Text', mtInformation, [mbOK], 0); |
Noch ein Wort zu deinem #13: Das ist eine DOS-Angewohnheit. Jedoch entspricht das #13 keinem Zeilenumbruch, sondern einem Wagenrücklauf, womit das Zeichen #10 in allen Fällen verwendet werden sollte, da dir ein Linux System (Kylix) bei #13 etwas hustet aber keine Zeienumbruch macht. Dasselbe gilt auch für CLX Anwendungen. Diese können nichts mit #13 anfangen und Schlucken es an der einen Stelle und geben es an einer anderen Stelle als ein undefiniertes Symbol auf dem Bildschirm aus.
Delete - Do 27.03.03 21:03
Offiziell ist ein Zeilneumbruch bei Windows ein #13#10.
AndyB - Do 27.03.03 21:08
Für den Delphi Compiler < 6 auch. Für den IDE Editor reicht schon ein #10 aus. Aus diesem Grund kann es passieren, dass ein Syntaxfehler an einer falschen Position angezeigt wird.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!