Page 62 - электрондык_окулык
P. 62
Талап етілетін форманың түрі
№6 зертханалық жұмыс. Квадраттық емес формаларды пайдалана отырып интерфейс
құру.
Жұлдыз түріндегі терезе. Жұмысты орындау әдістемесі:
1. Жаңа проекті құрыңыз және оны жеке бумада сақтаңыз.
2. Формада Label1 және Timer1 компоненттерін шақырыңыз.
3. Негізгі private бӛлімінде форманы орнату үшін процедураны жариялаңыз:
procedure WMNCHitTest(var M:TWMNCHitTest);message wm_NCHitTest;
4. Программаның негізгі бӛлімінде келесі кодты жазыңыз:
procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin inherited;
if M.Result = htClient then M.Result := htCaption; end;
5. Форма үшін OnCreate оқиға ӛңдеушісін құрыңыз, келесі кодты жазыңыз:
var
hsWindowRegion, hsWindowRegion2: integer;
p: array [0..11] of TPoint;
begin
p[0].x:=30; p[0].y:=40;
p[1].x:=80; p[1].y:=70;
p[2].x:=95; p[2].y:=20;
p[3].x:=110; p[3].y:=70;
p[4].x:=160; p[4].y:=40;
p[5].x:=130; p[5].y:=85;
p[6].x:=260; p[6].y:=230;
p[7].x:=110; p[7].y:=100;
p[8].x:=95; p[8].y:=200;
p[9].x:=80; p[9].y:=100;
p[10].x:=30; p[10].y:=130;
p[11].x:=60; p[11].y:=85;
hsWindowRegion:=CreatePolygonRgn(P,12,Alternate);
hsWindowRegion2:=CreateEllipticRgn(50,50,140,120);
CombineRgn(hsWindowRegion, hsWindowRegion, hsWindowRegion2, rgn_or);
SetWindowRgn(Handle, hsWindowRegion, true);
6. Timer1 компонентасы үшін оқиѓа ӛңдеушісін құрыңыз, келесі кодты
жазыңыз: Label1.Caption:=TimeToStr(Time);
7. Программаны қосыңыз және тест жүргізіңіз.