掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
“アイコンの変更”ダイアログ (ID:9953)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
にゃ〜 さんのようにやってみました。ちょっと宣言が違いますが。 WinNT,2000,XP ではうまくいくはずです。2000 で確認しました。 uses ShellAPI; function PickIconDialogW(Handle:THandle; FileName:PWideChar;var FileNameSize:DWORD; var IconIndex:DWORD):Boolean; stdcall; external 'shell32.dll' index 62; procedure TForm1.Button1Click(Sender: TObject); var Size,Index:DWORD; Filename:WideString; targetFile:string; wBuf:PWideChar; Icon:TIcon; begin Filename := 'shell32.dll'; GetMem(wBuf,MAX_PATH*2); ZeroMemory(wBuf,MAX_PATH*2); Size := Length(Filename); Move(PWideChar(Filename)^,wBuf^,Size*2); if PickIconDialogW(Handle,wBuf,Size,Index) then begin Icon := TIcon.Create; try TargetFile := WideString(wBuf); Icon.Handle := ExtractIcon(hInstance,PChar(TargetFile),Index); self.Refresh; self.Canvas.Draw(10,10,Icon); finally Icon.Free; end; end; FreeMem(wBuf); end; Win9X,Me ではファイル名が PWideChar ではなく PChar になるようです。 表示されるダイアログの[参照(B)...]からアイコンを持つ任意のファイルを選べます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.