Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.04.22;
Скачать: [xml.tar.bz2];

Вниз

Не получается загружать картинки формата PNG в ImageList. D 2009   Найти похожие ветки 

 
Kilowatt ©   (2011-12-26 23:15) [0]

Всем привет.
Delphi 2009.
Нужно загружать картинки формата PNG в ImageList в определенные для каждого файла индексы, потом компоненты программы используют эти картинки в соответствии с индексами.
Пытаюсь загрузить в TImageList в рантайме, но почему-то ничего не получается. GetLastError говорит: Параметр задан неверно. Компилятор не ругается. При этом картинка не убивается, та что была загружена в design time. Вот пример кода который я пытаюсь применить для загрузки в imagelist в индекс 8:
var
png: tpngimage;
begin
png := tpngimage.Create;
 png.LoadFromFile("d:\1.png");
 ImageList1.DrawingStyle := dsTransparent;
 ImageList1.Masked := true;
 ImageList1.Draw(Canvas, 0, 0, 8);
png.Free;
end;
Подскажите, что не правильно и куда копать? BMP и другие форматы картинок не предлагать, нужно именно PNG.
Заранее благодарен!


 
Rouse_ ©   (2011-12-26 23:23) [1]


> Пытаюсь загрузить в TImageList в рантайме, но почему-то
> ничего не получается.

Стесняюсь спросить, а в какой строчке приведенного кода ты ее загружаешь?


 
sniknik ©   (2011-12-26 23:29) [2]

> что не правильно
вот это
> BMP и другие форматы картинок не предлагать, нужно именно PNG.
идеологически, ImageList хранит битмапы, отрисовка (Draw) идет тоже на них, и раз ты что-то пытаешься нарисовать... это уже не PNG.

ну и код конечно неправильный, нет добавления/замены битмапа в ImageList, зато есть попытка отрисовать на какой то "левый" (не понятно из куска "кода" к чему относится) канвас.


 
Natalya   (2011-12-26 23:31) [3]

Загрузка png.LoadFromFile("d:\1.png");
Далее отрисовка.
Пересмотрел еще раз код ) Сам код переделал из кода загрузки bmp файлов. Правда выкинул вот эту строку    ImageList1.Add(png,8), т.к. это только с bitmap работает и думаю, что из-за этого как раз и не рисуется. Я так понимаю, что никак не сделать?


 
Kilowatt ©   (2011-12-26 23:33) [4]

Блин. Подставился логин подруги )


 
Kilowatt ©   (2011-12-26 23:35) [5]


> ну и код конечно неправильный, нет добавления/замены битмапа
> в ImageList, зато есть попытка отрисовать на какой то "левый"
> (не понятно из куска "кода" к чему относится) канвас.

Canvas от TForm, на которой размещен ImageList. Я понял, что сделал не верно, но вот как выйти из ситуации понять не могу. Неужели только bmp можно загружать таким образом?


 
KilkennyCat ©   (2011-12-26 23:44) [6]


> Подставился логин подруги )

сказки рассказывай детям.


 
KilkennyCat ©   (2011-12-26 23:44) [7]


> Неужели только bmp можно загружать таким образом?

загружать ты можешь хоть черта в ступе, преобразования никто не отменял


 
Anatoly Podgoretsky ©   (2011-12-26 23:45) [8]

> Kilowatt  (26.12.2011 23:15:00)  [0]

А какое отношение переменная png имеет к ImageList1


 
Kilowatt ©   (2011-12-26 23:45) [9]


> сказки рассказывай детям.

Даже и не собираюсь.
По сути вопроса можете что подсказать?


 
Kilowatt ©   (2011-12-26 23:50) [10]


> А какое отношение переменная png имеет к ImageList1

Запутался я уже с этой загрузкой...
Брал вот этот код и пытался его переделать под загрузку PNG:
procedure TForm1.Button1Click(Sender: TObject);
var
 bm : TBitmap;
 il : TImageList;
begin
 bm := TBitmap.Create;
 bm.LoadFromFile("C:\DownLoad\TEST.BMP");
 il := TImageList.CreateSize(bm.Width,
                             bm.Height);
 il.DrawingStyle := dsTransparent;
 il.Masked := true;
 il.AddMasked(bm, clRed);
 il.Draw(Form1.Canvas, 0, 0, 0);
 bm.Free;
 il.Free;
end;


 
Kilowatt ©   (2011-12-26 23:52) [11]


> загружать ты можешь хоть черта в ступе, преобразования никто
> не отменял

Хорошо, можете подсказать как сделать преобразование подходящее для Bitmap после загрузки в PNGImage и не потерять прозрачность PNG? Если получится, то такой варинт устроит.


 
Anatoly Podgoretsky ©   (2011-12-27 00:00) [12]

function AddMasked(Image: TBitmap; MaskColor: TColor): Integer;


 
Kilowatt ©   (2011-12-27 00:09) [13]

Что бы использовать функцию AddMasked нужно файл в формате bmp ведь загрузить. А у меня файлы в png формате. Вот как тут состыковать?


 
KilkennyCat ©   (2011-12-27 00:43) [14]

что ты хочешь в имаджелист засунуть?


 
Kilowatt ©   (2011-12-27 00:56) [15]

Нужно 20 картинок в формате PNG засунуть в рантайме в TImageList, что бы потом эти картинки использвать в элементах TButton, TTrayIcon и TPopupMenu.


 
sniknik ©   (2011-12-27 01:04) [16]

> в формате PNG засунуть в рантайме в TImageList
обломайся бабка мы на корабле. © анекдот

не получится, ImageList не хранит "в формате PNG", уже говорили. т.что можешь забить, и пойти улицу например от снега почистить.


 
Германн ©   (2011-12-27 01:07) [17]

TsAlphaImageList от AlphaControls http://www.alphaskins.com/index_rus.php
интересно трактует фильтр Bitmap
В его ОпенДиалоге есть следующие фильтры:
All (*.png, *.ico)
Icons (*.ico)
Bitmaps (*.png)

:)


 
Труп робота дохлого   (2011-12-27 01:11) [18]


> что бы потом эти картинки использвать в элементах TButton,
>  TTrayIcon и TPopupMenu.

для этого:
1. необязательно использовать png, насколько я помню, ico с альфаканалом вполне работают, да и в иконках должны быть иконки,
2. фон предполагает постоянные изменения?


 
KilkennyCat ©   (2011-12-27 01:12) [19]

Труп робота дохлого - нечаянно :)


 
Германн ©   (2011-12-27 01:34) [20]


> KilkennyCat ©   (27.12.11 01:12) [19]
>
> Труп робота дохлого - нечаянно :)
> <Цитата>
>
>  

сказки рассказывай детям. (с)
:)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.04.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.003 c
15-1324138253
Кто б сомневался
2011-12-17 20:10
2012.04.22
Аномальная погода


2-1324826113
Pcrepair
2011-12-25 19:15
2012.04.22
idHTTP1 и закачка стр. из ЯНДЕКС.ру


2-1324926935
Kilowatt
2011-12-26 23:15
2012.04.22
Не получается загружать картинки формата PNG в ImageList. D 2009


3-1274429485
RWolf
2010-05-21 12:11
2012.04.22
План запроса vs. время выполнения


2-1325061895
гия
2011-12-28 12:44
2012.04.22
Пграмма "замерзает" пока TThread не завершится





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский