Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - MinimizeName()


D. Annies - Di 16.02.10 09:36
Titel: MinimizeName()
Hi, Delpher,

mit dem folgenden Code versuche ich, einer Label.Caption das MinimizeName-Ergebnis zuzuweisen, aber ich bekomme nur einen Teilstring angezeigt und nicht die abgekürzte Ansicht. Liegt es am Array .. of Char?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TPatMatForm.ReceiveStrVariable(var msg: TWMCopyData );
var sText  : array[0..256of Char;
begin
  StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
  qFname := sText;
  //Label11.Caption := qFname;       {uses FileCtrl/SysUtils}
  Label11.Caption := MinimizeName(qFname,        //Der abzukürzende Pfadname
                                  Label11.Canvas, //Die Referenz-Zeichenfläche
                                  Label11.Width); //Die maximale Ausgabe-Breite
  Label11.Hint := qFname; Button9.Hint := qFname;
  opendialog1.FileName := qFname;
end;


Vielen Dank für Hilfe,
Detlef


Bergmann89 - Di 16.02.10 09:44

Hey,

ist qFname auch ein array, oder ein String? Wie is der gesammte Dateiname? Welchen Teil bekommst du angezeigt?

MfG Bergmann.


D. Annies - Di 16.02.10 09:55

Hi, Bergmann,

qFname ist vom Typ Filename;
Der gesamte Dateiname ist z.B. F:\Daten\Delphi\Aktuell\Buch\2010\Namensliste.txt
Angezeigt bekomme ich Namensliste.tx (das Label ist klein)

Also, gewünscht ist ja etwa: F:\..\Namens..
Im Hint lasse ich mir sowieso den gesamten Dateinamen anzeigen und das geht auch.

Detlef


jasocul - Di 16.02.10 10:59

Ist Dein Label vielleicht so klein, dass selbst der Dateiname alleine schon nicht hineinpasst?
Soweit ich die Funktion MinimizeName verstehe, werden nur die Verzeichnisse durch Punkte ersetzt und der Dateiname bleibt unverändert erhalten.


D. Annies - Di 16.02.10 11:11

Hi, Peter,
das werde ich mal gleich prüfen,
Detlef

P.S.
Ja, das war's. Danke


matze - Di 16.02.10 13:16

Es gibt bei einem Label doch extra eine Eigenscaft, die man setzen kann um einen solchen Effekt zu erzielen.
Ich glaube Ellipsis oder so hieß die Eigenschaft.


D. Annies - Di 16.02.10 14:18

Da hast du recht - danke, aber dann muss ich eine neue Kompo installieren.


matze - Di 16.02.10 16:02

wieso das denn? das ist doch das normale TLabel...


D. Annies - Mi 17.02.10 15:29

Hi, Matze,
das kann ich leider nicht erkennen!
Klar mich mal auf!
Gruß, Det


matze - Mi 17.02.10 15:42

shot
So meine ich das. Aber ich sehe grade, dass du maximal mit D2006 unterwegs bist. Es kann schon sein, dass dieses Feature da noch gar nicht eingebaut war.


Bergmann89 - Mi 17.02.10 15:43

Hey,

die Ellipsis-Eigenschaft gibts bei mir auch nich. Liegt vlt daran das Matze ein neueres Delphi hat als wir?!

MfG Bergmann


D. Annies - Mi 17.02.10 17:14

Ja, so isses! *vollneidischsei*
Det


matze - Mi 17.02.10 20:22

Oh. Sorry. Ich dachte das wäre schon früher dazugekommen...


D. Annies - Mi 17.02.10 22:15

*Immernochvollneidischsei* :wink: :D