Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
510 Beiträge
 
Delphi 11 Alexandria
 
#1

Pfad beim PickIconDialog wird gekürzt

  Alt 21. Mär 2005, 17:50
Hallo, ich hoffe ihr könnt mir mal wieder helfen.

Und zwar verwende ich folgenden Code um mir den Iconauswahldialog von Windows anzeigen zu lassen. Eigentlich funktioniert alles auch ganz gut, aber wenn der neu ausgewählte Pfad zu einem Icon länger ist als der alte, wird mir der Rest des Pfades abgeschnitten und ist somit nicht mehr brauchbar.

Hat einer von Euch vielleicht eine Idee was ich falsch mache?

Delphi-Quellcode:
function PickIconDlg(Handle: THandle; FileName: PChar; FileNameSize: integer;
  var IconIndex: Integer): Boolean; stdcall; external 'shell32.dllindex 62;

procedure TfrmEditApp.PickIcon(hwndicon: HWND; var iconfile : string; var iconindex: integer);
var
  buf : widestring;
  idx : Integer;
begin
  SetLength(buf,MAX_PATH * 2);
  ZeroMemory(@buf[1],length(buf));

  buf := widestring(iconfile);
  idx := iconindex;

  if(PickIconDlg(hwndicon, PChar(PWideChar(buf)), length (buf), idx)) then
    begin
      buf := widestring(buf);
      iconfile := string(buf);
      iconindex := idx;
    end;
end;


{*** Iconauswahldialog aufrufen ***}
procedure TfrmEditApp.btnIconDlgClick(Sender: TObject);
var
  FileName : String;
  Idx: Integer;
begin
  if aAppIcon.Text = 'then
    begin
      FileName := aAppPfad.Text;
      Idx := 0;
    end
  else
    begin
      FileName := aAppIcon.Text;
      Idx := StrToInt(aAppIconNr.Text);
    end;
  PickIcon(Handle, Filename, Idx);

  aAppIcon.Text := Filename;
  aAppIconNr.Text := IntToStr(Idx);
end;
  Mit Zitat antworten Zitat