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.

                          Форма.

 

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

       

                 


 

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

60269. Україно, моя Україно. Виховний захід 124.5 KB
  Україно моя Україно Мого серця струна золота. Через поле твоє Україно Не одна пролетіла орда. Але вистояв в ті лихоліття Як Антей український наш рід І крокує у новім столітті Незборимий немов моноліт Україно моя мій щасливий барвінковий краю В соловїних гаях в жайворонковій пісні в полях Рідна земле моя я ріднішої в світі не знаю Україно ти доле моя Україно моя ти колиска козацького роду Ти заново у крові зродилась немов немовля. Україно ти гордість моя Ми щасливий народ і щасливими будем довіку.
60270. Літературно-музична композиція «Что делать нам с бессмертными стихами?» 92.5 KB
  Ведуча Ми запрошуємо Вас до літературномистецького кабаре Бродячая Собака якому в цьому році відзначають 100 років від дня заснування. Це буде і не кабаре і не клуб ні карт ні програми Ведуча Так Микола Могилевський став хрещеним батьком...
60271. ВІД ЗІРОК - ДО ЗІРОК 61 KB
  Мета: вчити сприймати і відчувати все серцем; розвивати творчі здібності; формувати і виховувати творчу особистість, здатну цінувати себе і поважати інших. вечір наші мами Добрий вечір татусі Добрий вечір бабусі і дідусі І звичайно гості всі...
60272. АЛЬТЕРНАТИВНІ ДЖЕРЕЛА ЕНЕРГІЇ 1.8 MB
  Мета і завдання проекту Виявити переваги і недоліки традиційних джерел енергії Провести дослідження наявних світових енергетичних комплексів з метою виявлення найбільш безпечних з точки зору екології...
60273. Хіміко-екологічний калейдоскоп 242 KB
  Мета: екологічне виховання учнів; пропаганда розумного ставлення до природи; привернення уваги учнів до проблем навколишнього середовища з метою захистити землю від нас самих, зберегти її для нас і наших нащадків.
60274. Конференція «Про аскорбінку знаємо все!?.» 95.5 KB
  Обладнання: плакати Добова потреба населення України у вітаміні С Вміст вітаміну С у продуктах харчування бюлетень Корисно знати що Реактиви: соки цитрусових розчин крохмалю розчин йоду колби.
60275. Чотирнадцяте сузір’я: вплив Космосу на свідомість людини 102.5 KB
  А там далекодалеко розгорнулось недосяжне тло помережане сузірями. Небесним світилам почали поклонятися а найбільш яскраві й помітні групи зір обєднали в сузіря кожному з яких дали своє найменування: Персей Кассіопея Андромеда Південна Гідра Телець Центавр Пегас Овен тощо.
60276. Люди на світ народжуються різними: несхожими, своєрідними 84 KB
  Слайд 3: Учень 1: Толерантність означає пошану прийняття і правильне розуміння багатого різноманіття культур нашого світу різних форм самовираження і способів проявів людської індивідуальності.
60277. День Победы 49.5 KB
  Ход урока За то что солнце светит нам спасибо доблестным солдатам Какой праздник наша страна отмечает 9 Мая Кто и когда начал войну Сколько лет длилась Великая Отечественная Война слайд №1 1. Тогда появились плакаты РодинаМать зовет и была написана песня Священная война.