AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dialog zur Icon-Auswahl

Ein Thema von ToBmAsTeR · begonnen am 11. Aug 2004 · letzter Beitrag vom 13. Aug 2004
 
ToBmAsTeR

Registriert seit: 8. Nov 2003
Ort: Moers
13 Beiträge
 
#6

Re: Dialog zur Icon-Auswahl

  Alt 11. Aug 2004, 14:33
moiin...


ein problem gelöst.. nun hab ich gleich das nächste.

den dialog kann ich jetzt problemlos öffnen, den dateinamen und den index bekomm ich auch ohne probleme raus, nur das öffnen einer angegebenen datei klappt leider nich so ganz.

ich hab das hier fast komplett aus dem beispielprogramm übernommen, geändert habe ich nur ein paar namen der variablen, das ist auch nicht das problem.


Delphi-Quellcode:
procedure TMainForm.PickIcon(hwndicon: HWND; var iconfile: string; var iconindex: integer);
var
{$IFDEF UNICODE}
  buf : widestring;
{$ELSE}
  buf : string;
{$ENDIF}
  idx : dword;
begin
 // "buf" auf MAX_PATH setzen, & leeren
{$IFDEF UNICODE}
 SetLength(buf,MAX_PATH * 2);
{$ELSE}
 SetLength(buf,MAX_PATH);
{$ENDIF}
 ZeroMemory(@buf[1],length(buf));

 // "iconfile" als Ausgangspunkt festlegen
{$IFDEF UNICODE}
 lstrcpyW(@buf[1],pwidechar(iconfile));
{$ELSE}
 lstrcpy(@buf[1],pchar(iconfile));
{$ENDIF}

 // Dialog aufrufen
{$IFDEF UNICODE}
 if(PickIconDlg(hwndicon,pwidechar(buf),length(buf),idx)) then
{$ELSE}
 if(PickIconDlg(hwndicon,pchar(buf),length(buf),idx)) then
{$ENDIF}

 begin
{$IFDEF UNICODE}
  buf := widestring(buf);
  iconfile := string(buf);
  iconindex := idx;
{$ELSE}
  buf := string(buf);
  iconfile := buf;
  iconindex := idx;
{$ENDIF}
 end;
end;

das eigentliche problem tritt in diesen zeilen auf:
Delphi-Quellcode:
 // "iconfile" als Ausgangspunkt festlegen
{$IFDEF UNICODE}
 lstrcpyW(@buf[1],pwidechar(iconfile));
{$ELSE}
 lstrcpy(@buf[1],pchar(iconfile));
{$ENDIF}
iconfile ist eine string-variable, der in der dieser prozedur ein dateiname übergeben wird, aber das funzt nicht.. obwohl es ja eigentlich das gleiche ist wie das hier (bis auf die variable):
Delphi-Quellcode:
// "explorer.exe" als Ausgangspunkt festlegen
{$IFDEF UNICODE}
 lstrcpyW(@buf[1],'explorer.exe');
{$ELSE}
 lstrcpy(@buf[1],'explorer.exe');
{$ENDIF}
(stammt aus dem beispiel von MathiasSimmack)

was ich jetzt nicht raffe, dass da String nicht gleich String ist
oder mag der an dieser stelle keine absoluten pfadangaben (c:\windows\explorer.exe) die aus einer string variable kommen, anstatt direkt als string ('c:\windows\explorer.exe')?

ich hoffe ihr könnt mir weiterhelfen...

in der zwischenzeit mach ich mir gedanken über eine history und backup-funktion meines programms

thx schonmal
ToBmAsTeR

[EDITED] gramatikalische und sonstige fehlaaa [/EDITED]
  Mit Zitat antworten Zitat
 


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 03:38 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