Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.023 c
15-1183098004
Alkid
2007-06-29 10:20
2007.07.29
wmp.dll


2-1183462138
Vasyl
2007-07-03 15:28
2007.07.29
Кодировка


15-1182875275
Malik
2007-06-26 20:27
2007.07.29
Чисто из интереса...


1-1179739128
0leg
2007-05-21 13:18
2007.07.29
Где взять красивые картинки для кнопок


15-1183170285
Ино
2007-06-30 06:24
2007.07.29
Что означает такая запись? Зачем она используется?