Delphi визуалды программалау ортасы



жүктеу 1,5 Mb.
бет82/94
Дата03.02.2022
өлшемі1,5 Mb.
#35447
1   ...   78   79   80   81   82   83   84   85   ...   94
Delphi визуалды программалау жүйесі

29-сурет


30-сурет



31-сурет



32-сурет

Жұмысты орындау бағдарламасы:

unit grafik01;

//GR процедурасын бетінде график сызылатын және өзі басқа //модульде орналасқан Form2 пішіні үшін onPaint оқиғасын өңдеу //процедурасы шақырады.

// Сондықтан функция хабарландыруын басқа модульден шақырып //алу үшін Interface тарауында орналастыру қажет.

procedure gr;

implementation

uses grafik02;

{$R *.dfm}

{ Пішінді құру кезінде StringGrid компонентінің қасиетін орнату:

FixedRows := 0;

RowCount := 2;

Options.goEditing := True;

Options.goTab := True;}

const


COLCOUNT = 15;

var


// функцияның аргументтері мен мәндері

x: array[1..COLCOUNT] of real;

y: array[1..COLCOUNT] of real;

// x,y жиымының мәндері бойынша график салу

procedure gr;

var


i: integer;

x1,x2:real; // функция аргументінің өзгеру шектері

y1,y2:real; // функция мәндерінің өзгеру шектері

l,b:integer; // график шығатын аймақтың сол жақ төменгі бұрышы

w,h:integer; // график шығатын аймақтың ені мен биіктігі

mx,my:real; // X және Y осьтері бойынша масштаб

x0,y0:integer; // координат осьтерінің қиылысу нүктесі

px,py: integer;// пішін бетіндегі графиктің нүкте координаталары

np: integer; // графиктегі нүктелер саны

begin


Form2.Canvas.Rectangle(0,0,Form2.ClientWidth,Form2.ClientHeight);

// график шығатын аймақ

i:=10; // X - сол жақ жоғарғы бұрыш координатасы

b:=Form2.ClientHeight-20; // Y – сол жақ төменгі бұрыш //координатасы

h:=Form2.ClientHeight-40; //биіктігі

w:=Form2.Width-40; // ені

// аргументтің өзгеру шектері мен нүктелер санын анықтау (X //жиымының элементтері өспелі тізбек құрауы тиіс)

x1:=x[1];

i:=1;

while (x[i+1] > x[i]) and (i < COLCOUNT) do i:= i+1;



x2:= x[i]; //x[COLCOUNT-1];

np:=i; // нүктелер саны

if np < 2 then begin

ShowMessage('График нүктелері екіден кем болмауы қажет');

exit;

end;


// функцияның ең үлкен және ең кіші мәндерін табу

y1:=0; y[1]; // минимум

y2:=0; y[1]; // максимум

for i:=1 to np do

begin

if y[i] < y1 then y1:=y[i];



if y[i] > y2 then y2:=y[i];

end;


// масштабты есептеу

my:=h/abs(y2-y1); // Y осі бойынша масштаб

mx:=w/abs(x2-x1); //X осі бойынша масштаб

// координат осьтерінің қиылысу нүктесі

x0:=l+Abs(Round(x1*mx));

y0:=b-Abs(Round(y1*my));

with form2.Canvas do

begin


MoveTo(x0,b);LineTo(x0,b-h); // ось Y

MoveTo(l,y0);LineTo(l+w,y0); // ось X

TextOut(l+5,b-h,FloatToStrF(y2,ffGeneral,6,3));

TextOut(l+2,b+2,FloatToStrF(y1,ffGeneral,6,3));

// график салу

for i:=1 to np do

begin

px := x0+Round(x[i]*mx);



py := y0-Round(y[i]*my);

Form2.Canvas.Pen.Color := clRed;

Rectangle(px-2,py-2,px+2,py+2); // маркер

if Form1.CheckBox1.Checked then

// қосу сызығы

if i = 1


then MoveTo(px,py)

else LineTo(px,py);

Form2.Canvas.Pen.Color := clBlack;

// функция мәні және аргументі

TextOut(px-5,py-15,FloatToStr(y[i]));

TextOut(px-5,y0+2, FloatToStr(x[i]));

MoveTo(px,py); // Қаламұшты px,py нүктелеріне қайтару

// өйткені TextOut қаламұш орнын өзгертеді.

end;

end;


end;

procedure TForm1.FormCreate(Sender: TObject);

var

i: integer;



begin

StringGrid1.ColCount := COLCOUNT;

StringGrid1.Cells[0,0] := ' X';

StringGrid1.Cells[0,1] := ' Y';

// Өңдеу: кестені толтыру

for i:=1 to COLCOUNT do

begin

StringGrid1.Cells[i,0] := IntToStr(i-1);



StringGrid1.Cells[i,1] := IntToStr(i-1);

end;


end;

// Құру батырмасын шерту

procedure TForm1.Button1Click(Sender: TObject);

var


i: integer;

begin


// Кестедегі мәндерді функция мәндері мен аргументтерінің //жиымы түрінде қайта жазу

for i:=1 to COLCOUNT-1 do

begin

x[i] := StrToFloat(Form1.StringGrid1.Cells[i,0]);



y[i] := StrToFloat(Form1.StringGrid1.Cells[i,1]);

end;


// Графикті шығару функциясын Form2 үшін OnPaint оқиғасын //өңдеу процедурасы шақырады

if not Form2.Showing

then Form2.Show // Form2 терезесін бейнелеу

else Form2.Repaint;

end;
19. Еске сақтау тесті
Жұмыстың мақсаты – өзіңіздің еске сақтау қабілетіңізді ұштайтын бағдарлама құру.

1. Ол үшін жаңа жоба ашып, сол Пішінге 33-суретте көрсетілген компоненттерді орналастырыңыз.






жүктеу 1,5 Mb.

Достарыңызбен бөлісу:
1   ...   78   79   80   81   82   83   84   85   ...   94




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

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау