|
Вопрос # 3 197/ вопрос открыт / |
|
Здравствуйте!
Подскажите пожалуйста!
я перетаскиваю файлы методом drag&drop их иконки отображаются в связке imagelist и listview. как сохранить эти иконки и их параметры в файл, чтобы при старте программы они загрузились и отобразились?
 |
Вопрос задал: 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™ (статус: Доктор наук), 16 сентября 2009, 20:44 [#21]:
А чо у тебя за версия Delphi?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
grater (статус: Посетитель), 16 сентября 2009, 20:44 [#22]:
7
|
|
min@y™ (статус: Доктор наук), 16 сентября 2009, 20:57 [#23]:
У меня тоже 7 и всё работает.
Я щас скачал этот кампонент и прошарил по исходникам поиском. Нет ни одного вхождения слова DsgnIntf в этих файлах. Как тебе удалось получить эту ошибку?
Могу тебе скинуть готовый пакет компонентов этого автора (Kambiz R. Khojasteh), где есть и этот компонент. Этот пакет я собрал сам и он спокойно ставится на Delphi 7.
Или найди, где в исходнике встречается DsgnIntf и замена на DesignIntf, DesignEditors.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
grater (статус: Посетитель), 16 сентября 2009, 21:05 [#24]:
заменил на DesignIntf другая ошибка.если не трудно скинь кампонент
|
|
grater (статус: Посетитель), 16 сентября 2009, 21:09 [#25]:
DesignIntf, DesignEditors причем разные ошибки
|
|
min@y™ (статус: Доктор наук), 16 сентября 2009, 21:18 [#26]:
Цитата (grater):
если не трудно скинь кампонент
Куда?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
grater (статус: Посетитель), 16 сентября 2009, 21:21 [#27]:
grater83@MAIL.RU
|
|
min@y™ (статус: Доктор наук), 16 сентября 2009, 21:52 [#28]:
Выслал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
grater (статус: Посетитель), 16 сентября 2009, 22:02 [#29]:
скачал,поставил,сделал как было написано поясни по поводу индексов
|
|
min@y™ (статус: Доктор наук), 16 сентября 2009, 22:29 [#30]:
Чо пояснять-то? Всё в ответе написано. Что непонятно?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 18 сентября 2009, 16:19 [#31]:
to Обрезков Евгений Евгенийович
да, ImageList помещается в ресурс, но не в отдельный, а прямо в ресурс формы. Но как это поможет вопрошающему?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
grater (статус: Посетитель), 21 сентября 2009, 22:32 [#32]:
спасибо за помощь не много изменил работает
есть не большое но,если не решу обращусь.
спасибо.
|
|
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 (статус: Посетитель), 22 сентября 2009, 13:26 [#35]:
допустим в txt путь к exe извлекается икока (работает),но еще отображается иконка иконка в виде папки.если два пути , то две иконки (как надо) и две ввиде папки. посмотрите пожалуйста у себя все понятно будет.
|
|
Вадим К (статус: Академик), 22 сентября 2009, 13:31 [#36]:
Пожалуйста пишите на нормальном русском/английском/украинском. Я не могу понять с вышеприведенного поста, в чем проблема.
Скомпилировать и запустить код для меня тоже проблема. Не все люди работают под Windows, что бы установить там делфи....
Галочка "подтверждения прочтения" - вселенское зло.
|
|
grater (статус: Посетитель), 22 сентября 2009, 13:44 [#37]:
сейчас на почту вам видео скину
|
|
Вадим К (статус: Академик), 22 сентября 2009, 13:57 [#38]:
ещё этого мне там не хватало. Не нужно.
Галочка "подтверждения прочтения" - вселенское зло.
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|