Набор исходных модулей для проведения практических занятий

Раздел Информатика
Класс 11 класс
Тип Другие методич. материалы
Автор
Дата
Формат doc
Изображения Есть
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Муниципальное Автономное Общеобразовательное Учреждение

Средняя общеобразовательная школа №111

г. Перми
















Исходные модули

для практических занятий в среде Delphi










Учитель информатики

высшей категории,

Червякова Надежда Ильинична





Пермь, 2015


Практика 1

// Работа кнопок

unit UnitKnopka;

interface

uses

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

Dialogs, StdCtrls;

type

TFormKnopka = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormKnopka: TFormKnopka;

implementation

{$R *.dfm}

procedure TFormKnopka.Button1Click(Sender: TObject);

begin

formKnopka.Label1.Visible:=True;

end;

procedure TFormKnopka.Button2Click(Sender: TObject);

begin

formKnopka.Label1.Visible:=False;

end;

procedure TFormKnopka.Button3Click(Sender: TObject);

begin

Close;

end;

end.

Практика 2

// Меняется цвет формы при нажатии левой клавиши мыши

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);

begin

{Form1.Color:=clred;}

{Color:=rgb(Random(256),Random(256),Random(256)) }

If color=clred then color:=clgreen else color:=clred;

end;

end.

// Щелчком мыши меняется вид курсора

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormDblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormDblClick(Sender: TObject);

begin

If Cursor=0 then cursor:=-21 else cursor:=cursor+1;

end;

end.

Практика 3

//кривые

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

{canvas.LineTo(x,y);}

if ssleft in shift then canvas.LineTo(x,y)

else canvas.MoveTo(x,y);

end;

end.

// Ломаные

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormDblClick(Sender: TObject);

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

draw:boolean;

implementation

{$R *.dfm}

procedure TForm1.FormDblClick(Sender: TObject);

begin

draw:=not draw;

end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

If draw then canvas.LineTo(x,y) else

canvas.MoveTo(x,y);

end;

end.

// Отрезки

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormClick(Sender: TObject);

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormClick(Sender: TObject);

begin

{with canvas do

begin

pen.Color:=clred;

pen.Style:=psDash;

moveto(10,10);

lineto(300,300);

end; }

end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

canvas.MoveTo(x,y);

end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

canvas.LineTo(x,y);

end;

end.

Практика 4

/ Прямоугольники

unit Unit1;

interface

uses

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

Dialogs;

type

TForm1 = class(TForm)

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x1,y1:integer;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

x1:=x;

y1:=y;

end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

canvas.Rectangle(x1,y1,x,y);

end;

end.

Практика 5

// картинки

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

RadioButton1: TRadioButton;

Button1: TButton;

Image1: TImage;

Image2: TImage;

Image3: TImage;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

