ShowMessage kürzt lange Dateinamen
-
- Beiträge: 63
- Registriert: Di 11. Mär 2014, 00:33
ShowMessage kürzt lange Dateinamen
Bei der Ausgabe eines Dateinamens mit der ShowMessage-Funktion bekomme ich eine gekürzte Variante des Dateinamens anstatt den vollen Dateinamen angezeigt. Also so etwas wie "C:\Users\XX\YY\...\Datei.TXT" anstatt den Namen ohne die Punkte.
Gebe ich den selben String mit dem Dateinamen zum Beispiel in einem Memo aus, ist er komplett. Es kann also nicht an dem String oder der String-Variable liegen.
Gerne möchte ich auch den vollen Dateinamen mit der ShowMessage Funktion anzeigen lassen. Geht das irgendwie? Alle anderen langen Strings werden komischerweise richtig durch ShowMessage angezeigt, der Fehler tritt nur bei Dateinamen auf.
PS: Ich benutze Windows 7 und Lazarus 1.0.14.
Gebe ich den selben String mit dem Dateinamen zum Beispiel in einem Memo aus, ist er komplett. Es kann also nicht an dem String oder der String-Variable liegen.
Gerne möchte ich auch den vollen Dateinamen mit der ShowMessage Funktion anzeigen lassen. Geht das irgendwie? Alle anderen langen Strings werden komischerweise richtig durch ShowMessage angezeigt, der Fehler tritt nur bei Dateinamen auf.
PS: Ich benutze Windows 7 und Lazarus 1.0.14.
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Re: ShowMessage kürzt lange Dateinamen
Wird wohl weniger an showmessage liegen.
Wie ermittlest du den den denn Dateinamen/Pfad?
Wie ermittlest du den den denn Dateinamen/Pfad?
-
- Beiträge: 63
- Registriert: Di 11. Mär 2014, 00:33
Re: ShowMessage kürzt lange Dateinamen
Der Pfad/Dateiname ist in einer lokalen Variable als String gespeichert und den habe ich selbst zusammengesetzt:
Gibt die Ausgabe: C:\Ordner\Ordner\Ordner\Ordner\Ordner\O...\Datei.dat'
Code: Alles auswählen
s:='C:\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Datei.dat';
showmessage(s);
Re: ShowMessage kürzt lange Dateinamen
Lazarus 1.2RC2 -fpc 2.6.2 unter Win32
- Dateianhänge
-
- 2014-03-13_030256.png (5.17 KiB) 1819 mal betrachtet
Re: ShowMessage kürzt lange Dateinamen
unter Win7 64bit
- Dateianhänge
-
- 2014-03-13_031444.png (2.79 KiB) 1819 mal betrachtet
Re: ShowMessage kürzt lange Dateinamen
auch wenn unter winXP kompiliert wird, zeigt Win7--64bit as obige Bild,
liegt also wohl an der Windowsversion
hde
liegt also wohl an der Windowsversion
hde
-
- Beiträge: 63
- Registriert: Di 11. Mär 2014, 00:33
Re: ShowMessage kürzt lange Dateinamen
Dann bin ich wohl nicht der einzige, bei dem das passiert..
Gibts irgendeine Möglichkeit dieses Verhalten abzustellen?!
Gibts irgendeine Möglichkeit dieses Verhalten abzustellen?!
-
- Beiträge: 6912
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ShowMessage kürzt lange Dateinamen
Ich habe auch ein bisschen probiert.
Da kommen keine '...', dafür macht diverse Zeilenumbrucke.
Wenn keine Leerzeichen vorhanden sind, dann macht er am Ende '...' .
Anstelle von ShowMessage kann ich Application.MessageBox nehmen, mit dem gleichen Ergebniss.
Code: Alles auswählen
s:= 'kgjlhgjgljkljgklhjgkljlö dfgköljdkslhjgkjnkldsn jhklgnhgklhjdlkghjk ljhklgjhklhjklhöjhk lfjhklfdjhklfdjhlkhjfkl hjdflkhfjdhklfhjl'#13#10'doom';
Code: Alles auswählen
s:= 'kgjlhgjgljkljgklhjgkljlödfgköljdkslhjgkjnkldsnjhklgnhgklhjdlkghjkljhklgjhklhjklhöjhklfjhklfdjhklfdjhlkhjfklhjdflkhfjdhklfhjl';
Anstelle von ShowMessage kann ich Application.MessageBox nehmen, mit dem gleichen Ergebniss.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 63
- Registriert: Di 11. Mär 2014, 00:33
Re: ShowMessage kürzt lange Dateinamen
Also bleibt einem wohl nichts anderes übrig als einen eigenen Message-Dialog zu schreiben, der die Sache vernünftig darstellt.. 

-
- Beiträge: 6912
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: ShowMessage kürzt lange Dateinamen
Ich habe da noch einen Lösungsweg, welcher noch angepasst werden muss.
Code: Alles auswählen
procedure TForm1.FormShow(Sender: TObject);
var
s: string;
begin
s := 'C:\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Ordner\Datei.dat';
Label1.Caption := s;
Label1.Left := 30;
Label1.Top := 30;
ClientWidth := Label1.Width + 60;
ClientHeight := Label1.Height + 120;
Button1.Left := ClientWidth div 2 - Button1.Width div 2;
Button1.Top := Label1.Top + Label1.Height + 30;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot