function KortPadIn(Pad: string; maxL: Integer): string; const start = 6; MinFileL = 12; var TempPad : string; Lfile : Integer; i : Integer; begin if (length(Pad) > maxL) and (maxL > (start + MinFileL)) then begin Lfile := Length(Pad); for i := Length(Pad) downto 0 do if Pad[i] = '\' then begin Lfile := Length(Pad) - i; Break; end;
if (length(TempPad) - Lfile) > 1 then for i := 1 to (length(TempPad) - Lfile) do if TempPad[i] = '\' then begin {copy everything after the first '\' from the left} TempPad := copy(TempPad, i, 255); Break; end; TempPad := copy(Pad, 1, 3) + '...' + TempPad; KortPadIn := TempPad; end else KortPadIn := Pad; end;
procedure TForm1.Button1Click(Sender: TObject); begin showmessage(KortPadIn(application.ExeName, 30)); end;
Tak for det dkn... Det virker... Men hvis det nu kun er en folder man klikker på virker det ikke... Det er først når det det er en fil man klikker på... Kan det også laves så det virker såvel på filer som på folder???
jo jens det kunne da godt ske, kendte heller ikke den function. Tror bare det er nemmere at forholde sig til lengten af chars istedet for hvor mange pixels der går på en char.
Ja det problem løser begge functions jo :) bare på hver sin måde...
Men fremover vil jeg da nok vælge MinimizeName() og så i paramenteren maxlen må man jo bare bruge Canvas.TextWidth('Sin text') så har man jo samme resultat som den anden function.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.