Текущий архив: 2007.07.29;
Скачать: CL | DM;
Вниз
TImageList.GetIcon глючит... Найти похожие ветки
← →
aktuba (2006-11-02 01:53) [0]Такая проблема: в программе происходит проверка каталога на наличие иконок и добавление этих иконок в TImageList:
i := 1;
if FindFirst(path + "*.ico", faAnyFile, SearchRec) = 0 then
repeat
Inc(i);
lIcon := TIcon.Create;
try
lIcon.LoadFromFile(path + SearchRec.Name);
AList.AddIcon(lIcon);
finally
lIcon.Free;
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
после этого происходит отрисовка иконок из TImageList в TDrawGrid:
il.Draw(dr.Canvas, Rect.Left + 3, Rect.Top + 3, IndexIcon, dr.Enabled);
далее, мне необходимо сохранить выбранную иконку в файл. делаю следующее:
...
ilVT.GetIcon(lData^.IconIndex, lIcon);
SaveVTNode(lData^, lIcon, lMemStream);
...
procedure SaveVTNode(AData: TDataNode; AIcon: TIcon; AStream: TMemoryStream);
var
Writer: TWriter;
size, Index: Integer;
begin
...
// Сохранение своих данных в поток
...
SaveIcon(AIcon, AStream);
end;
...
procedure SaveIcon(AIcon: TIcon; AStream: TMemoryStream);
var
size: Integer;
begin
if Assigned(AIcon) then
begin
size := 1;
AStream.Write(size, SizeOf(size));
AIcon.SaveToStream(AStream);
end else
begin
size := 0;
AStream.Write(size, SizeOf(size));
end;
end;
ИКОНКА СОХРАНЯЕТСЯ НЕ ПРАВИЛЬНО!!! Испорчены палитра и прозрачность...
Опытным путем проверенно, что виновата функция TImageList.GetIcon. Проверял так:
lIcon.LoadFromFile(path + SearchRec.Name);
t := AList.AddIcon(lIcon);
AList.GetIcon(t, lIcon);
lIcon.SaveToFile(lFileName);
Уже так иконка сохраняется неправильно.
Как это исправить или что можно использовать вместо TImageList?
← →
Ketmar © (2006-11-02 01:55) [1]б.а.я.н.
ну почему эта тема на форуме возникает с периодичностью два-три дня? или на сайт Rouse_(c). и не используй TImageList.
← →
aktuba (2006-11-02 01:58) [2]
> б.а.я.н.
> ну почему эта тема на форуме возникает с периодичностью
> два-три дня? или на сайт Rouse_(c). и не используй TImageList.
>
А ЧТО ИСПОЛЬЗОВАТЬ???? У меня компонент, который использует ImageList. Вместо ругани - лучше бы ссылки дал, где это уже обсуждалось....
← →
Ketmar © (2006-11-02 02:01) [3]>[2] aktuba 2-Nov-2006, 01:58
я дал достаточно информации для поиска. http://antigreen.org/bioreactor/
← →
aktuba (2006-11-02 02:13) [4]Да ничего ты не дал!!! Что за сайт Rouse_(c) , что использовать вместо TListImage?
← →
Ketmar © (2006-11-02 02:17) [5]значит, не дал. отсутствие мозга -- твои проблемы. церебротерапией не занимаемся.
Страницы: 1 вся ветка
Текущий архив: 2007.07.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.033 c