Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Заливка TPanel и TButton текстурой


Автор: AlexV1 5.3.2004, 13:53
imgTemp.Picture.LoadFromFile('skin0101.bmp'); // Загрузка текстуры
Form1.Brush.Bitmap:=imgTemp.Picture.Bitmap; // Заливка формы
Form1.Refresh;

Panel1.Brush.Bitmap:=imgTemp.Picture.Bitmap; // Это не дало эффекта
Button1.Brush.Bitmap:=imgTemp.Picture.Bitmap; // Это не дало эффекта

Форма залилась, а вот элементы формы Panel1 и Button1 не залились.

Также, если у формы BorderWidth ставлю, например 5, то этот бордер не заливается.

Как проще всего залить эл-ты формы текстурой ?

Автор: Guest 13.5.2004, 12:40
AlexV1
Элементарно
У любого объекта есть свойство Canvas, в том числе и у Panel1 и у Button1


Var
Bit: Bitmap
Begin
bit:=TBitmap.Create;
bit.LoadFromFile('c:\1.bmp');
Form1.Panel1.Canvas.Brush.Bitmap := bit;
Form1.Panel1.Canvas.FillRect(0,0,100,100);
end;

Так же и с любым компанентом tounge.gif

Автор: SkilFul 13.5.2004, 15:27
Цитата

Guest
Дата 13.5.2004, 12:40

AlexV1
Элементарно
У любого объекта есть свойство Canvas, в том числе и у Panel1 и у Button1


Нефига! у Panel свойства Canvas - нет! exclamation.gif

Можно только на Panel растянуть компонент TPaintBox он находится на вкладке System, второй по счету. Вот у него как раз и кроме свойства Canvas больше ничего нет! tounge.gif

AlexV1 - если будут ещё вопросы по созданию скинов можешь спрашивать у меня я в этом деле АС. (можешь отправлять по почте, отвечу) cool.gif

Автор: x77 13.5.2004, 15:38
SkilFul,

вы оба гоните.

1. у панели есть канвас, но это protected свойство, объявленное в TCustomControl. соответственно, добраться до него можно через пресловутый взлом класса:

Код

type
 TFake = class (TCustomControl);
...
begin
 TFake (Panel1).Canvas. ...
...


2. для нормальной заливки панели придётся переписать саму панель, переопределив Paint.
Добавлено @ 15:39
paintbox, кстати, ничего не даст, если у панели выставлены бордюры.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)