16509

Создать программу в Delphi с задаными действиями

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 6 Создать программу в Delphi со следующими действиями. Задайте цвет формы свойство color. Часть первая: На событие мыши OnMouseDown переведите значение переменной Flag:Boolean в True выполните процедуру Form1.Canvas.MoveTox0y0 где x0y0 позиция курсора мышки и откройте ...

Русский

2013-06-22

75 KB

3 чел.

Лабораторная работа № 6

Создать программу в Delphi со следующими действиями.

Задайте цвет формы (свойство color).

Часть первая:

На событие мыши OnMouseDown переведите значение переменной Flag:Boolean в True, выполните процедуру Form1.Canvas.MoveTo(x0,y0) (где x0,y0 – позиция курсора мышки) и откройте файл для записи (см. свой вариант).

На событие OnMouseMove (при условии Flag=True) выполните процедуру Form1.Canvas.LineTo(x,y) и произведите запись координат (x-x0,y-y0)  в файл.

На событие мыши OnMouseUp переведите значение переменной Flag в false и закройте файл.

Часть вторая:

При нажатии правой кнопки мыши, открывается файл, считываются координаты и по ним рисуется сохраненная в файле фигура из точки, где находится указатель мыши.  

Примечание1: Добавьте возможность изменения толщины и цвета пера.

Вариант

нечетный

Файл текстовый

четный

Файл типизированный (например, file of word)


Текст программы

Часть 1:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

 type

 { TForm1 }

 TForm1 = class(TForm)

   procedure FormCreate(Sender: TObject);

   procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

     Shift: TShiftState; X, Y: Integer);

   procedure FormMouseMove(Sender: TObject; 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

 var

 flag:boolean;

 f:TextFile;

 x0,y0:integer;

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin

 Flag := False;

end;

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

 Shift: TShiftState; x, y: integer);

var

 dx,dy:integer;

begin

 if not flag then

 begin

   if Button = mbLeft then

   begin

     flag := True;

     AssignFile(f,'risynok.dat');

     ReWrite(f);

     x0:=x;

     y0:=y;

     Canvas.MoveTo(x,y);

   end

   else

   if Button = mbRight then

   begin

     x0:=x;

     y0:=y;

     Canvas.MoveTo(x,y);

     AssignFile(f, 'risynok.dat');

     ReSet(f);

     while not EOF(f) do

     begin

       Readln(f,x,y);

       Canvas.LineTo(x0-x,y0-y);

     end;

     CloseFile(f);

   end;

 end;

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; x,y: integer);

begin

 if flag then

 begin

   Writeln(f,x0-x,' ',y0-y);

   Canvas.LineTo(x, y);

 end;

end;

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

 Shift: TShiftState; x, y: integer);

begin

 if flag then

 begin

   CloseFile(f);

   Flag:=false;

 end;

end;

end.

                          Форма.

 

                Демонстрация работы программы.

       

                 


 

А также другие работы, которые могут Вас заинтересовать

12851. Ассоциации отрядное дело. Развитие ассоциативного мышления 20.5 KB
  АССОЦИАЦИИ. Задачи: развитие ассоциативного мышления. Период смены: вторая половина основного периода. Возраст детей: от 12 лет. Продолжительность: от 30 минут. Количество детей: весь отряд. Место проведения: отрядное место. Оборудование: Сначала во...
12852. Анкета отрядное дело. Знакомство детей в пионерлагере 23.5 KB
  АНКЕТА. Задачи: познакомить детей Период смены: орг. период. Возраст детей: до 11 лет. Продолжительность: от 1 часа до . Количество детей: весь отряд. Место проведения: отрядное место. Оборудование: анкеты на каждого ребёнка листы бумаги А5. Вожатый раз...
12853. Автопортрет отрядное мероприятие. Знакомство детей в пионерлагере 21 KB
  АВТОПОРТРЕТ. Задача: познакомить детей друг с другом. Период смены: организационный. Возраст детей: кроме старших. Продолжительность: 4060 мин. Количество детей: весь отряд. Место проведения: отрядное место. Оборудование: 5 карточек. Делим отряд на 5 г...
12854. СТРАШНЫЙ СУД Карточная групповая профориентационная игра 182 KB
  СТРАШНЫЙ СУД Карточная групповая профориентационная игра Эта игра помогает подростку увидеть свои возможности и в соответствии с ними выбирать профессиональные и жизненные цели. Игра имеет диагностические психокоррекционные и прогностические аспекты. ОБЩЕЕ
12855. ИГРА Профконсультация 208.5 KB
  ИГРА Профконсультация Целью игры профконсультация является специально организованная помощь школьников друг другу при выборе профессии под наблюдением и контролем психолога. Игра имеет разные варианты которые имеют отдельные описания. В некоторых вариантах иг
12856. БУДЬ ГОТОВ! Активизирующая профориентационная методика 118 KB
  БУДЬ ГОТОВ Активизирующая профориентационная методика Цель этой методики повысить у старшеклассников уровень осознания своей готовности к различным видам профессионального труда.Эту методику можно использовать при работе с классом группой а можно в индивидуа...
12857. ИГРА УГАДАЙ ПРОФЕССИЮ 35 KB
  ИГРА УГАДАЙ ПРОФЕССИЮ ЦЕЛЬ ИГРЫ. Знакомство школьников с научной схемой анализа профессий. Игра используется при изучении тем Профессиограмма Формула профессии а также при знакомстве с конкретными профессиями различных отраслей народного хозяйства. УСЛОВИЯ ИГ
12858. Психологическая игра Звездные планеты 35.5 KB
  Психологическая игра Звездные планеты Цель игры: поставить перед детьми проблему по созданию новых планет. Психологическая цель: обучить детей совместной практической деятельности. Задачи: Развивать навыки сотрудничества и умение соревноваться со сверстниками п...
12859. СЦЕНАРИЙ ДЛЯ СВОБОДНОГО ПЛАВАНИЯ 89 KB
  СЦЕНАРИЙ ДЛЯ СВОБОДНОГО ПЛАВАНИЯ Существуют истории финал которых заранее не известен. Есть только многочисленные дороги распутья перекрестки и изредка камни с кратким описанием последствий: направо пойдешь... налево пойдешь... Остается только догадываться что ждет...