![]() |
WinAPI Funktion GetShortPathName
Hallo!
hab mal Folgende Frage Mit dieser Funktion können Lange Pfade in kurtze umgewandelt werden:
Code:
meinen code:
uses
Windows, SysUtils; function GetShortName(sLongName: string): string; var sShortName: string; nShortNameLen: Integer; begin SetLength(sShortName, MAX_PATH); nShortNameLen := GetShortPathName(PChar(sLongName), PChar(sShortName), MAX_PATH - 1); if (0 = nShortNameLen) then begin // handle errors... end; SetLength(sShortName, nShortNameLen); Result := sShortName; end; // Example: procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetShortName('C:\Program Files\Delphi6\Lib\test.cnt'); // --> C:\PROGRA~1\Delphi6\Lib\test.cnt end;
Code:
function GetShortName(sLongName: string): string; var sShortName: string; nShortNameLen: Integer; begin SetLength(sShortName, MAX_PATH); nShortNameLen := GetShortPathName(PChar(sLongName), PChar(sShortName), MAX_PATH - 1); if (0 = nShortNameLen) then begin // handle errors... end; SetLength(sShortName, nShortNameLen); Result := sShortName; end; procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetShortName(Edit1.Text); end; Es funktioniert nicht. Was mach ich falsch? Hoffe ihr könnt mir helfen und danke schonmal im Voraus. Peter kiers |
Re: WinAPI Funktion GetShortPathName
Funktioniert doch.
Ist die Frage was du bei edit1.text drinn hast. Ich hab edit1 so gefüllt:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var d:TOpendialog; begin d:=TOpendialog.Create(self); d.Execute; edit1.Text:=d.FileName; d.free; end; |
Re: WinAPI Funktion GetShortPathName
Existiert die Datei auch?
Und eventuell gibt es auch Probleme mit relativen Pfaden. |
Re: WinAPI Funktion GetShortPathName
Code:
Bei Caption:
procedure TForm1.Button1Click(Sender: TObject);
var d:TOpendialog; begin d:=TOpendialog.Create(self); d.Execute; caption := d.FileName; d.free; end; C:\Documents and Settings\HP_Eigenaar\Bureaublad\Test.doc Dass ist doch nich kurtz! Peter |
Re: WinAPI Funktion GetShortPathName
Nee, isses nich :angel:
dann solltest du dir wohl mal den Fehlercode anzeigen lassen, welchen GetShortPathName zurückgibt. ![]() |
Re: WinAPI Funktion GetShortPathName
Ich habe es schon
Delphi-Quellcode:
Danke fur die Hilfe.
procedure TForm1.Button1Click(Sender: TObject);
var d:TOpendialog; begin d:=TOpendialog.Create(self); d.Execute; Caption := GetShortName(d.FileName); d.free; end; Peter Kiers [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Re: WinAPI Funktion GetShortPathName
Hi,
ich würde d.Execute nicht einfach so aufrufen, besser wäre:
Delphi-Quellcode:
Gruß
procedure TForm1.Button1Click(Sender: TObject);
var d: TOpendialog; begin d := TOpendialog.Create(self); try if d.Execute then Caption := GetShortName(d.FileName); finally d.free; end; end; |
Re: WinAPI Funktion GetShortPathName
Danke viel mals.
peter Kiers |
Re: WinAPI Funktion GetShortPathName
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz