ОҚУ-Әдістемелік материалдар семей 2013. мазмұны



бет16/16
Дата25.04.2016
өлшемі7.2 Mb.
#89166
1   ...   8   9   10   11   12   13   14   15   16

Animate компоненті тек қана A VI – файлдарын ұйымдастыру үшін ғана қолданылады. FileName қасиетіне дыбыс шығаратын файл атын енгізсеңіз, онда Delphi сізге қате туралы хабар береді. A VI – файлының ішіндегісін көргініз келсе, онда Windows – де керекті A VI – файлын белгілеп, қасиет командасын орындаңыз. Нәтижесінде Қасиет терезесі ашылады, осы терезеде файл туралы толық ақпарат берілген.



Media Player компоненті

System бетінде орналасқан Media Player компоненті ыидеороликтерді, дыбыстарды және дыбысы бар анимацияларды орындауға мүмкіндік береді.



Media Player

10.14-сурет. System беті

Компонентті формаға қосу нәтижесінде формада батырмалар тобы пайда болады. Бұл батырмалардың мәні төменгі кестеде келтірілген.



10.15-сурет. Media Player компоненті




Батырма

Белгілеуі

Жұмысы

Шығару

BtPlay

Видео немесе дыбысты шығару

Пауза

BtPause

Тоқтату

Стоп

BtStop

Тоқтату

Келесі

BtNext

Келесі кадрға көшу

Алдыңғы

BtPrev

Алдынғы кадрға көшу

Қадам

BtStep

Келесі дыбыстық файлға көшу

Артқа

BtBack

Өткен дыбыстық файлға көшу

Жазу

BtRecord

Жазу

Ашу/жабу

BtEject

Компьютер дисководын ашу немесе жабу

Media Player компонентінің қасиеттері

Қасиет

Анықтамасы

Name

Компонент аты

DeviceType

Тип

FileName

Видеоролик немесе дыбыстық фрагменті бар файл аты

AutoPen

Программаны жүктеген соң автоматты ашылу белгісі

Display

Видеоролик орналасқан компонентті анықтайды

VisibleButtons

Компоненттің көрінетін батырмаларын анықтайды

Дыбысты шығару

Дыбыстық фрагментер заты. WAV болып келген файлдарда орналасқан. Delphi-де дыбысты шығару үшін де Media Player комоненті қолданылады



Видеороликтерді және анимацияларды көру

Видеороликтерді және анимацияларды көру үшін Media Player компоненті қолданылады. Бұл процесті бақылау үшін келесімысалды қарастырайық: төмендегі суретте көрсетілгендей Pane компоненті анимацияны көрсететін экран ретінде пайдаланылады.



ТАПСЫРМА:

Тапсырма №1

Стилдердің түрлерін көрсететін программа құр.



Тапсырма №2

Жұлдызша сызатын программа құр



Тапсырма №3

10.3 Суретті шығараратын программа құрыңыз



Тапсырма №4

F (x) =2sin функциясының графигін [0:25] аралығында түрғызатын программа құрайық.



Тапсырма №5

Программа тізімдегі таңдалған файлға сәйкес дыбысты шығару керек.




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функциясының графигі



Тапсырма №5

unit media1;


interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, MPlayer;
type

TForm1 = class(TForm)

ListBox1: TListBox;

MediaPlayer1: TMediaPlayer;

Label1: TLabel;

Label2: TLabel;

procedure FormActivate(Sender: TObject);

procedure ListBox1(Sender: TObject);

procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;

var DoDefault: Boolean);

procedure Label1Create(Sender: TObject);
private

{ Private declarations }

public

{ Public declarations }



end;

const


soundpatch='C:\Office2000\Windows\Media\';

var


Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);

var SearchRec:TSearchRec;

begin

form1.MediaPlayer1.Play;



if findfirst(soundpatch+'*.wav',faanyfile,searchrec)=0

then


begin

Form1.ListBox1.Items.Add(searchRec.Name);

while (FindNext(SearchRec)=0)do

Form1.ListBox1.Items.Add(searchRec.Name);

end;

end;
procedure TForm1.ListBox1Click(Sender: TObject);



begin

