Главная страница
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.48 MB
Время: 0.019 c
11-1166438371
TAHKEP
2006-12-18 13:39
2007.07.29
Худшая скорость копирования файлов при использовании алт. System?


2-1183300531
Romm
2007-07-01 18:35
2007.07.29
ID IDE


2-1183709585
Kolan
2007-07-06 12:13
2007.07.29
Динамическое создание пунктов меню, как реализовать событие&amp;#133


2-1183624901
nord489
2007-07-05 12:41
2007.07.29
MainMenu


15-1183008937
Slider007
2007-06-28 09:35
2007.07.29
С днем рождения ! 28 июня 2007 четверг