| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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; Так же и с любым компанентом |
| Автор: SkilFul 13.5.2004, 15:27 | ||
Нефига! у Panel свойства Canvas - нет! Можно только на Panel растянуть компонент TPaintBox он находится на вкладке System, второй по счету. Вот у него как раз и кроме свойства Canvas больше ничего нет! AlexV1 - если будут ещё вопросы по созданию скинов можешь спрашивать у меня я в этом деле АС. (можешь отправлять по почте, отвечу) |
| Автор: x77 13.5.2004, 15:38 | ||
| SkilFul, вы оба гоните. 1. у панели есть канвас, но это protected свойство, объявленное в TCustomControl. соответственно, добраться до него можно через пресловутый взлом класса:
2. для нормальной заливки панели придётся переписать саму панель, переопределив Paint. Добавлено @ 15:39 paintbox, кстати, ничего не даст, если у панели выставлены бордюры. |