Label3.Caption:=ListBox1.Items[listBox1.ItemIndex];

end;

procedure



TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;

var DoDefault: Boolean);

begin

if (Button=btPlay) and (Label3.Caption<>")then



begin

with MediaPlayer do

begin

FileName:=SoundPatch+Label3.Caption;



Open;

end;


end;

end;


end.
Тапсырма №6


10.17 сурет. Дыбысты анимацияны сүйемелдеу терезесі.
7 мысал.
unit Win_medPlay;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, MPlayer, ExtCtrls;
type

TForm2 = class(TForm)

Panel1: TPanel;

Label1: TLabel;

MediaPlayer1: TMediaPlayer;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }



public

{ Public declarations }

end;
var

Form2: TForm2;


implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);

begin


MediaPlayer1.Play;

end;
procedure TForm2.FormCreate(Sender: TObject);

begin

mediaPlayer1.DisplayRect:=Rect(0,0,60,60);



end;
7 мысал. Форманың бетінде сағаттық, минуттық және секундтық стрелкасымен жүріп тұрған сағатты бейнелейтін программаны құрайық .
unit сlock;
interface

uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls;


type

TForm3 = class(TForm)

PaintBox1: TPaintBox;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure Timer1Timer(Sender: TObject);
procedure Vector(x0,y0,a,l:integer)

procedure DrawClock;


private

{ Private declarations }

public

{ Public declarations }



end;
var

Form1: TForm1;


implementation
{$R *.dfm}

uses


DateUtils;//SecondOf,

//MinuteOf және HourOf кіру үшін

const

R=75; // сағат циферблатының радиусы бұрышы



var

x0,y0:integer; //циферблат центрі

ahr,amin,asec:integer; //бағыттауыш стрелкалар бағыты

//форманы инициализациялау

procedure TForm1. FormCreate(Sender: TObject);

var


t: DateTime;

begin


//циферблаттың өлшеміне сәйкес

//форманың өлшемін береміз

ClientHeight:=(R+10)*2;

ClientWidth:= (R+10)*2;

x0:=R+10;

y0:=R+10;

t:Now();

//бағыттауыш стрелкалар бағыты

ahr:=90-HourOf(t)*30-(MinuteOf(Today)div 12)*6;

amin:=90-MinuteOf(t)*6;

asec:=90- SecondOf(Today)*6;

Timer1.Interval:=1000; // 1сек таймер сигналының периоды

Timer1.Enabled:=True; //таймерді қосу

End;


//(x0,y0)нүктесінен берілген ұзындықпен вектор сызылады
procedure Tform1.Vector(x0,y0:integer;a,l:integer);

// x0,y0-вектродың басы

// a-X осі мен вектор арасындағы бұрыш

// l-вектордың ұзыңдығы

const

GRAD=0.0174532; //бұрышты градустан радионға есептеу коэффициенті



var

x,y:integer; //вектордың соңғы нүктесінің координатасы

begin

Canvas.MoveTo(x0,y0);



x:=Round(x0+1*cos(a*GRAD));

y:=Round(y0-1*sin(a*GRAD));

Canvas.LineTo(x,y);

end; // бағыттауыш стрелкалар procedure DrawClock;

var

t:TDateTime;



begin

//сызады секундтық және минуттық стрелкалар қадамы 6 градус

//сағат-30

//стрелкалар бейнесін өшіру

Canvas.Pen.Color:=clBtnFace;

Canvas.Pen.Width:=3;

//сағаттық

Vector(x0,y0,ahr,R-20);

//минуттық

Vector(x0,y0,amin,R-20);

//секундтық

Vector(x0,y0,asec,R-7);

T:=Now();
//стрелкалардың жаңа орналасу жағдайы

ahr:=90-HourOf(t)*30-(MinuteOf(Today)div 12)*6;

amin:=90-MinuteOf(t)*6;

asec:=90- SecondOf(t)*6;

//стрелкалар салу

//сағаттық стрелка

Canvas.Pen.Width:=3;

Canvas.Pen.Color:=clBlack;

Vector(x0,y0,ahr,R-20);

//минуттық стрелка

Canvas.Pen.Width:=2;

Canvas.Pen.Color:=clBlack;

Vector(x0,y0,amin,R-15);

//секундтық стрелка

Canvas.Pen.Width:=1;

Canvas.Pen.Color:=clYellow;

Vector(x0,y0,asec,R-7);

end;


//циферблат пен бастапқы стрелкаларды салу procedure Tform1.FormPaint(Sender: TObject);

var


x,y:integer; //циферблаттағы маркер координаты

a:integer; //OX осі мен (x0,y0),(x,y) арасындағы бұрыш

pc:TColor; //қарындаш түсі

pw:integer; //қарындаш ені

begin

pc:= Canvas.Pen.Color



pw:= Canvas.Pen.Width;

Canvas.Pen.Width:=1;

Canvas.Pen.Color:=clBlack;

a:=0; //сағат стрелкасына қарсы

//сағат 3-тен бастап белгі қоямыз

//циферблат

While a<360 do

begin


x:=x0+Round(R*cos(a*2*pi/360));

y:=x0-Round(R*sin(a*2*pi/360));

Form1.Canvas.MoveTo(x,y);

if (a mod 30) do

then Canvas.Ellipse(x-2,y-2,x+3,y+3)

else Canvas.Ellipse(x-1,y-1,x+1,y+1)

a:=a+6; //1 минут - 6 градус

end;


//қарындаш, қыл қаламды қалпына келтіру

Canvas.Pen.Width:=pw;

Canvas.Pen.Color:=pc;

DrawClock;

end;

//сағат стрелкасының ағымдағы жағдайын салу



procedure Tform1.Timer1Timer(Sender: TObject);

begin


DrawClock;
end;
end.


Ұсынылатын әдебиеттер: [1-9]

Бекіту сұрақтары:

  1. Графикалық құралдары пайдалануға арналған кластарды атаңдар.

  2. Шрифт қандай кластың көмегімен құралады?

  3. Сызық қандай кластың көмегімен құралады?

  4. Толтыру қандай кластың көмегімен құралады?

  5. Кенеп қандай кластың көмегімен құралады?

  6. Қаламның қандай қасиеттері бар?

  7. Қылқаламның қызметі не?

  8. Графикалық бетке мәтін қалай шығарылады?

  9. Графикалық примитивтерді салудың қандай әдістері бар?

  10. Image компонентінің қызметі қандай?

  11. Сурет шығару үшін қандай компонент пайдаланылады?

  12. Мультипликация дегеніміз не?

  13. Мультимедиялық программалар қандай компоненттің көмегімен құралады?

  14. Видеороликтер, дыбысы бар анимациялар қандай компоненттердің көмегімен орындалады?

  15. Media Player компонентінде қандай қызметтер қамтылған?

  16. Дыбыс шығару үшін қандай компонент қолданылады?

Пайдаланылған әдебиеттер

  1. Давыдова Е.В., Скородумов И.А., Балаханов В.А. Создание базовых элементов интерфейса Windows программы в среде Delphi. Информатика и образование. № 4,5,6. 2002.

  2. Дудина И.П. Построение графиков функций в Delphi. Информатика и образование. №6, 2003, стр.27 -31.

  3. Кнопка Р. Создание оригинальных компонентов в среде Delphi. Пер.с англ.Рей.К.: НИПФ «Диа Софт ЛТД», 1996-152 с.

  4. Культин Н. Delphi 3. Программирование на Object Pascal. Санкт-Петербург, 1998. -304 с.

  5. Орлик С.В. Секреты Delphi на примерах. М.: Бином, 1996-136 с.

  6. В.Фаронов. Объектно-риентированная среда Delphi. Версия 6. Учебное пособие. «Русская редакция», 2002.

  7. М.Фленов. Библия Delphi. Санкт-Петербург «БХВ-Петербург», 2004-880 с.: ил.

  8. Халықова К.З., Бостанов Б., Тұрғанбаев А. Объектілі бағдарланған программалау жүйелерінің негіздері. Оқу құралы. Абай ат. ҚазҰПУ. Алматы, 2005-301 б.

  9. Халықова К.З. Паскаль тілінде программалау. Оқу құралы. Абай ат. АлМУ. Алматы, 2002-210 б.




Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет