AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Pathname kürtzen ohne MinimizeName aus Unit FileCtrl
Thema durchsuchen
Ansicht
Themen-Optionen

Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

Ein Thema von turboPASCAL · begonnen am 9. Aug 2009 · letzter Beitrag vom 9. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#1

Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 15:47
Hi,

gibt es eine Function in der Windows API oder Sysutils mit der man den
Pathnamen auf eine bestimmte Länge kürtzen kann, ohne auf die Funktion
MinimizeName aus der Unit FileCtrl zurückzugreifen ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#2

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 16:44
Delphi-Quellcode:
function MinimizeName(const Filename: string; Canvas: TCanvas; MaxLen: Integer): string;
var
  b: array [0..MAX_PATH] of Char;
  R: TRect;
begin
  StrCopy(b, PChar(Filename));
  R := Rect(0, 0, MaxLen, Canvas.TextHeight('Wq'));
  if DrawText(Canvas.Handle, b, Length(Filename), R,
    DT_SINGLELINE or DT_MODIFYSTRING or DT_PATH_ELLIPSIS or DT_CALCRECT or DT_NOPREFIX) > 0 then
    Result := b
  else
    Result := Filename;
end;
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 16:46
MinimizeName entfernt einfach nur solange Unterverzeichnisse aus dem übergebenen Pfad (und ersetzt den ausgeschnittenen Teil schließlich durch "...") bis die Länge des Textes kleiner oder gleich der übergebenen Maximallänge ist. Das lässt sich in wenigen Zeilen Code auch selber schreiben sofern man unbedingt auf FileCtrl verzichten will.

Edit: OK, das ist natürlich noch eleganter
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 17:38
Wie MinimizeName funktioniert weis ich. Ich hoffte auf eine Windowsfunction oder eine Function aus der SysUtils...
Ich such mir schon einen Wolf...

MinimizeName möchte ich nicht nutzen da ich kein Canvas habe.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 17:42
Wenn Du kein Canvas hast, woher weisst Du denn wieviel Platz Dir zur Verfügung steht? Du hättest ja von vorn herein diese ja nun nicht unwichtige "Nebenbedingung" erwähnen können
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 17:45
wenn es um das Anzeigen auf der GUI geht, dann kann man in neueren Delphis es direkt im TLabel machen (die Ellipsis-Option sollte ja kaum zu übersehn sein)

und in TStatic könnte man auch in älteren Delphis einfach via SetWindowLong den passenden WindowStyle setzen und dieses macht es auch alleine.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.651 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 17:56
Zitat von turboPASCAL:
Ich hoffte auf eine Windowsfunction oder eine Function aus der SysUtils...
[..]
MinimizeName möchte ich nicht nutzen da ich kein Canvas habe.
Daraus schließe ich, dass du einen DC hast? Denn genau der wird ja von der API benutzt.

Dann ersetze den Parameter TCanvas einfach durch einen HDC und übergib den statt Canvas.Handle (den DC des TCanvas). Nur für die Höhe musst du noch schauen, ob du die setzen musst.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 18:19
Zitat von OldGrumpy:
Wenn Du kein Canvas hast, woher weisst Du denn wieviel Platz Dir zur Verfügung steht? Du hättest ja von vorn herein diese ja nun nicht unwichtige "Nebenbedingung" erwähnen können
In der Tat. Dann wäre es aber nicht so spannend geworden.


Zitat von himitsu:
Wenn es um das Anzeigen auf der GUI geht, dann kann man in neueren Delphis es direkt im TLabel machen (die Ellipsis-Option sollte ja kaum zu übersehn sein)
und in TStatic könnte man auch in älteren Delphis einfach via SetWindowLong den passenden WindowStyle setzen und dieses macht es auch alleine.
Es geht um das Kürtzen mit wenig Aufwand des Pathes für den Fenster Titel.


Zitat von jaenicke:
Daraus schließe ich, dass du einen DC hast? Denn genau der wird ja von der API benutzt.
Dann ersetze den Parameter TCanvas einfach durch einen HDC und übergib den statt Canvas.Handle (den DC des TCanvas). Nur für die Höhe musst du noch schauen, ob du die setzen musst.
Ja, das ist kein Problem.
Nur, ich muss halt selber ran.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 18:23
schau mal auf die Seite von Lucki..da iss was..hatten wir die Woche schonmal son Thema
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Pathname kürtzen ohne MinimizeName aus Unit FileCtrl

  Alt 9. Aug 2009, 18:30
Zitat von turboPASCAL:
In der Tat. Dann wäre es aber nicht so spannend geworden.
Ich bin doch kein Elektriker
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:33 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