Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как пользоваться функцией PickIconDlg?


Dimaxx ©   (2003-07-11 23:05:00) 

Сабж. Функция валяется в shell32.dll. В хелпе по пятой дельфе ничего нет и в shellapi не прописана. Но она есть!


Nevermind   (2003-07-12 22:11:00) [1]



function
PickIconDlg(hOwner: THandle; szFilename: PWideChar; MaxPath: Integer; var
llpIconIndex: integer): bool; stdcall; external "shell32.dll" name "PickIconDlg"; //index 62;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex: Integer;
FileName: string;

function CallPickIconDialog(var FileName: string; var IconIndex: Integer): boolean;
var
Path: PWideChar;
begin
Path := AllocMem(MAX_PATH);
try
StringToWideChar(PChar(FileName), Path, Max_Path);
Result := PickIconDlg(0, Path, MAX_PATH, IconIndex);
if Result then
FileName := WideCharToString(Path);
finally
FreeMem(Path, MAX_PATH);
end;
end;

begin
FileName := "C:\Windows\System32\Shell32.dll";
if CallPickIconDialog(FileName, IconIndex) then
( Format("FileName: %s"#13#10"IconIndex: %d", [FileName, IconIndex])



function
PickIconDlg(hOwner: THandle; szFilename: PWideChar; MaxPath: Integer; var
llpIconIndex: integer): bool; stdcall; external "shell32.dll" name "PickIconDlg"; //index 62;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex: Integer;
FileName: string;

function CallPickIconDialog(var FileName: string; var IconIndex: Integer): boolean;
var
Path: PWideChar;
begin
Path := AllocMem(MAX_PATH);
try
StringToWideChar(PChar(FileName), Path, Max_Path);
Result := PickIconDlg(0, Path, MAX_PATH, IconIndex);
if Result then
FileName := WideCharToString(Path);
finally
FreeMem(Path, MAX_PATH);
end;
end;

begin
FileName := "C:\Windows\System32\Shell32.dll";
if CallPickIconDialog(FileName, IconIndex) then
ShowMessage(Format("FileName: %s"#13#10"IconIndex: %d", [FileName, IconIndex]));
end;


Suntechnic   (2003-07-11 23:36:00) [2]

А проблема то в чём? LoadLibrary и GetProcAddress разве уже отменили?


Наверх

Титульная страница Поиск, карта сайта Написать письмо