Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизПомогите, плз, найти ошибку Найти похожие ветки
← →
ДимкаН (2002-06-03 15:16) [0]procedure TForm1.AddNewFile(F: TSearchRec);
var Icon: hIcon;
IconIndex: word;
YIcon: TIcon;
NewIconIndex: integer;
begin
with ListView1.Items.Add, F do
begin
IconIndex:=0;
ShowMessage(Name);
Icon:=ExtractAssociatedIcon(HInstance, PChar(Name), IconIndex);
YIcon:=TIcon.Create;
YIcon.ReleaseHandle;
YIcon.Handle:=Icon;
imagelist1.AddIcon(YIcon);
NewIconIndex := imagelist1.AddIcon(YIcon);
ImageIndex := NewIconIndex;
.......
Во время выполнения ExtractAssociatedIcon выдается "Программа выполнила недопустимую операцию и будет закрыта" :(
← →
Song (2002-06-03 15:18) [1]IconIndex:=1
← →
ДимкаН (2002-06-03 15:21) [2]Не, не помогает :(.
← →
Игорь Шевченко (2002-06-03 15:28) [3]Что такое Name ?
← →
Игорь Шевченко (2002-06-03 15:31) [4]Все понятно.
Надо так:
var
tmp : array[0..MAX_PATH] of char;
....
StrCopy(tmp, F.Name);
ExtractAssociatedIcon(hInstance, tmp, IconIndex);
...
Функция ExtractAssociatedIcon меняет содержимое строки, в которой указан путь до файла.
← →
ДимкаН (2002-06-03 15:32) [5]Name - это имя файла в записи F: TSearchRec.
← →
ДимкаН (2002-06-03 15:37) [6]Спасибо, помогло! :)
← →
Song (2002-06-03 15:38) [7]TSearchRec.Name - это имя файла без пути насколько мне не изменяет память, поэтому ExtractAssociatedIcon() не находит файла.
ЗЫ: ImageIndex:=0; тоже была бы ошибкой.
← →
ДимкаН (2002-06-03 16:01) [8]Вообще-то да. Вылетать перестала, стала даже иконки рисовать, но для незарегистрированных приложений. Руками прописал зарегистрированное - помогло. Будем думать, как путь вставить :). В TSearchName он, как ни обидно, в явном виде не входит...
← →
Song (2002-06-03 17:27) [9]:) А как поиск-то делаешь ? Покажи кусок с FindFirst/FindNext
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c