hoi...
entweder sind die functions und procedures total kompliziert oder ich einfach nur zu blöd..
@MathiasSimmack:
Zitat:
pchar(StringVariable)
pwidechar(StringVariable)
das hab ich ja schon probiert.. dann kommt diese fehlermeldung "datei ■■■■■■ nicht gefunden"
und das mit stringtowidechar raff ich irgendwie nicht..
angewendet wird die function doch so oder:
stringtowidechar(iconfile, pwidecharvariable, length(iconfile));
und dann:
lstrcpyW(@buf[1],pwidecharvariable);
so hab ich das verstanden.. aber funzenuckelt leider nich.. schmiert genau an dieser stelle mit 'ner zugriffsverletzung sonstwas in kernel32.dll ab...
irgendwie muss das doch machbar sein 'ne stringvarable in die widestring-variable "buf" reinzubekommen
so siehts im moment im sourcecode aus:
Delphi-Quellcode:
procedure TMainForm.PickIcon(hwndicon: HWND;
var iconfile:
string;
var iconindex: integer);
var
{$IFDEF UNICODE}
pwidecharvariable: pwidechar;
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}
stringtowidechar(iconfile,pwidecharvariable,length(iconfile));
lstrcpyW(@buf[1],pwidecharvariable);
{$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;
thx für eure mitarbeit
ToBmAsTeR