Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einen String auf eine bestimmte Länge kürzen mit '...'hinten (https://www.delphipraxis.net/4754-einen-string-auf-eine-bestimmte-laenge-kuerzen-mit-hinten.html)

Stanlay Hanks 10. Mai 2003 20:20


Einen String auf eine bestimmte Länge kürzen mit '...'hinten
 
Hallo zusammen: Ich weiß, das is niy großartiges, aber ich hab mir gedacht, dass das ab und zu ganz nützlich sein kann.
Wenn man z.B. in ein Label einen Pfad einfügt, der zu lang ist um aufs Form zu passen, denke ich, kann man das gut gebrauchen.
Aus C:\Programme\Mein Programm\Ini Dateien\ wird dann
C:\Programme\Mein Pro...


Delphi-Quellcode:
function TMainForm.Namenlaenge(Text: String; MaxLenght: Integer): String;
var i : Integer;
istr : String;
begin
IF Length(Text) >= MaxLenght THEN
begin
For i := 1 to MaxLenght do
begin
istr := istr + Text[i];
end;
Namenlaenge := istr+'...';
end
ELSE
Namenlaenge := Text;
end;
Aufrufen könnte man das dann so:

Delphi-Quellcode:
Label1.hint   := Label1.caption; //Der Lange Text wird als Hint angezeigt
Label1.caption := Namenlaenge(Label1.caption,30) //30 ist die Anzahl der Endlänge des Strings
Man liest sich, Stanlay :mrgreen:

Stanlay Hanks 10. Mai 2003 20:31

Nailor hat mich gerade aufgeklährt, dass das viel leichter mit Copy geht. Also ist meine Funktion oben doch nicht so zu empfehlen.

ssach 11. Mai 2003 01:57

hy

ja, am besten benutzt du einfach die funktionen copy, delte und fuest dann einfach 3 punkte hintendran!

cu

Luckie 11. Mai 2003 03:08

Liste der Anhänge anzeigen (Anzahl: 1)
Unpraktisch. Mich würde das letzte Verzeichnis mehr interessieren. Hast du schon mal gekuckt wie viele Unterordner es im Verzeichnis C:\Programme gibt?
Im Anhang meine Version. Man kann angeben wie viele "\" man sehen will und dann werden die Ordner in der Mitte durch "..." ersetzt.

Sharky 11. Mai 2003 07:32

Zitat:

Zitat von Luckie
.... Man kann angeben wie viele "\" man sehen will und dann werden die Ordner in der Mitte durch "..." ersetzt.

Hai ihr,

die optimale Variante wäre wenn der String so angepasst wird das er einfach genau in eine Label passt.

Es müsste an die Funktion also noch ein Label übergeben werden. Dann ermitteln wie breit das Label ist und entsprechend diesem Wert den String so zu kürzen das :

a: Das laufwerk
b: Der Dateiname bzw. der letzte Unterordner

zu sehen ist.

mirage228 11. Mai 2003 08:26

wenn für eine DirectoryListBox den "Dirlabel" einstellt, dann zeigt der das auch so ähnlich an. Man könnte doch den Source davon mal angucken oder?

Tom 11. Mai 2003 09:03

Zitat:

Zitat von Sharky
die optimale Variante wäre wenn der String so angepasst wird das er einfach genau in eine Label passt.

MinimizeName (Unit FileCtrl).

Sharky 11. Mai 2003 09:17

Zitat:

Zitat von Tom
MinimizeName (Unit FileCtrl).

Irgendwann setzt ich mich mal hin und lerne alle Funktionen von Delphi :shock:

Seit welcher Version gibt es denn MinimizeName?

mirage228 11. Mai 2003 09:54

das geht sogar bei mir (Delphi 3 Professional)...

Daniel B 11. Mai 2003 09:58

Hallo,

ich habe den Thread nach Delphi-Language verschoben.
Es muss ja nicht sein das in Library-Beiträgen so viel diskutiert wird.
Wenn Ihr Euch dann wieder einig seid, machts doch einfach ein neuen Eintrag mit dern endgültigen Lösung. Danke.

Grüsse, Daniel :hi:


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