Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 197

/ вопрос открыт /

Здравствуйте!
Подскажите пожалуйста!
я перетаскиваю файлы методом drag&drop их иконки отображаются в связке imagelist и listview. как сохранить эти иконки и их параметры в файл, чтобы при старте программы они загрузились и отобразились?

grater Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: grater (статус: Посетитель)
Вопрос отправлен: 16 сентября 2009, 15:46
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: min@y™

Короче, если я правильно понял...
Берёшь компонент TSysImageList и заменяешь им свой ImageList. Затем пишешь соответствующий обработчик события ListView.OnGetImageIndex, где и подставляешь нужный ImageIndex для каждого Item'a с помощью метода TSysImageList.ImageIndexOf(<имя_файла>).
Вот и всё, иконки файлов больше не надо нигде хранить.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 16 сентября 2009, 17:50

Ответ #2. Отвечает эксперт: Жикльор

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

Насколько я знаю, если вы создаете ImageList, то он автоматически создают ресурсный файл, в котором все помещаеться, а при компиляции внедряеться в ехе-файл.

Ответ отправил: Жикльор (статус: 5-ый класс)
Время отправки: 18 сентября 2009, 15:37


Мини-форум вопроса

Всего сообщений: 38; последнее сообщение — 22 сентября 2009, 13:57; участников в обсуждении: 3.

Страницы: [« Предыдущая] [1] [2]

min@y™

min@y™ (статус: Доктор наук), 16 сентября 2009, 20:44 [#21]:

А чо у тебя за версия Delphi?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
grater

grater (статус: Посетитель), 16 сентября 2009, 20:44 [#22]:

7
min@y™

min@y™ (статус: Доктор наук), 16 сентября 2009, 20:57 [#23]:

У меня тоже 7 и всё работает.
Я щас скачал этот кампонент и прошарил по исходникам поиском. Нет ни одного вхождения слова DsgnIntf в этих файлах. Как тебе удалось получить эту ошибку?

Могу тебе скинуть готовый пакет компонентов этого автора (Kambiz R. Khojasteh), где есть и этот компонент. Этот пакет я собрал сам и он спокойно ставится на Delphi 7.
Или найди, где в исходнике встречается DsgnIntf и замена на DesignIntf, DesignEditors.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
grater

grater (статус: Посетитель), 16 сентября 2009, 21:05 [#24]:

заменил на DesignIntf другая ошибка.если не трудно скинь кампонент
grater

grater (статус: Посетитель), 16 сентября 2009, 21:09 [#25]:

DesignIntf, DesignEditors причем разные ошибки
min@y™

min@y™ (статус: Доктор наук), 16 сентября 2009, 21:18 [#26]:

Цитата (grater):

если не трудно скинь кампонент

Куда?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
grater

grater (статус: Посетитель), 16 сентября 2009, 21:21 [#27]:

grater83@MAIL.RU
min@y™

min@y™ (статус: Доктор наук), 16 сентября 2009, 21:52 [#28]:

Выслал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
grater

grater (статус: Посетитель), 16 сентября 2009, 22:02 [#29]:

скачал,поставил,сделал как было написано поясни по поводу индексов
min@y™

min@y™ (статус: Доктор наук), 16 сентября 2009, 22:29 [#30]:

Чо пояснять-то? Всё в ответе написано. Что непонятно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 18 сентября 2009, 16:19 [#31]:

to Обрезков Евгений Евгенийович
да, ImageList помещается в ресурс, но не в отдельный, а прямо в ресурс формы. Но как это поможет вопрошающему?
Галочка "подтверждения прочтения" - вселенское зло.
grater

grater (статус: Посетитель), 21 сентября 2009, 22:32 [#32]:

спасибо за помощь не много изменил работает
есть не большое но,если не решу обращусь.
спасибо.
grater

grater (статус: Посетитель), 22 сентября 2009, 12:47 [#33]:

Вадим здравствуйте, если не трудно можете вставить код в обработчик так будет понятнее,а вече путь к файлу ,что я хочу изменить.
var sl:TStringList;
i:integer;
itm:TListItem;
FileInfo: SHFILEINFO;
f:tIcon;
k: string;
begin
sl := TStringList.Create;

if FileExists('C:\1.txt') then
sl.LoadFromFile('C:\1.txt');

for i := 0 to sl.count -1 do
begin
If DirectoryExists(sl[i]) then continue;
itm:=ListView1.Items.Add;
f:=tIcon.create;
SHGetFileInfo(PChar(sl[i]), 0, FileInfo, SizeOf(FileInfo),
SHGFI_ICON or SHGFI_LARGEICON or
SHGFI_SYSICONINDEX);
f.Handle := FileInfo.hIcon;
Itm.Caption := ExtractFileName(sl[i]);
Itm.SubItems.Add(k);
Itm.ImageIndex := ImageList1.AddIcon(f);
f.Free;
end;
sl.free;
end;
все работает,извлекаются еще лишние иконки.
Вадим К

Вадим К (статус: Академик), 22 сентября 2009, 13:20 [#34]:

А в чем проблема вставить?
И какие лишние иконки? больше чем записей в StringList, не получиться.
Галочка "подтверждения прочтения" - вселенское зло.
grater

grater (статус: Посетитель), 22 сентября 2009, 13:26 [#35]:

допустим в txt путь к exe извлекается икока (работает),но еще отображается иконка иконка в виде папки.если два пути , то две иконки (как надо) и две ввиде папки. посмотрите пожалуйста у себя все понятно будет.
Вадим К

Вадим К (статус: Академик), 22 сентября 2009, 13:31 [#36]:

Пожалуйста пишите на нормальном русском/английском/украинском. Я не могу понять с вышеприведенного поста, в чем проблема.
Скомпилировать и запустить код для меня тоже проблема. Не все люди работают под Windows, что бы установить там делфи....
Галочка "подтверждения прочтения" - вселенское зло.
grater

grater (статус: Посетитель), 22 сентября 2009, 13:44 [#37]:

сейчас на почту вам видео скину
Вадим К

Вадим К (статус: Академик), 22 сентября 2009, 13:57 [#38]:

ещё этого мне там не хватало. Не нужно.
Галочка "подтверждения прочтения" - вселенское зло.

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 23:16
Выполнено за 0.03 сек.