MinimizeName -> Pfadname für Anzeige verkürzen



  • Hi Leuz,
    es gibt eine Funktion, die einen langen Pfadnamen auf eine bestimmte Länge verkürzen kann, z.B. wird aus dem Pfad

    c:\documente\Eigene Dateien\Alles Meins\Privat\Text1.dat
    

    ungefähr so was

    c:\documente\...\Text1.dat
    

    Ich such schon wie wild in der Hilfe, find diese Funktion aber nicht mehr. Weiss jemand zufällig wie diese Funktion heisst ? Ich such mal inzwischen weiter images/smiles/icon_wink.gif

    [ Dieser Beitrag wurde am 15.01.2002 um 16:46 Uhr von AndreasW editiert. ]



  • Tja, so einfach ist das mit einem relativen Pfad leider nicht.
    Aber falls die Datei in dem Verzeichnis liegt, in dem auch die .exe Datei liegt, sollte das funktionieren.
    AnsiString Tap = GetCurrentDir() + "\\deine Datei.txt".



  • Ne, ne, Du hast mich falsch verstanden. Wenn Du ne Pfadangabe hast, die aber z.B. in einen StaticText wegen seiner Länge nicht rein passt, kann die gesuchte Funktion den ganzen Pfad wie oben genannt verkürzen. Diese Funktion gibt es, hab aber leider den Namen vergessen und suche bisher vergeblich danach images/smiles/icon_sad.gif



  • Ich habs wieder gefunden (endlich). Die Funktion heisst MinimizeName, die Headerdate dafür heisst filectrl.hpp.
    Hier ein kleines Beispiel. Diese Routine zeigt einen Pfad in einem TStaticText an und passt die Länge des anzuzeigenden Pfadnamens automatsch an die Länge des TStaticText an.

    void TForm1::ShowFileName(AnsiString str, TStaticText *ST)
    {
      TCanvas *Canvas=new TCanvas();
    
      Canvas->Handle=GetDC(ST->Handle);
      Canvas->Font->Assign(ST->Font);
    
      ST->Caption=MinimizeName(str, Canvas, ST->Width);
    
      ReleaseDC(ST->Handle, Canvas->Handle);
      delete Canvas;
    }
    

    [ Dieser Beitrag wurde am 19.01.2002 um 18:16 Uhr von Jansen editiert. ]



  • Hi Peter, alter Haudegen images/smiles/icon_biggrin.gif

    Ich schiebs mal in die FAQ, dann findest du es leichter wieder images/smiles/icon_wink.gif


Anmelden zum Antworten