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

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

butmap [D6, WinXP]


shurik ©   (2003-08-21 01:05:00) 

Кто знает как создать bitmap треугольной формы


Camedia   (2003-08-21 22:24:00) [1]

Создать треугольную маску прямоугольного bitmap и выводить как надо. А сделать так, чтобы сама структура была треугольной - это точно никак, нужно переписывать класс TBitmap да и бесцельное это занятие.


Олег   (2003-08-21 10:01:00) [2]

Сам Bitmap у меня тоже не получалось сделать нестандартной формы...
Когда нужно было создавать что-то непрямоугольное, выкручиваться получалось так:
1)создаю свой класс (потомок оконных элементов управления):
...
type
TMyPanel = class(TPanel)
...
(таким образом получаю доступ к свойству Canvas класса TPanel)
2) перекрываю метод Paint, в котором рисую на моей панели все, что нужно и задаю форму - видимый Poligon:

procedure TMyPanel.Paint;
var
f : array [0..7] of TPoint;
begin
inherited Paint;
...
Canvas.LineTo(Width,Height);
...
f[0] := Point(0,0);
f[1] := Point(100 div 2,0);
f[2] := Point(100 div 2,40 div 2);
f[3] := Point(70 div 2,100 div 2);
f[4] := Point(70 div 2,120 div 2);
f[5] := Point(30 div 2,130 div 2);
f[6] := Point(30 div 2,100 div 2);
f[7] := Point(0 div 2,40 div 2);
R:=CreatePolygonRgn(f, 8, WINDING);
SetWindowRgn(Handle, R, True);
end;

если положишь на форму :
...
var MyPanel1:TMyPanel;
...
MyPanel1:=TMyPanel.Create(Self);
MyPanel1.Parent:=Self;
MyPanel1.Show;
MyPanel1.Top:=10;
...
панелька будет нестандарной формы(заданной в TMyPanel.Paint) .

если мне нужен был бы именно Bitmap - наверное положил бы на TMyPanel какой-либо компонент его содержащий... рисовал бы на нем, а "треугольность" обеспечивал бы так же... Хотя такого именно делать не приходилось... может есть и другой, более простой метод...

Удачи.


MBo   (2003-08-21 07:25:00) [3]

никак


Наверх

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