Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Handle   Найти похожие ветки 

 
Neoo ©   (2004-02-21 20:00) [0]

Помогите люди добрые. Как определить Handle или изменить форму(регион) динамически созданному компоненту например TShape.


 
Игорь Шевченко ©   (2004-02-21 20:06) [1]

У TShape нет Handle.

Зато у него есть свойство Shape, которое меняет внешний вид компонента.


 
Юрий Зотов ©   (2004-02-21 20:07) [2]

TShape - это не окно, а хэндлы и регионы бывают только у окон. Динамическое создание здесь ни при чем.


 
Neoo ©   (2004-02-21 20:15) [3]

Пардон, а у TPanel как определить


 
Юрий Зотов ©   (2004-02-21 20:24) [4]

var
Panel: TPanel;
Rgn: HRGN;
...
Panel := TPanel.Create(...);
GetWindowRgn(Panel.Handle, Rgn);


 
Юрий Зотов ©   (2004-02-21 20:32) [5]

Вообще, по поводу работы с динамически созданными компонентами см. сюда:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=342

А по поводу изменения региона окна - сюда:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=903


 
Neoo ©   (2004-02-21 20:34) [6]

var
img: array: of TShape;

procedure ....
var
Pts : array [1..8] of TPoint;
begin
inc(a);
SetLength(img,a+1);
img[a]:=TShape.Create(nil);

img[a].Left:=Origin.X;
img[a].Top:=Origin.Y;
img[a].Width:=x-Origin.X;
img[a].Height:=y-Origin.Y;

x1:=Origin.X;
y1:=Origin.Y;
x2:=x-Origin.X;
y2:=y-Origin.Y;

Pts[1] := Point( x1-1, y1-1 );
Pts[2] := Point( ((x2-x1) div 2)+1, y1-1 );
Pts[3] := Point( ((x2-x1) div 2)+1, y2-1 );
Pts[4] := Point( x2+1, y2-1 );
Pts[5] := Point( x2+1, y2+1 );
Pts[6] := Point( ((x2-x1) div 2)-1, y2+1 );
Pts[7] := Point( ((x2-x1) div 2)-1, y1+1 );
Pts[8] := Point( x1-1, y1+1 );
img[a].Parent:=Form1;

SetWindowRgn( img[a].Handle, CreatePolygonRgn( Pts, 8, WINDING ), True);

этот код вызывает ошибку.


 
Игорь Шевченко ©   (2004-02-21 20:54) [7]


> этот код вызывает ошибку


Что вполне закономерно, так как а) у TShape нет Handle б) TShape это не окно и функция SetWindowRgn к TShape неприменима.



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

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-6119
qwerty2
2004-01-23 13:34
2004.03.03
Уничтожить OleVariant


3-5962
lightix
2004-02-05 13:03
2004.03.03
Выборка из DBF


6-6171
NewD
2003-12-26 13:46
2004.03.03
Как переадресовать запрос на др. комп. в др. сети


7-6257
DiMoon
2003-12-15 11:59
2004.03.03
Работа с LPT


1-6117
Dima Los
2004-02-20 17:08
2004.03.03
Стандартный вид формы заменить своей картинкой