procedure Button1Click(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure RadioButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

Image1.Visible:=true;

Image2.Visible:=false;

Image3.Visible:=false;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

Image2.Visible:=true;

Image1.Visible:=false;

Image3.Visible:=false;

end;

procedure TForm1.RadioButton3Click(Sender: TObject);

begin

Image3.Visible:=true;

Image2.Visible:=false;

Image1.Visible:=false;

end;

end.

Практика 6

//Решение квадратного уравнения

unit UnitKv;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls;

type

TFormKvUr = class(TForm)

Panel1: TPanel;

Edit_a: TEdit;

Edit_b: TEdit;

Edit_c: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Panel2: TPanel;

Label4: TLabel;

Button1: TButton;

Label5: TLabel;

Edit_d: TEdit;

Panel3: TPanel;

Label6: TLabel;

Button2: TButton;

Label7: TLabel;

Edit_x1: TEdit;

Label8: TLabel;

Edit_x2: TEdit;

Lb_otvet: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormKvUr: TFormKvUr;

a,b,c,d,x1,x2:Real;

implementation

{$R *.dfm}

procedure TFormKvUr.Button1Click(Sender: TObject);

begin

a:=StrToFloat(Edit_a.Text);

b:=StrToFloat(Edit_b.Text);

c:=StrToFloat(Edit_c.Text);

D:=b*b-4*a*c;

Edit_d.Text:=floatToStr(d);

end;

procedure TFormKvUr.Button2Click(Sender: TObject);

begin

If D>=0 then

Begin

X1:=(-b-sqrt(D))/(2*a);

Edit_x1.Text:=floattoStr(x1);

X2:=(-b+sqrt(d))/(2*a);

Edit_x2.Text:=FloatToStr(X2);

end

else

lb_Otvet.Visible:=True;

end;

procedure TFormKvUr.Button3Click(Sender: TObject);

begin

close;

end;

end.

Практика 7

// Калькулятор

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Edit1: TEdit;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

r1,r2:real;

p,s:boolean;

oper:char;

implementation

{$R *.dfm}

procedure TForm1.Button4Click(Sender: TObject);

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'1'

else Edit1.Text:='1';

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'2'

else Edit1.Text:='2';

end;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'3'

else Edit1.Text:='3';

end;

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'0'

else Edit1.Text:='0';

end;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+','

else Edit1.Text:=',';

end;

end;

procedure TForm1.Button12Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'7'

else Edit1.Text:='7';

end;

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'5'

else Edit1.Text:='5';

end;

end;

procedure TForm1.Button10Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'6'

else Edit1.Text:='6';

end;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'8'

else Edit1.Text:='8';

end;

end;

procedure TForm1.Button14Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'9'

else Edit1.Text:='9';

end;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

begin

if p then edit1.Text:='0';

p:=false;

if Edit1.text<>'0' then

Edit1.Text:=Edit1.Text+'4'

else Edit1.Text:='4';

end;

end;

procedure TForm1.Button19Click(Sender: TObject);

begin

if not(p) then r2:=StrToFloat(Edit1.Text);

If p then r2:=r1;

case oper of

'+':Edit1.Text:=FloatToStr(r1+r2);

'-':Edit1.Text:=FloatToStr(r1-r2);

'*':Edit1.Text:=FloatToStr(r1*r2);

'/': If r2<>0 then

Edit1.Text:=FloatToStr(r1/r2)

else Edit1.Text:='Error';

{'sqr':Edit1.Text:=FloatToStr(r1*r1);

'sqrt':Edit1.Text:=FloatToStr(sqrt(r1)); }

end;

p:=true

end;

procedure TForm1.Button16Click(Sender: TObject);

begin

r1:=strtofloat(Edit1.Text);

p:=true;

oper:='+'

end;

procedure TForm1.Button17Click(Sender: TObject);

begin

r1:=strtofloat(Edit1.Text);

p:=true;

oper:='-'

end;

procedure TForm1.Button18Click(Sender: TObject);

begin

r1:=strtofloat(Edit1.Text);

p:=true;

oper:='*'

end;

procedure TForm1.Button20Click(Sender: TObject);

begin

r1:=strtofloat(Edit1.Text);

p:=true;

oper:='/'

end;

procedure TForm1.Button21Click(Sender: TObject);

begin

{r1:=strtofloat(Edit1.Text);

p:=true;

oper:='sqrt' }

end;

procedure TForm1.Button22Click(Sender: TObject);

begin

{r1:=strtofloat(Edit1.Text);

p:=true;

oper:='sqr' }

end;

end.

Практика 8

//Пункты меню

unit Unit1;

interface

uses

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

Dialogs, Menus, ExtCtrls;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

FileItem: TMenuItem;

OpenItem: TMenuItem;

SaveAsItem: TMenuItem;

CloseItem: TMenuItem;

ExitItem: TMenuItem;

N1: TMenuItem;

ViewItem: TMenuItem;

HalfSizeItem: TMenuItem;

NormalSizeItem: TMenuItem;

DoubleSizeItem: TMenuItem;

Image1: TImage;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

procedure ExitItemClick(Sender: TObject);

procedure HalfSizeItemClick(Sender: TObject);

procedure NormalSizeItemClick(Sender: TObject);

procedure DoubleSizeItemClick(Sender: TObject);

procedure OpenItemClick(Sender: TObject);

procedure CloseItemClick(Sender: TObject);

procedure SaveAsItemClick(Sender: TObject);

private

Procedure Commands(Enable:Boolean);

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

Procedure Tform1.Commands(Enable:Boolean);

Begin

SaveAsItem.Enabled:=Enable;

CloseItem.Enabled:=Enable;

HalfSizeItem.Enabled:=Enable;

NormalSizeItem.Enabled:=Enable;

DoubleSizeItem.Enabled:=Enable;

end;

procedure TForm1.ExitItemClick(Sender: TObject);

begin

close;

end;

procedure TForm1.HalfSizeItemClick(Sender: TObject);

begin

HalfSizeItem.Checked:=True;

with Image1 do

Begin

AutoSize:=False;

Width:=Width div 2;

Height:=Height div 2;

end;

end;

procedure TForm1.NormalSizeItemClick(Sender: TObject);

begin

NormalSizeItem.Checked:=True;

Image1.AutoSize:=True;

end;

procedure TForm1.DoubleSizeItemClick(Sender: TObject);

begin

DoubleSizeItem.Checked:=True;

with Image1 do

Begin

AutoSize:=False;

Width:=width*2;

Height:=height*2;

end;

end;

procedure TForm1.OpenItemClick(Sender: TObject);

begin

If OpenDialog1.Execute then

begin

Image1.Picture.LoadFromFile(OpenDialog1.FileName);

Commands(true);

NormalSizeItem.Click;

end; end;

procedure TForm1.CloseItemClick(Sender: TObject);

begin

with Image1 do

begin

AutoSize:=False;

Width:=0;

Height:=0;

end;

Commands(False);

end;

procedure TForm1.SaveAsItemClick(Sender: TObject);

begin

If Savedialog1.Execute then

Image1.Picture.SaveToFile(SaveDialog1.FileName);

end;

end.

Практика 9

// Тест с выбором ответа

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

TabSheet7: TTabSheet;

TabSheet8: TTabSheet;

TabSheet9: TTabSheet;

TabSheet10: TTabSheet;

RadioGroup1: TRadioGroup;

RadioGroup2: TRadioGroup;

RadioGroup3: TRadioGroup;

RadioGroup4: TRadioGroup;

RadioGroup5: TRadioGroup;

RadioGroup6: TRadioGroup;

RadioGroup7: TRadioGroup;

RadioGroup8: TRadioGroup;

RadioGroup9: TRadioGroup;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

const

MarkText:array[0..1] of string=('Верных ответов-','Неверных - ');

Var

Markv,Markn:integer;

Begin

Markv:=0;Markn:=0;

If RadioGroup1.ItemIndex=Radiogroup1.Tag then inc(Markv)

else inc(markn);

If RadioGroup2.ItemIndex=Radiogroup2.Tag then inc(Markv)

else inc(markn);

If RadioGroup3.ItemIndex=Radiogroup3.Tag then inc(Markv)

else inc(markn);

If RadioGroup4.ItemIndex=Radiogroup4.Tag then inc(Markv)

else inc(markn);

If RadioGroup5.ItemIndex=Radiogroup5.Tag then inc(Markv)

else inc(markn);

If RadioGroup6.ItemIndex=Radiogroup6.Tag then inc(Markv)

else inc(markn);

If RadioGroup7.ItemIndex=Radiogroup7.Tag then inc(Markv)

else inc(markn);

If RadioGroup8.ItemIndex=Radiogroup8.Tag then inc(Markv)

else inc(markn);

If RadioGroup9.ItemIndex=Radiogroup9.Tag then inc(Markv)

else inc(markn);

ShowMessage(MarkText[0]+IntToStr(markv)+MarkText[1]+IntToStr(markn));

end;

begin

end.

Пример 10

// Движение планет

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg;

var

X,Y:real;

type

TForm1 = class(TForm)

Image1: TImage;

Image2: TImage;

Timer1: TTimer;

Button1: TButton;

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

var

X0,Y0:integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

begin

timer1.Tag:=timer1.tag+5;

if timer1.tag=360 then timer1.Tag:=0;

X:=100*Cos(timer1.Tag/180*pi);

Y:=100*sin(timer1.Tag/180*pi);

image2.;

image2.;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

X0:=image1.left+image1.width div 2;

Y0:=image1.top+image1.height div 2;

end;

end.

Пример 11

// Пуля разбивает большой шар на маленькие

unit UnitPulya;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons;

type

TFormPulya = class(TForm)

Shape1: TShape;

Shape2: TShape;

Shape3: TShape;

Shape4: TShape;

Shape5: TShape;

Shape6: TShape;

Shape7: TShape;

Shape8: TShape;

Shape9: TShape;

Shape10: TShape;

Image1: TImage;

Timer1: TTimer;

bbt_Pusk: TButton;

Label1: TLabel;

Timer2: TTimer;

BitBtn2: TBitBtn;

Button1: TButton;

procedure Timer1Timer(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

procedure bbt_PuskClick(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FormPulya: TFormPulya;

implementation

{$R *.dfm}

procedure TFormPulya.Timer1Timer(Sender: TObject);

begin

If Image1.Left>Shape2.Left-Image1.Width then

begin

Image1.Visible:=False;

Timer2.Enabled:=True;

Timer2.Interval:=10;

Shape1.Visible:=False;

Timer1.Enabled:=False;

end

else

Image1.;

end;

procedure TFormPulya.Timer2Timer(Sender: TObject);

begin

If Shape2.Left>=460 then

begin

Shape2.Visible:=False;

Shape3.Visible:=False;

Shape4.Visible:=False;

Shape5.Visible:=False;

Shape6.Visible:=False;

Shape7.Visible:=False;

Shape8.Visible:=False;

Shape9.Visible:=False;

Label1.Visible:=True;

Bbt_Pusk.Visible:=True;

Timer2.Enabled:=False;

Shape2.;

Shape2.;

Shape3.;

Shape3.;

Shape4.;

Shape4.;

Shape5.;

Shape5.;

Shape6.;

Shape6.;

Shape7.;

Shape7.;

Shape8.;

Shape8.;

Shape9.;

Shape9.;

end

else

begin

Shape2.Visible:=True;

Shape3.Visible:=True;

Shape4.Visible:=True;

Shape5.Visible:=True;

Shape6.Visible:=True;

Shape7.Visible:=True;

Shape8.Visible:=True;

Shape9.Visible:=True;

Shape2.;

Shape3.;

Shape4.;

Shape5.;

Shape6.;

Shape6.;

Shape7.;

Shape7.;

Shape8.;

Shape8.;

Shape9.;

Shape9.;

end;

end;

procedure TFormPulya.bbt_PuskClick(Sender: TObject);

begin

Label1.Visible:=False;

bbt_Pusk.Visible:=False;

Timer1.Enabled:=True;

Timer1.Interval:=10;

Image1.Visible:=true;

Shape1.Visible:=True;

Shape2.Visible:=True;

Image1.;

end;

procedure TFormPulya.BitBtn2Click(Sender: TObject);

begin

Bitbtn2.Visible:=False;

Timer1.Enabled:=True;

Timer1.Interval:=20;

end;

procedure TFormPulya.Image1Click(Sender: TObject);

begin

image1.;

end;

procedure TFormPulya.Button1Click(Sender: TObject);

begin

close;

end;

end.

Практика 12

// Текстовый редактор(демонстрация меню редактора)

unit UnitDocument;

interface

uses

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

Dialogs, Menus, StdCtrls, ComCtrls, Clipbrd;

type

TFormDocument = class(TForm)

MainMenu1: TMainMenu;

File1: TMenuItem;

Edit1: TMenuItem;

Format1: TMenuItem;

RichEdit1: TRichEdit;

New1: TMenuItem;

Open1: TMenuItem;

Close1: TMenuItem;

Save1: TMenuItem;

SaveFileDialog: TSaveDialog;

FontDialog1: TFontDialog;

PrintDialog1: TPrintDialog;

PrinterSetupDialog1: TPrinterSetupDialog;

PopupMenu1: TPopupMenu;

Save_as: TMenuItem;

Print1: TMenuItem;

Print_Setup1: TMenuItem;

N1: TMenuItem;

Exit1: TMenuItem;

Cut1: TMenuItem;

Copy1: TMenuItem;

Paste1: TMenuItem;

Delete1: TMenuItem;

N2: TMenuItem;

SelectAll: TMenuItem;

Left1: TMenuItem;

Right1: TMenuItem;

Center1: TMenuItem;

WordWrap1: TMenuItem;

Font1: TMenuItem;

OpenFileDialog: TOpenDialog;

procedure New1Click(Sender: TObject);

procedure Open1Click(Sender: TObject);

procedure Save1Click(Sender: TObject);

procedure Close1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Save_asClick(Sender: TObject);

procedure Print1Click(Sender: TObject);

procedure Print_Setup1Click(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure Edit1Click(Sender: TObject);

procedure Cut1Click(Sender: TObject);

procedure Copy1Click(Sender: TObject);

procedure Paste1Click(Sender: TObject);

procedure Delete1Click(Sender: TObject);

procedure SelectAllClick(Sender: TObject);

procedure Format1Click(Sender: TObject);

procedure WordWrap1Click(Sender: TObject);

procedure Font1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

private

{ Private declarations }

PathName:string;

public

{ Public declarations }

Procedure Open(const AFileName:string);

end;

var

FormDocument: TFormDocument;

implementation

uses UnitEdit;

{$R *.dfm}

procedure TFormDocument.New1Click(Sender: TObject);

begin

FormEdit.NewClick(Sender);

end;

procedure TFormDocument.Open1Click(Sender: TObject);

begin

FormEdit.OpenClick(Sender);

end;

procedure TFormDocument.Open(const AFileName:string);

begin

PathName:=AFileName;

Caption:=ExtractFileName(AFileName);

with RichEdit1 do

Begin

Lines.LoadFromFile(PathName);

SelStart:=0;

Modified:=False;

end;

end;

procedure TFormDocument.Save1Click(Sender: TObject);

begin

If PathName=Self.Caption Then

Save_asClick(Sender)

Else

Begin

RichEdit1.Lines.SaveToFile(PathName);

RichEdit1.Modified:=False;end;

end;

procedure TFormDocument.Close1Click(Sender: TObject);

begin

close;

end;

procedure TFormDocument.FormCreate(Sender: TObject);

begin

PathName:=Self.Caption;

end;

procedure TFormDocument.Save_asClick(Sender: TObject);

begin

SaveFileDialog.FileName:=PathName;

If SaveFileDialog.Execute Then

Begin

PathName:=SaveFileDialog.FileName;

Caption:=ExtractFileName(PathName);

Save1Click(Sender);

end;

end;

procedure TFormDocument.Print1Click(Sender: TObject);

begin

If PrintDialog1.Execute Then

RichEdit1.Print(PathName);

end;

procedure TFormDocument.Print_Setup1Click(Sender: TObject);

begin

PrinterSetupDialog1.Execute;

end;

procedure TFormDocument.Exit1Click(Sender: TObject);

begin

FormEdit.ExitClick(Sender);

end;

procedure TFormDocument.Edit1Click(Sender: TObject);

Var

HasSelection:boolean;

begin

Paste1.Enabled:=Clipboard.HasFormat(Cf_text);

{Paste2.Enabled:=Paste1.Enabled; }

HasSelection:=RichEdit1.SelLength>0;

Cut1.Enabled:=HasSelection;

{Cut2.Enabled:=HasSelection;}

Copy1.Enabled:=HasSelection;

{Copy2.Enabled:=HasSelection; }

Delete1.Enabled:=HasSelection;

end;

procedure TFormDocument.Cut1Click(Sender: TObject);

begin

RichEdit1.CutToClipboard;

end;

procedure TFormDocument.Copy1Click(Sender: TObject);

begin

RichEdit1.CopyToClipBoard;

end;

procedure TFormDocument.Paste1Click(Sender: TObject);

begin

RichEdit1.PasteFromClipBoard;

end;

procedure TFormDocument.Delete1Click(Sender: TObject);

begin

RichEdit1.ClearSelection;

end;

procedure TFormDocument.SelectAllClick(Sender: TObject);

begin

RichEdit1.SelectAll;

end;

procedure TFormDocument.Format1Click(Sender: TObject);

begin

Left1.Checked:=False;

Right1.Checked:=False;

Center1.Checked:=False;

With Sender as TmenuItem do Checked:=True;

with RichEdit1.Paragraph do

If Left1.Checked then

Alignment:=taRightJustify

else if center1.Checked then

Alignment:=taCenter;

end;

procedure TFormDocument.WordWrap1Click(Sender: TObject);

begin

with RichEdit1 do

Begin

WordWrap:=not WordWrap;

If WordWrap then

ScrollBars:=ssVertical

Else

ScrollBars:=ssBoth;

WordWrap1.Checked:=WordWrap;

end;

end;

procedure TFormDocument.Font1Click(Sender: TObject);

begin

FontDialog1.Font:=RichEdit1.Font;

If FontDialog1.Execute then

RichEdit1.SelAttributes.Assign(FontDialog1.Font);

end;

procedure TFormDocument.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TFormDocument.FormCloseQuery(Sender: TObject;

var CanClose: Boolean);

const

SwarningText='сохранить изменения в %s?';

begin

If RichEdit1.Modified Then

Begin

case MessageDlg(Format(SwarningText,[PathName]),

mtConfirmation,[mbyes,mbNo,mbCancel],0) of

idYes:save1Click(Self);

idCancel:CanClose:=False;

end;

end;

end;

end.

Практика 13

// Игра "Жизнь"

unit Unit1;

interface

uses

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

Dialogs, ComCtrls, ToolWin, ImgList, Grids, ExtCtrls;

type

TLifeForm = class(TForm)

ToolBar1: TToolBar;

RandomTbt: TToolButton;

NewTBt: TToolButton;

ToolButton1: TToolButton;

FadeTBt: TToolButton;

ToolButton2: TToolButton;

RunTBt: TToolButton;

StopTBt: TToolButton;

ImageList1: TImageList;

lifeSGd: TStringGrid;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure RandomTbtClick(Sender: TObject);

procedure NewTBtClick(Sender: TObject);

procedure FadeTBtClick(Sender: TObject);

procedure RunTBtClick(Sender: TObject);

procedure StopTBtClick(Sender: TObject);

procedure lifeSGdSelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure lifeSGdDrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

private

{ Private declarations }

public

procedure OneStep;

{ Public declarations }

end;

const

mx=50;

my=25;

var

LifeForm: TLifeForm;

Fade:boolean;

implementation

{$R *.dfm}

procedure TLifeForm.FormCreate(Sender: TObject);

var i,j:integer;

begin

timer1.Enabled:=false;

Fade:=false;

For i:=0 to MX-1 do

for j:=0 to MY-1 do LifeSGd.Cells[i,j]:='0';

end;

procedure TLifeForm.RandomTbtClick(Sender: TObject);

Var x,y:integer;

begin

Randomize;

For y:=0 to MY-1 do

For x:=0 to MX-1 do

LifeSGd.Cells[x,y]:=IntToStr(Random(2));

end;

procedure TLifeForm.NewTBtClick(Sender: TObject);

Var y,x:integer;

begin

For y:=0 to MY-1 do

For x:=0 to MX-1 do LifeSGd.Cells[x,y]:='0';

Timer1.Enabled:=False;

end;

procedure TLifeForm.FadeTBtClick(Sender: TObject);

begin

Fade:=not(Fade);

FadeTBt.Down:=Fade;

end;

procedure TLifeForm.RunTBtClick(Sender: TObject);

begin

Timer1.Enabled:=True;

RunTBt.Down:=True;

StopTbt.Down:=False;

end;

procedure TLifeForm.StopTBtClick(Sender: TObject);

begin

Timer1.Enabled:=False;

StopTBt.Down:=True;

RunTBt.Down:=False;

end;

procedure TLifeForm.lifeSGdSelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

begin

If LifeSGd.Cells[Acol,Arow]='1'

then LifeSGd.Cells[Acol,Arow]:='0'

else LifeSGd.Cells[Acol,Arow]:='1';

end;

procedure TLifeForm.lifeSGdDrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

begin

LifeSGD.Canvas.Brush.Color:=clWhite;

case StrToInt(LifeSGD.Cells[Acol,Arow]) of

1: LifeSGD.Canvas.Brush.Color:=clBlue;

2: If Fade then LifeSGd.Canvas.Brush.Color:=clBlue-13000;

3: if Fade then LifeSGd.Canvas.Brush.Color:=clBlue-17000;

end;

LifeSGd.Canvas.FillRect(Rect);

end;

procedure TlifeForm.OneStep;

const

Dx:array[1..8] of integer=(-1,0,1,1,1,0,-1,-1);

Dy:array[1..8] of integer=(-1,-1,-1,0,1,1,1,0);

var

i,j,k,count:integer;

a:array[0..mx,0..my] of byte;

begin

FillChar(a,SizeOf(a),0);

for i:=1 to MX-1 do

For j:=1 to my-1 do

begin

count:=0;

For k:=1 to 8 do

If LifeSGd.Cells[i+DX[k],j+DY[k]]='1' then Inc(count);

case count of

0..1,4..8:A[i,j]:=0;

2:if LifeSGd.Cells[i,j]='1' then a[i,j]:=1

else A[i,j]:=0;

3:A[i,j]:=1;

end;

end;

For i:=0 to MX-1 do

For j:=0 to MY-1 do

If A[i,j]=1 then LifeSGd.Cells[i,j]:='1'

else if (LifeSGd.Cells[i,j]='1')

then LifeSGd.Cells[i,j]:='2'

else if (LifeSGd.Cells[i,j]='2')

Then LifeSGd.Cells[i,j]:='3'

else LifeSGd.Cells[i,j]:='0';

end;

end.

Практика 14

// Игра "Блоки"

unit Unit1;

interface

uses

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

Dialogs, Grids, StdCtrls, ExtCtrls, ImgList, Spin;

type

TForm1 = class(TForm)

sg: TStringGrid;

btnNewGame: TButton;

ImageList1: TImageList;

SpinEdit1: TSpinEdit;

Label1: TLabel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure btnNewGameClick(Sender: TObject);

procedure sgDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;

State: TGridDrawState);

procedure Timer1Timer(Sender: TObject);

procedure sgMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

C:array [0..5,0..5] of byte;

b:boolean;

x,y:byte;

N:byte;

bShowAll:boolean;

bNewGame:boolean;

bC:array [1..18] of boolean;

b1:boolean;

bShow2:boolean;

x1,y1,x2,y2:byte;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

var i:integer;

begin

bNewGame:=false;

bShowAll:=false;

for i:=0 to 5 do

begin

sg.ColWidths[i]:=50;

sg.RowHeights[i]:=50;

end;

end;

procedure TForm1.btnNewGameClick(Sender: TObject);

var b:boolean;

i,j:integer;

N:integer;

x,y:integer;

begin

for i:=0 to 5 do

for j:=0 to 5 do

C[i,j]:=0;

for i:=1 to 18 do

bC[i]:=false;

for N:=1 to 18 do

begin

b:=false;

Randomize;

while not b do

begin

x:=random(6);

y:=random(6);

if C[x,y]=0 then

begin

C[x,y]:=N;

b:=true;

end;

end;

b:=false;

while not b do

begin

x:=random(6);

y:=random(6);

if C[x,y]=0 then

begin

C[x,y]:=N;

b:=true;

end;

end;

end;

bShowAll:=true;

sg.Repaint;

Timer1.Interval:=1000*strtoint(SpinEdit1.Text);

Timer1.Enabled:=true;

end;

procedure TForm1.sgDrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

begin

if bShowAll then

begin

ImageList1.Draw(sg.Canvas,Rect.Left-2,Rect.Top-2,C[ACol,ARow]);

exit;

end;

if not bNewGame then

exit;

if b1 then

if (ACol=x1) and (ARow=y1) then

begin

ImageList1.Draw(sg.Canvas,Rect.Left-2,Rect.Top-2,C[ACol,ARow]);

exit;

end;

if bShow2 then

if (ACol=x2) and (ARow=y2) then

begin

ImageList1.Draw(sg.Canvas,Rect.Left-2,Rect.Top-2,C[ACol,ARow]);

exit;

end;

if not bC[C[ACol,ARow]] then

ImageList1.Draw(sg.Canvas,Rect.Left-2,Rect.Top-2,0)

else

ImageList1.Draw(sg.Canvas,Rect.Left-2,Rect.Top-2,C[ACol,ARow]);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Timer1.Enabled:=false;

bShowAll:=false;

bNewGame:=true;

sg.Repaint;

b1:=false;

end;

procedure TForm1.sgMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

var ACol,ARow:integer;

begin

if not bNewGame then

exit;

sg.MouseToCell(x,y,ACol,ARow);

if b1 and (ACol=x1) and (ARow=y1) then

exit;

if bShow2 and (ACol=x2) and (ARow=y2) then

exit;

if bC[C[ACol,ARow]] then

exit;

if b1 then

begin

bShow2:=true;

x2:=ACol;

y2:=ARow;

sg.Repaint;

Sleep(800);

b1:=false;

bShow2:=false;

if C[x1,y1]=C[x2,y2] then

bC[C[x1,y1]]:=true;

sg.Repaint;

end

else

begin

x1:=ACol;

y1:=ARow;

b1:=true;

sg.Repaint;

end;

end;

end.

Практика 15

// Графики функций

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Image1: TImage;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Show;

end;

end.

Практика 16

// Drag and Drop

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, Buttons, ExtCtrls;

type

TForm1 = class(TForm)

Shape1: TShape;

BitBtn1: TBitBtn;

Shape2: TShape;

Shape3: TShape;

procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Shape1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1; x0,y0:integer;

f:boolean=false;

implementation

{$R *.dfm}

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

x0:=x; y0:=y;

f:=true;

end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if f then

begin

with shape1 do

begin

;

;

end;

f:=false;

end;

end;

end.

procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

x0:=x; y0:=y;

f:=true;

end;

procedure TForm1.Shape2MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if f then

begin

with shape2 do

begin

;

;

end;

f:=false;

end;

end;

© 2010-2022