AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ShowMessage oder Format kürzt Texte

Ein Thema von zeras · begonnen am 12. Jan 2020 · letzter Beitrag vom 12. Jan 2020
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.338 Beiträge
 
Delphi 10.4 Sydney
 
#1

ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:05
Delphi-Version: 10.3 Rio
Ich nutze
ShowMessage(Format('Script für Version "%s" unter "%s" nicht gefunden!' + #10#13#10#13 + 'Abbruch!', [PLC_VER, ScriptName]));
zum Anzeigen einer Datei inkl. Pfad. Da der Pfad aber relativ lang ist, kürzt entweder ShowMessage oder Format den String des Pfades. Die fehlenden Zeichen werden durch "..." dargestellt. Diese sind aber für meine Anwendung die wichtigen Infos, da es viele Parallelpfade gibt, die ähnlich heißen.
Kann ich Delphi dazu bringen, den kompletten Pfad anzuzeigen?
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.767 Beiträge
 
Delphi XE4 Professional
 
#2

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:29
Hallo,
Bau den String normal mit IntToStr zusammen.
Heiko
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.619 Beiträge
 
#3

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:32
Bei mir wird mit Format() nix abgeschnitten. Das scheint wohl an der Länge zu liegen. IntToStr() bringt da nicht viel. Das Problem ist ShowMessage().
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
16.718 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:37
Nimm Taskdialog (http://docwiki.embarcadero.com/Libra...gs.TTaskDialog) und lege diese langen Texte in das Property ExpandedText und als haupttext nur noch ein "Script nicht gefunden".
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.615 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:45
Leider ein Windows-Problem, was ich auch schon ewig extrem krank finde, aber da gibt es leider keine Lösung.
Nicht-umbrechbare Wörter werden nicht umgebrochen und bei zu breit wird die Zeile abgeschnitten, selbst wenn in der Breite eigentlich noch tausende Pixel plätz wären, würde der Dialog breiter werden.

Einige Lösung, du mußt selber Trennzeichen in zu lange Wörter einfügen,
also entweder an passenden Stellen einen Zeilenumbruch oder ein Leerzeichen, oder einfach alle x zeichen ein zerospace-whitespace einfpgen, z.B. alle \ durch \+zs ersetzen, wo Windows wieder nach belieben es umbrechen kann, wenn nötig.


UND bei dem #10#13#10#13 .... entweder du machst es richtig, oder du lässt es bleiben,
denn es heißt #13#10#13#10.
Oder einfach immer nur #10, was Delphi und Windows an den meisten Stellen auch versteht.
bzw. man nehme die Konstante Delphi-Referenz durchsuchensLineBreak.
Deine Variante sind jedenfalls 3 Zeilenumbrüche #10+#13#10+#13 und hier sogar in allen möglichen Kombinationen, wo gern mal das eine oder andere Programm durchdreht, wenn es sowas bekommt.


PS: Delphi-Dialoge haben, so wie auch die Windows-Dialoge, eine Copy-Funktion drin.
Strg+C und man bekommt den Inhalt des Dialogs als Text, welcher z.B. in einen Texteditor kopiert werden kann, wo dann der komplette Text drin steht.
Das hilft auch bei ungemein vielzuvielen Zeilen, wenn der Dialog keine Scrollbar bietet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (12. Jan 2020 um 16:50 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.619 Beiträge
 
#6

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:47
Zitat:
Leider ein Windows-Problem, was ich auch schon ewig extrem krank finde, aber da gibt es leider keine Lösung.
Einfach einen eigenen Dialog mit einem eigenen TForm bauen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.615 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 16:58
Pssst, Delphi hat eine Abwärtskompatibilität, die auch in neueren Windows manchmal zum Zuge kommt.

ShowMessage bzw. MessageDlg schalten auf VCL um verwenden statt der DialogAPI (MessageBox und Verwadte) eine TForm mit TLabel und paar TButtons,
und die kann man auch gezielt verwenden.

Witzig ist dort, dass man da z.B. auch die Captions der Buttons ändern kann.


Nur bei einem kommt diese Delphi-Funktion nicht ganz dem Windows-Styleguide hinterher,
wo z.B. Trennlinen und abgesetzte Farben zu den Buttons existieren oder wie sich im laufe der Jahre die Buttons verschoben. (mitte, links oder rechts)
Über die WinAPI hat man den Vorteil immer einen Dialog nach dem aktuellen Design/Style-Guide des OS zu bekommen
und bei dem Anderen kann man nach blieben an der Delphi-Form rumpfuschen, bevor/nachdem sie angezeigt wird.

ShowMessage -> ShowMessagePos -> MessageDlgPos -> MessageDlgPosHelp -> DoTaskMessageDlgPosHelp bzw. Delphi-Referenz durchsuchenCreateMessageDialog+DoMessageDlgPosHelp
Delphi-Quellcode:
function MessageDlgPosHelp(...): Integer;
begin
  if TOSVersion.Check(6) and UseLatestCommonDialogs and IsNewCommonCtrl and StyleServices.IsSystemStyle then
    Result := DoTaskMessageDlgPosHelp('', Msg, DlgType, Buttons, HelpCtx, X, Y, HelpFileName)
  else
    Result := DoMessageDlgPosHelp(CreateMessageDialog(Msg, DlgType, Buttons), HelpCtx, X, Y, HelpFileName);
end;

Und ja, bei Datei>Neu gibt es im Delphi auch einige Vorlagen für Dialoge (Panels und Buttons).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (12. Jan 2020 um 19:46 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.338 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: ShowMessage oder Format kürzt Texte

  Alt 12. Jan 2020, 19:23
Danke für eure Hinweise. Ich dachte, es gibt bei ShowMessage einen Parameter, der etwas kürzt oder eben nicht.
Im Moment habe ich den String so gekürzt, damit man das besser sieht, aber später muss ich mir mal eure Hinweise näher anschauen.
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf