Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
15-1183554223
DillerXX
2007-07-04 17:03
2007.07.29
Посоветуйте пожалуйста книгу ...


15-1183403239
KilkennyCat
2007-07-02 23:07
2007.07.29
Уберите битый пиксел. Я пугаюсь.


15-1182970406
@!!ex
2007-06-27 22:53
2007.07.29
Смена буквы диска.


1-1179726841
bss
2007-05-21 09:54
2007.07.29
Горизонтальная полоса прокруки в ListBox


6-1166707891
XfroSt
2006-12-21 16:31
2007.07.29
работа с IndyUDPServer в потоке Thread




   Наверх