Главная страница
    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.45 MB
Время: 0.033 c
3-1177075901
Krants
2007-04-20 17:31
2007.07.29
ошибка при записи, ADO


15-1181879944
Курдль
2007-06-15 07:59
2007.07.29
Происхождение выпускников Бауманки


6-1166033544
XfroSt
2006-12-13 21:12
2007.07.29
IndyUDPServer - Адрес назначения пакета, Как узнать в событии UDP


15-1183290441
Kolan
2007-07-01 15:47
2007.07.29
Help&amp;Manual Toggles всегда открыты, как исправить?


15-1183515466
Slider007
2007-07-04 06:17
2007.07.29
С днем рождения ! 4 июля 2007 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский