Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi MinimizeName für TForm.Caption (https://www.delphipraxis.net/183218-minimizename-fuer-tform-caption.html)

Willie1 20. Dez 2014 16:26

MinimizeName für TForm.Caption
 
Hallo Leute,
kann man einen Pfad sinnvoll verkürzen wie TLabel.Caption mit MinimizeName für Caption von TForm?
Danke für Hilfe.
Gruß Willie.

Helmi 20. Dez 2014 17:42

AW: MinimizeName für TForm.Caption
 
Hallo,

ich hab jetzt deine Frage mehr als einmal gelesen, aber verstehen tu ich sie nicht.
Was für einen Pfad meinst du?

Insider2004 20. Dez 2014 17:52

AW: MinimizeName für TForm.Caption
 
function MinimizeName(const Filename: TFileName; Canvas: TCanvas; MaxLen: Integer): TFileName;

Zacherl 20. Dez 2014 18:05

AW: MinimizeName für TForm.Caption
 
Das Problem wird vermutlich sein das NonClient Area Canvas zu bekommen. Das weiteren muss dir klar sein, dass die Caption im Fenstertitel deutlich länger sein kann, als die entsprechende Darstellung davon in der Taskleiste.

Willie1 20. Dez 2014 18:41

AW: MinimizeName für TForm.Caption
 
Hallo Zacherl, ich melde mich morgen, bis dann. W.

Willie1 21. Dez 2014 09:45

AW: MinimizeName für TForm.Caption
 
Hallo zusammen,
ich bin nur Hobbyprogrammierer, weiß aber, dass ein Dateipfad mit MinimizeName nur zusammen mit TLabel auf die Breite von TLabel.Width verkürzt werden kann. Schon bei TStaticText funktioniert das nicht. Ich habe folgende Links gefunden. Kann mir jemand helfen, einen Dateipfad für TLabel.Caption zu verkürzen. Vielen Dank für eure Hilfe!

Delphipraxis
scalabium
delphi.about

Willie

Sir Rufo 21. Dez 2014 10:01

AW: MinimizeName für TForm.Caption
 
Und das hier hilft nicht?

http://delphi.about.com/library/rtl/...nimizeName.htm

Du benötigst zwingend den Canvas, wo du den verkürzten Dateinamen zeichnen möchtest. Denn abhängig von dem Font, Schriftgröße, etc. etc. kann doch erst die resultierenden Länge eines jeden Zeichens ermittelt werden. Einfach nur so mal eben ermitteln geht nicht, denn wie soll es ohne die Information ermittelt werden.

Willie1 21. Dez 2014 11:28

AW: MinimizeName für TForm.Caption
 
Hallo Rufo,
die Lösung ist ganz einfach:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  sPfad: string;
begin
  sPfad:='C:\Windows\Programme\XYZABC\12345\Hinweis.exe';
  self.Caption:=MinimizeName(sPfad,Form1.Canvas,200);
end;
Dein Hinweis auf Canvas und das Beispiel haben weiter geholfen. Danke!
Willie.

Luckie 21. Dez 2014 12:39

AW: MinimizeName für TForm.Caption
 
Aber ich glaube er meint die Caption von der Form. Und kein Label auf der Form.

Bjoerk 21. Dez 2014 13:00

AW: MinimizeName für TForm.Caption
 
Genau. Self.Canvas.Font <> lfCaptionFont. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz