Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про наложение изображений на кнопке. [D7, XP]


Страницы:   1 2

vegarulez ©   (2010-02-17 12:01:00) 

Привет всем мастерам!
Вопрос в следующем - есть кнопка TPNGButton - хочу наложить одно изображение на другое(2 PNG файла). Одно с залитым фоном, другое с прозрачным. Как это сделать - подскажите?


vegarulez   (2010-02-24 11:04:00) [1]

Аха - смотрел его уже. Я так и понял что он тебе попался ) Я в примерах там в справке как раз и посмотрел - похожее обращение к компоненте, как ты писал выше. Ок. если будет время глянь - если не сложно.


{RASkov}   (2010-02-24 10:27:00) [2]

> [25] vegarulez   (24.02.10 10:06)
> если не трудно посмотри

Извини, времени нет... если появится время возможно гляну.
Если не принципиально, найди pngimage156.zip в нем тот самый TPNGButton который мне попался, с ним и справка есть(англ), и немного примеров(в справке)
(Он в яндексе в первых рядах)


vegarulez   (2010-02-24 10:06:00) [3]

{RASkov} ©   (24.02.10 09:23) [24]
Ни в коем разе никого не хотел обидеть - спасибо большое за ответы. Но просто хочется по существу. Если я спрашиваю про PNG зачем советовать про имэйдж лист и БМП?
Тебе - большое спасибо - пытался сделать как ты советовал, потом понял что -то не получается, переработал немного свою версию через Timage - получилось, о чём писал выше.

Тот компонент который я пользую - выложу вот сюда - если не трудно посмотри (735 кб)
http://slil.ru/28696488

Просто я из вышепривёденного тобой примера, понимаю что у нас немного разные компоненты, которые пользуем.

Поэтому актуален вопрос как сделать без привлечения TImage...


{RASkov}   (2010-02-24 09:23:00) [4]

> [20] vegarulez   (24.02.10 07:16)
> Ps - плз коменты по существу

Знаешь что, по существу... я уже скачал, установил один TPNGButton и даже пример тебе написал с его использованием.
Предлогаешь их все выкачать с помойки?
Залез на форум с нестандартным компонентом, прояви вежливость и терпение в ожидании ответа на твой вопрос...
А что бы быстрее отвечали будь подробнее и, опять же, вежлевее..


{RASkov}   (2010-02-24 09:18:00) [5]

> [22] vegarulez   (24.02.10 09:12)

Приостынь, а то ведь закроют твою ветку.... или перестанут тебе отвечать...


vegarulez   (2010-02-24 09:12:00) [6]

KilkennyCat ©   (24.02.10 09:03) [21]

Ога... Да вы наверно петросян...

Если нечего по существу сказать зачем флудить. имхо.


KilkennyCat   (2010-02-24 09:03:00) [7]


> не знаю по чему

наверное, по кнопке.

> по существу

изучение стороннего, неизвестного компонента.


vegarulez   (2010-02-24 07:16:00) [8]

Палин... ну прям полемика разразилась по существу вопроса...
На заметку - я вообще-то не спрашивал в теме как мне работать с бмп или с имэдж листом...

