Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

ВЫТЯГИВАНИЕ ИКОНКИ. ПОМОГИТЕ!   Найти похожие ветки 

 
-Alex-   (2002-10-27 12:21) [0]

Здравствуйте!

При загрузки иконки BMP файла в Image1 я получаю вместо иконки изображения BMP файла. Как можно от этого избавиться? Мне нужно получить ассоциированную иконку.

procedure TForm1.Button1Click(Sender: TObject);
var
IconIndex : word;
begin
IconIndex := SpinEdit1.Value;
Image1.Picture.Icon.Handle := ExtractAssociatedIcon(HInstance,
Pchar(Edit1.Text),IconIndex);
end;


 
PKT   (2002-10-28 03:45) [1]

Выдержка из Hepl-а:
The ExtractAssociatedIcon function returns the handle of an indexed icon found in a file or an icon found in an associated executable file.
Обратите внимание на слово executable.

Для BMP-файлов используется ассоциированная иконка,
хранящаяся в mspaint.exe ,индекс = 1.
Попробуйте следующее, только поставьте обработку ошибок.


var
FileName: string;
S: string;
Reg: TRegistry;
Open: Boolean;
Pos: Integer;
Index: Integer;
begin
FileName := Edit1.Text;
S := UpperCase(ExtractFileExt(FileName));
if (S = ".EXE") or (S = ".DLL") or (S = ".ICO") then
begin
Index := 0; // или 1, 2, в завис. от числа иконок
S := FileName;
end
else begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey("Software\CLASSES", False);
if Reg.OpenKey(S, False) then begin
S := Reg.ReadString("");
Reg.OpenKey("\Software\CLASSES\" + S +
"\DefaultIcon", False);
S := Reg.ReadString("");
Pos := System.Pos(",", S);
Index := StrToInt(Trim(Copy(S, Pos + 1, 255)));
System.Delete(S, Pos, 255);
end;
Reg.Free;
end;
Image1.Picture.Icon.Handle :=
ExtractIcon(HInstance, PChar(S), Index);
end;




Страницы: 1 вся ветка

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
1-21583
deffer
2002-10-30 09:21
2002.11.07
Надо ли


14-21797
Forever
2002-10-17 19:14
2002.11.07
Настройка win2k


14-21796
Феликс
2002-10-10 15:38
2002.11.07
Тренир запретил мне думать или вопрос к качкам.


14-21770
MsGuns
2002-10-18 12:17
2002.11.07
Происхождение логина


1-21558
_saha_
2002-10-29 14:09
2002.11.07
ламерский вопрос