10.16 сурет. Дыбыс фрагментін демонстрациялау терезесі
Тапсырма №6
Әдістемелік нұсқауда келтірілген программаны орындап, компиляциялаңыз
Тапсырманы орындауға әдістемелік нұсқаулар:
Тапсырма №1
unit Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
Type
TForm1= class(TForm
Procedure Form 1 Paint(Sender:TObject) ;
Private {Private declarations}
Public {Public declarations}
End;
Var
Form1: TForm1;
Implementation {$R*. dfm}
Procedure Tform1. FormPaint(Sender : TObject);
Const
bsName : array[1..8] of string =(‘bsSolid’, ‘BsCIear’, ‘bsHorisontal’,
‘bsvertical’, ‘bsFDiagonal’, ‘bsbDioganal’
‘bsCross’, ‘bsDiagCoss’);
Var
X,y:integer;
W,h:integer;
Bs:TBrushStyle;
K:integer;
i,j:integer;
begin
w:=40; h:=40; y:=20
for i:=1 to 2 do
begin
x:=10;
for j:=1 to 4 do
begin
k:=j+(i-1)*4;
case k of
1:bs:=bsSolid;
2:bs:=bsClear;
3:bs:=bsHorisontal;
4:bs:=bsVertical;
5:bs:=bsFDiagonal;
6:bs:=bsBDiagonal;
7:bs:=bs Diagonal;
8:bs:=bsCross;
9:bs:=bsDiagCross;
End;
canvas.Brush.Color:=clGreen;
Canvas.Brush.Style:=bs;
Canvas.Rectangle(x,y,x+w,y+h);
Canvas.Brush.Style:=Clear;
canvas.textOut(x,y-15,bsName[k]);
x:=x+w+30;
end;
y:=y+h+30;
end;
end;
end.
Тапсырма №2
Unit Unit1;
Interfase
Uses
Windows, Messages, SysUtils, variants, Classes6 Graphics, Controls, Forms,
Dialogs;
Type
TForm=class(Tform)
Procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift:TShiftState; X,Y:integer);
Private
{private declarations}
Publick { publick declarations}
End;
Var
Form1:Tform1;
Implementation
{$R*.dfm}
Procedure Starline(x0,y0,r:integer; Canvas:Tcanvas);
Var
P:array[1..11] of TPoint;
A:integer;
J:integer;
Begin
A:=18;
For i:=1 to 10 do
Begin
If (I mod2=0) then
Begin
P[i].x:=x0+round(r/2*cos(a*pi/180));
P[i].y:=y0+round(r*sin(a*pi/180));
End
Else begin
P[i].x:=x0+round(r*cos(a*pi/180));
P[i].y:=y0+round(r/2*sin(a*pi/180));
End;
A:=a+36;
End;
P[11].X:=p[1].X;
P[11].Y:=p[1].Y;
Canvas.Polyline(p);
End;
Procedure TForm.FormMouseDown(Sender:TObject; Button:TMouseButton
Shift:TShiftState; X6Y:integer);
Begin
If button=mbleft
Then
Form1.Canvas.Pen7Color:=clred
Else
Form1.Canvas.Pen.Color:=clgreen;
Starline(x,y,30,Form1.Canvas);
End;
End.
10.2-сурет. Жұлдызша
Тапсырма №3
Заты.Bmp, .ico болып келген графикалық файлдарды шығару үшін Additional бетіндегі Image компоненті қосылады.
Image
10.7-сурет. Additional беті.
Төмендегі кенстеде осы компоненттің қасиеттері көрсетілген.
Қасиеті
|
Анықтамасы
|
Picture
|
Компонент өрісінде бейнеленетін сурет
|
Width
Height
|
Компонент өлшемі
|
AutoSize
|
өлшемнің автоматты түрде өзгертілу ьелгісі
|
Strech
|
Компонент өлшеміне байланысты сурет өлшемін өзгерту белгісі
|
Visible
|
Компонент үстінде суреттің көріну, көрінбеу белгісі
|
Енді экранға жоғарыда келтірілген фигураларды сызып, оның жанына олардың атын жазып шығаратын программа мысалын жазайық. Ол үшін формаға Image1 және Button компоненттерін орналастырамыз. Программа мәтіні төмендегідей:
Unit rr2;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphcs, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
Type
Tform1=class(TForm)
Image:TImage;
Button:TButton;
Procedure ButtonClick(Sender:TObject);
Private {Private declarations}
Public {Public declarations}
End; var
Form1:TForm1;
Implementation
{$R*.dfm}
Procedure Tform1.Button1Click(sender:TObject);
Begin
With Image1.Canvas do
Begin
Font.Sryle:=[fsBold];
Pen.Color:=clred;
Arc(10,10,90,90,90,50,10,50);
TextOut(40,60,’Arc’);
Pen.color:=clGreen;
Brush.style:=bscroos;
Chord(110,10,190,90,190,50,110,50);
Textout(135,60,’Chord’);
Pen.Color:=clred;
Brush.Color:=clBlue;
Brush.Style:=bsclear;
Ellipse(230,60,’Ellipse’);
Pie(310,10,390,90,390,30,310,30);
Textout(340,60,’Pie’);
Polygon([Point(30,150),Point(40,130), Point(50,140), Point(60,110)
Point(70,150)]);
Polyline([Point(130,150),Point(140,130), Point(150,140), Point(160,110)
Point(170,150)]);
Textout(140,170,’polyLine’);
Rectangle(230,120,280,160);
Textout(230,170,’Rectangle’);
Roundrect(330,120,380,160,20,20);
TextOut(325,170,’Roundrect’);
End;
End;
End.
Программанның орындалу нәтижесі 10.8- суретте келтірілген.
Форманы дайындау кезінде сурет Picture қасиеті арқылы жүктеледі. Олүшін Objecr Inspecror қосымшасында Picture қасиетін таңдау керек. Содан кейін пайда болған Picture Editor терезеде Load батырмасы арқылы суретті тандап, OK батырмасын басу керек.
Оның өлшемін Strech қасиеті арқылы өзгертуге болады.
10.8-сурет. Фигураларды бейнелеу терезесі
10.9-сурет. Picture Editor терезесі
Тапсырма №4
Мұнда негізгі жұмысты graficfun процедурасы орындайды. Алдымен [x1,x2] аралығындағы функцияның ең үлкен (y2)және ен кіші (y1) мәндері есептеледі. Grarficfin процедурасын шығару OnPainr оқиға өндеушісінің TFormI. Form Paint процедурасын шақыру арқылы орындалады. Ол үшін FormI – l3 екпінді жасап, оқиғалар бетінен On Paint оқиғасын тышқанмен жылдам екі рет белгілеу жеткілікті. Ал, форманың өлшемі өзгергеннен кейін графикті сызу үшін TFormI. FormResize процедурасы пайдаланылады. Ол оқиғалар бетінен OnResize оқиға өрісін тышқанмен жылдам екі рет белгілеу арқылы алынады. Программа мәтіні төмендегіней.
unit Unit1;
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormPaint (Sender: TObject);
procedure Form Resize (Sender: TObject);
private {Private declarations}
public {Public declarations}
end;
var
Form 1: TForm1; implementation {$R * .dfm}
procedure graficfun;
var x1, x2:real; y1, y2:real; x,dx.y:real;
1,b:integer; w,h:integer; mx,my:real; x0y0:integer;
function f (x:real):real;
begin f:=2*sin(x) *exp(x/5); end;
begin
1:=10; b:=Form1.ClientHeight-20; h:=Form1.ClientHeight-40;
w:=Form1. ClientHeight-40;
x1:=0; x2:=25; dx:=0.01; y1:=f(x1); y2:=f(x2); x:=x1; y0:=60;
repeat
y:=f(x); if yy2 then y2:y;
x:=x+dx; until (x>=x2);
my:=h/abs(y2-y1);
mx:=w/abs(x2-x1);
x0:=1; y:=b-abs(round(y1*my));
with form1.canvas do
begin
MoveTo(1,b); LineTo(1,b-h);
MoveTo(x0,y0); LineTo(x0+w,y0);
x:=x1;
repeat
y:=f(x);
form1.canvas.Pixels[x0+round(x*mx),y0-round(y*my)]:=clred
x:=x+dx;
until(x>=x2);
end;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
graficfun;
end;
procedure TForm1.FormResize (Sender: TObject);
begin
with form1 do
Canvas.FillRect (Rect (0,0, ClientWidth, ClientHeight));
End;end.
Программаның орындалу нәтижесі 10.10 - суретте келтірілген.
10.10-сурет. F(x)=2sinx*ex/5функциясының графигі
Достарыңызбен бөлісу: |