А теперь по существу вопроса:
2 {RASkov}
сделал 2 TPNGbutton`а, как ты посоветовал - залил туда рамку и рожу. И пытаюсь сделать - наложение (выделено жирным). Но он вообще ничего в этом случае не рисует... не знаю по чему. Сделал по другому через TImage на Button2Click- впринципе всё рабит. но млин охота понять, почему не пашет Button1Click??

procedure TForm1.Button1Click(Sender: TObject);
begin
PNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3.ClientRect,PNG Button1.PictureDefault.Graphic);
//PNGButton3.PictureDefault.Bitmap.Canvas.StretchDraw(PNGButton3.ClientRect,PNGBut ton2.PictureDefault.Graphic);

PNGButton3.Repaint;
PNGButton3.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton1.PictureDefault.Graphic);
Image1.Canvas.StretchDraw(Image1.ClientRect,PNGButton2.PictureDefault.Graphic);
PNGButton3.PictureDefault:=Image1.Picture;


Ps - плз коменты по существу... про имэйдж лист бмп и прочее - не сюда плз.


Германн   (2010-02-24 02:57:00) [9]


> KilkennyCat ©   (24.02.10 02:41) [18]
>
>
> > Германн ©   (24.02.10 02:02) [17]
>
> там полупрозрачность, красивая весчь.
>

Дык и я о том же.


KilkennyCat   (2010-02-24 02:41:00) [10]


> Германн ©   (24.02.10 02:02) [17]

там полупрозрачность, красивая весчь.


Германн   (2010-02-24 02:02:00) [11]


> KilkennyCat ©   (24.02.10 01:45) [16]

Ему видите-ли приспичило использовать png.


KilkennyCat   (2010-02-24 01:45:00) [12]


> Какой развёрнутый ответ )) Пасиб - поржал )

Ответ более чем. Вызывает ржание - иди работать на ипподром. Перестанешь ржать - воспользуйся обычной кнопкой, обычным bmp, и всеми отрисованными вариантами в imagelist. Осиль хотя бы это.


{RASkov}   (2010-02-23 19:44:00) [13]

примерно так наверное:
var Png: TPNGObject;
begin
 Png:=TPNGObject.Create;
 try
  PNGButton.ImageNormal.CreateBlank(COLOR_RGB, 8, PNGButton.Width, PNGButton.Height);
  Png.LoadFromFile('rozha.png');
  PNGButton.ImageNormal.Canvas.StretchDraw(PNGButton.ClientRect, Png);
  Png.LoadFromFile('ramka.png');
  PNGButton.ImageNormal.Canvas.StretchDraw(PNGButton.ClientRect, Png);
 finally Png.Free; end;
end;

Хотя судя по коду в [12] разные TPNGButton используем. В моем нет свойства PictureDefault....


{RASkov}   (2010-02-23 14:01:00) [14]

> [12] vegarulez   (23.02.10 12:54)
> logon:TPicture;

тебе не это нужно
смотри что там за объект в PNGBT.PictureDefault вот их два штуки и создавай, потом и рисуй на одном из них ихими методами рисования, конечный рисунок загружай в PNGBT.PictureDefault....
нет у меня времени сейчас разбираться с нестандартными компонентами которых у меня еще и нет...


vegarulez   (2010-02-23 12:59:00) [15]

{RASkov} ©   (20.02.10 20:53) [11]
если ты рулез - помоги тогда как правильнее сделать...


vegarulez   (2010-02-23 12:54:00) [16]

А кто говорит что я рулез в программинге??? Я бы тогда не писал на форуме начинающих. просто я пытаюсь сделать вот так:


var
PNGBT:TPNGButton;
i:integer;
logon:TPicture;
...

         PNGBT.PictureDefault.LoadFromFile('./picture/bt_'+ inttostr(bt_pos[i+1])+'.png');
         logon:=TPicture.Create;
         logon.Bitmap.Width:=round(200);
         logon.Bitmap.Height:=round(100);
         logon.Bitmap.Transparent:=true;
         logon.Graphic:=PNGBT.PictureDefault.Graphic;
         PNGBT.PictureDefault.LoadFromFile('./picture/bt_'+ inttostr(bt_pos[i+1])+'_1.png');
logon.Bitmap.Canvas.StretchDraw(Rect(0,0,200,100),PNGBT.PictureDefault.Graphi c);
         PNGBT.PictureDefault.Graphic:=logon.Graphic;
         logon.free;


Строка выделенная жирным - чот не пашет как хочется...

ну как бы логика такая - что наложение пройдёт в TPicture и потом загрузится в TPNGButton


{RASkov}   (2010-02-20 20:53:00) [17]

> [9] vegarulez   (17.02.10 16:47)
> Могу выложить компоненту

Типа нашел я крутой компонент, а разбираться в нем мне в лом...
Ща как выложу, вы его скачайте, установите в IDE, еще и разберитесь в нем, а посля мне тут все па пацакски растолкуйте.
Так шоли?
Какой же ты рулез если не можешь в одной кнопке разобраться? :)


vegarulez   (2010-02-20 12:34:00) [18]

мастера.... нид хелп...


vegarulez   (2010-02-17 16:47:00) [19]

Какой развёрнутый ответ )) Пасиб - поржал )

Я собственно про эти методы и спрашиваю... там их мульён.
Хелпа нет. (
Могу выложить компоненту.


{RASkov}   (2010-02-17 15:17:00) [20]

> png1.create;
> png2.create;

:) png1:=TPNG<чего-то там>.create;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо