Разработка демонстрационного многопоточного приложения с динамическим изменением свойств окна и компонент

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

КУРСОВАЯ РАБОТА

по дисциплине: «Среды визуального программирования»

Тема: «Разработка демонстрационного многопоточного приложения с динамическим изменением свойств окна и компонент»

Содержание

  • Введение
  • 1. Постановка задачи
  • 2. Выбор средств реализации
  • 3. Описание логики работы приложения и разработка программного обеспечения
  • 4. Описание пользовательского интерфейса
  • Заключение
  • Список использованной литературы
  • Приложения

Введение

Зачастую необходимо получить быстрый доступ к информации. Всё чаще для этого используются различные компьютерные приложения.

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

Среди главных причин, принесших заслуженную популярность объектно-ориентированного программирования, следует отметить следующие:

· почти полное разрешение проблемы кризиса в программном обеспечении, за счет уменьшения времени на разработку программного продукта и высокой технологии программирования;

· переход от существующих языков программирования к новым, прогрессивным информационным технологиям и сходство идей объектно-ориентированного программирования с идеями из других областей науки.

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

Преимущество ООП в наглядном представлении программы с помощью объектов (кнопок, строк для ввода информации и др.). Каждый объект принадлежит определенному классу. Например, кнопка (Button1) принадлежит классу кнопок TButton. В класс входит сколь угодно много объектов, объединенных в одну группу согласно их свойствам и поведению в среде окружения, в которой они существуют и взаимодействуют.

Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Оценки экспертов, изучающих возможности этого продукта фирмы Borland, обычно окрашены в восторженные тона. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.

Практической частью курсового проекта является разработка справочной системы по визуальным компонентам Delphi

1. Постановка задачи

Разработка справочной системы по визуальным компонентам Delphi.

Основные требования: получение информации по основным визуальным компонентам (не менее 15 компонент). Визуализация компонент в специально отведенной области с возможностью задания им разных свойств (размер, цвет и т. д.). Обеспечить возможность с помощью мыши перемещения компонент по отведенной области с отображением координат. Описание компонент должно храниться в текстовом файле.

Общие требования:

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

2. Тип приложения: GUI

2. Выбор средств реализации

Для выполнения проекта был выбран язык программирования Delphi, так как он сочетает в себе простоту выполнения задачи, построения пользовательского интерфейса, а также обладает мощным набором функций, экономящим время на разработку программного обеспечения.

В разрабатываемой программе предполагается использование следующих функций и модулей

Модуль Forms позволяет работать с формами. Для создания GUI — приложения будут использованы объекты класса TForm;

Модули StdCtrls, Buttons, ExtCtrls для создания с помощью кнопок интерфейса, удобного и привычного пользователю;

Модуль Controls для работы с классом TControl, что позволяет упростить написание обработчиков события перемещения объектов по форме с помощью мыши;

Модуль Dialogs для вызова модальной формы с помощью функции showmessage;

Модуль Windows для создания объекта FocusRect класса TRect, используемого для отображения прямоугольника при перемещении объектов по форме с помощью мыши;

Модуль Graphics для работы с классом TColor;

Модули ComCtrls и Grids исключительно для создания примеров компонент, остальные компоненты есть в ранее упомянутых модулях.

Реализация метода Drag and Drop для перемещения объектов по форме;

Реализация сохранения и загрузки состояния компонент на форме;

Изменение некоторых свойств создаваемых объектов;

Получение справочной информации о выбранном компоненте;

Получение информации о программе;

Выход из программы.

3. Описание логики работы приложения и разработка программного обеспечения

В разрабатываемом приложении реализуется справочная система по визуальным компонентам Delphi. Пользователь имеет возможность получить информацию о некоторых компонентах библиотеки VLC Delphi, увидеть пример этих компонент, изменить их свойства, а также сохранить текущее состояние программы для последующей загрузки.

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

Листинг программы приведен в приложении А.

В процессе создания программного обеспечения были разработаны процедуры и функции, приведённые в таблице 1.

Таблица 1.

Используемые методы.

Процедура

Описание

procedure ListBox1Click

При нажатии на элемент списка создаётся или удаляется соответствующий объект (при активированном переключателе CheckBox1 также показывается справка о нём).

procedure SetProperties

Присваевает свойству Text компонент Edit1, Edit2, Edit3, Edid4 соответствующие свойства выбранного компонента.

procedure ComponentMouseDown

Обработчик события нажатия кнопкой мыши на объекте для последующего его перемещения.

procedure ComponentMouseMove

Обработчик события перемещения компонента по ограниченной области формы с помощью мыши.

procedure ComponentMouseUp

Обработчик события прекращеия перемещения объекта по форме.

procedure Button1Click

Применение к выбранному компоненту свойств, заданных в Edi1, Edit2, Edit3, Edid4.

procedure BitBtn4Click

Выход из программы

procedure BitBtn5Click

Вызов модальной формы, показывающей информацию о программе

procedure BitBtn1Click

Сохранение текущего состояния программы в файл

procedure BitBtn3Click

Кнопка, вызывающая процедуру clear_all

procedure BitBtn2Click

Удаление всех созданных пользователем объектов и загрузка положения компонент на форме из файла

procedure clear_all

Удаляет созданные пользователем объекты с формы.

4. Описание пользовательского интерфейса

В интерфейсе проекта используются компоненты Delphi: Label, Button, BitBtn, Edit, ListBox, CheckBox, Shape, StatusBar.

Label — предназначен для отображения статического текста, то есть надписей и меток на форме, которые не меняются в течение всего времени работы программы.

Button и BitBtn — используется для реализации в программе команд с помощью обработчика события OnClick этого компонента.

Edit — используется для ввода — вывода текстовой информации.

ListBox — необходим для выбора пользователем компонента, с которым он хотел бы ознакомиться.

CheckBox — независимый переключатель, предназначенный для проверки решения пользователя типа Да/Нет.

Shape — данный компонент был использован для того, чтобы визуально ограничить область, в которой пользователь может работать с примерами компонент.

StatusBar — используется для отображения координаты курсора при перемещении компоненты по форме.

При запуске проекта пользователь попадает на следующую форму:

Рис. 1. Запуск проекта.

Далее, если пользователь активировал переключатель «Показывать информацию», при нажатии на один из элементов списка происходит запуск модальной формы с кратким описанием выбранного компонента, а также создание этого объекта на форме. Если переключатель не был активирован, то модальная форма не запускается.

визуальный компонент язык программирование

Рис. 2. Нажатие на элемент списка.

Появившиеся объекты пользователь может перемещать с помощью мыши по форме в разрешенных пределах, изменять их свойства применяя изменения нажатием на кпопку «Apply». При перемещении объекта, отображаются координаты курсора

Рис. 3. Изменение свойств объектов.

При работе с программой пользователь может сохранить или загрузить положение и свойства находящихся на форме объектов кликнув на соответствующих кнопках «Save» и «Load». Пользователь также может очистить поле с помощью кнопки «Clear» от всех созданных им компонент или вручную удалять каждый из них повторно нажав на соответствующий элемент списка; получить информацию о самом приложении с помощью кнопки «About»; выйти из программы нажав на кнопку «Quit».

Рис. 4. О программе.

Заключение

Целью курсовой работы было изучение языка программирования Delphi и улучшение практических заданий.

В ходе курсовой работы было разработано приложение, позволяющее получать справочную информацию о визуальных компонентах Delphi. В нём был реализован метод Drag and Drop, сохранение и загрузка данных, отображение координат курсора, изменение некоторых свойств создаваемых объектов, использованы объекты классов TForm, TLabel, TEdit, TButton, TBitBtn, TShape, TCheckBox, TListBox, TStatusBar, TColorBox. Для отображения справочной информации использовались модальные формы, информация в которые загружается из соответствующего файла.

Список использованной литературы

1. Архангельский А. Я. Программирование в Delphi: Учебник по классическим версиям Delphi. — М.: Бином, 2011.

2. Дмитрий Осипов. Delphi. Профессиональное програмирование. — 2008

3. Фаронов В. В. Delphi. Программирование на языке высокого уровня: Учебник для вузов — Спб.: Лидер, 2010.

4. Справочник Основы Delphi URL — http: //delphibasics. ru/

5. Свободная интернет-энциклопедия Wikipedia. URL — http: //ru. wikipedia. org/

Приложения

Приложение, А (обязательное)

Листинг программы

unit main;

interface

uses

Windows, SysUtils, Graphics, Controls, Forms, Dialogs, Grids,

Buttons, StdCtrls, ComCtrls, ExtCtrls, Classes;

type

TForm1 = class (TForm)

ListBox1: TListBox;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

Shape1: TShape;

Shape2: TShape;

CheckBox1: TCheckBox;

Label6: TLabel;

StatusBar1: TStatusBar;

ColorBox1: TColorBox;

Label7: TLabel;

procedure ListBox1Click (Sender: TObject);

procedure SetProperties (Sender: TObject);

procedure ComponentMouseDown (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

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

Y: Integer);

procedure ComponentMouseUp (Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Button1Click (Sender: TObject);

procedure BitBtn4Click (Sender: TObject);

procedure BitBtn5Click (Sender: TObject);

procedure BitBtn1Click (Sender: TObject);

procedure BitBtn3Click (Sender: TObject);

procedure BitBtn2Click (Sender: TObject);

procedure clear_all;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

var

button: TButton; // 1

textBox: TEdit; // 2

checkBox: TCheckBox; // 3

radio: TRadioButton; // 4

panel: TPanel; // 5

progress: TProgressBar; // 6

bitBtn: TBitBtn; // 7

labelBox: TLabel; // 8

labeledEdit: TLabeledEdit; // 9

groupBox: TGroupBox; // 10

memoBox: TMemo; // 11

speedBtn: TSpeedButton; // 12

shape: TShape; // 13

staticText: TStaticText; // 14

stringGrid: TStringGrid; // 15

Dragg: boolean;

XOffset, YOffset: integer;

FocusRect: TRect;

Selected_Component: TControl;

last: integer;

procedure TForm1. SetProperties (Sender: TObject);

begin

Edit1. Text: = IntToStr ((Sender as TControl). Left);

Edit2. Text: = IntToStr ((Sender as TControl). Top);

Edit3. Text: = IntToStr ((Sender as TControl). Height);

Edit4. Text: = IntToStr ((Sender as TControl). Width);

case last of

1: ColorBox1. Selected: =button. Font. Color;

2: ColorBox1. Selected: =textBox. Font. Color;

// 3:

// 4:

5: ColorBox1. Selected: =panel. Font. Color;

// 6:

7: ColorBox1. Selected: =bitBtn. Font. Color;

8: ColorBox1. Selected: =labelBox. Font. Color;

9: ColorBox1. Selected: =labeledEdit. Font. Color;

10: ColorBox1. Selected: =groupBox. Font. Color;

11: ColorBox1. Selected: =memoBox. Font. Color;

// 12:

// 13:

// 14:

// 15:

end;

end;

procedure TForm1. ListBox1Click (Sender: TObject);

var x, y: integer; h: textfile; shelp: AnsiString;

begin

x: = 200;

y: = 200;

if listbox1. Selected [0] then begin // Button

if checkbox1. Checked then begin

AssignFile (h,'h1. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (button)) then begin

button: = TButton. Create (Form1);

button. Parent: = Form1;

button. Left: = x;

button. Top: = y;

button. Visible: = True;

last: =1;

button. Height: = 30;

button. Width: = 80;

button. Name: = 'Button';

button. OnMouseDown: = ComponentMouseDown;

button. OnMouseMove: = ComponentMouseMove;

button. OnMouseUp: = ComponentMouseUp;

SetProperties (button);

end

else begin button. Destroy; button: =nil; exit; end; end;

if listbox1. Selected [1] then begin // Edit

if checkbox1. Checked then begin

AssignFile (h,'h2. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (textBox)) then begin

textBox: = TEdit. Create (Form1);

textBox. Parent: = Form1;

textBox. Left: = x;

textBox. Top: = y;

textBox. Visible: = True;

last: =2;

textBox. Height: = 30;

textBox. Width: = 60;

textBox. Name: = 'Edit';

textBox. OnMouseDown: = ComponentMouseDown;

textBox. OnMouseMove: = ComponentMouseMove;

textBox. OnMouseUp: = ComponentMouseUp;

SetProperties (textBox);

end

else begin textBox. Destroy; textBox: =nil; exit; end; end;

if listbox1. Selected [2] then begin // CheckBox

if checkbox1. Checked then begin

AssignFile (h,'h3. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (checkBox)) then begin

checkBox: = TCheckBox. Create (Form1);

checkBox. Parent: = Form1;

checkBox. Left: = x;

checkBox. Top: = y;

checkBox. Visible: = True;

last: =3;

checkBox. Height: = 30;

checkBox. Width: = 80;

checkBox. Name: = 'CheckBox';

checkBox. OnMouseDown: = ComponentMouseDown;

checkBox. OnMouseMove: = ComponentMouseMove;

checkBox. OnMouseUp: = ComponentMouseUp;

SetProperties (checkBox);

end

else begin checkBox. Destroy; checkBox: =nil; exit; end; end;

if listbox1. Selected [3] then begin // RadioButton

if checkbox1. Checked then begin

AssignFile (h,'h4. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (radio)) then begin

radio: = TRadioButton. Create (Form1);

radio. Parent: = Form1;

radio. Left: = x;

radio. Top: = y;

radio. Visible: = True;

last: =4;

radio. Height: = 30;

radio. Width: = 80;

radio. Name: = 'RadioButton';

radio. OnMouseDown: = ComponentMouseDown;

radio. OnMouseMove: = ComponentMouseMove;

radio. OnMouseUp: = ComponentMouseUp;

SetProperties (radio);

end

else begin radio. Destroy; radio: =nil; exit; end; end;

if listbox1. Selected [4] then begin // Panel

if checkbox1. Checked then begin

AssignFile (h,'h5. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (panel)) then begin

panel: = TPanel. Create (Form1);

panel. Parent: = Form1;

panel. Left: = x;

panel. Top: = y;

panel. Visible: = True;

last: =5;

panel. Height: = 30;

panel. Width: = 80;

panel. Name: = 'Panel';

panel. OnMouseDown: = ComponentMouseDown;

panel. OnMouseMove: = ComponentMouseMove;

panel. OnMouseUp: = ComponentMouseUp;

SetProperties (panel);

end

else begin panel. Destroy; panel: =nil; exit; end; end;

if listbox1. Selected [5] then begin // ProgressBar

if checkbox1. Checked then begin

AssignFile (h,'h6. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (progress)) then begin

progress: = TProgressBar. Create (Form1);

progress. Parent: = Form1;

progress. Left: = x;

progress. Top: = y;

progress. Visible: = True;

last: =6;

progress. Height: = 30;

progress. Width: = 80;

progress. Name: = 'ProgressBar';

progress. OnMouseDown: = ComponentMouseDown;

progress. OnMouseMove: = ComponentMouseMove;

progress. OnMouseUp: = ComponentMouseUp;

SetProperties (progress);

end

else begin progress. Destroy; progress: =nil; exit; end; end;

if listbox1. Selected [6] then begin // BitBtn

if checkbox1. Checked then begin

AssignFile (h,'h7. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (bitBtn)) then begin

bitBtn: = TBitBtn. Create (Form1);

bitBtn. Parent: = Form1;

bitBtn. Left: = x;

bitBtn. Top: = y;

bitBtn. Visible: = True;

last: =7;

bitBtn. Height: = 30;

bitBtn. Width: = 80;

bitBtn. Name: = 'BitButton';

bitBtn. OnMouseDown: = ComponentMouseDown;

bitBtn. OnMouseMove: = ComponentMouseMove;

bitBtn. OnMouseUp: = ComponentMouseUp;

SetProperties (bitBtn);

end

else begin bitBtn. Destroy; bitBtn: =nil; exit; end; end;

if listbox1. Selected [7] then begin // Label

if checkbox1. Checked then begin

AssignFile (h,'h8. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (labelBox)) then begin

labelBox: = TLabel. Create (Form1);

labelBox. Parent: = Form1;

labelBox. Left: = x;

labelBox. Top: = y;

labelBox. Visible: = True;

last: =8;

labelBox. Height: = 130;

labelBox. Width: = 80;

labelBox. Name: = 'Label';

labelBox. OnMouseDown: = ComponentMouseDown;

labelBox. OnMouseMove: = ComponentMouseMove;

labelBox. OnMouseUp: = ComponentMouseUp;

SetProperties (labelBox);

end

else begin labelBox. Destroy; labelBox: =nil; exit; end; end;

if listbox1. Selected [8] then begin // labeledEdit

if checkbox1. Checked then begin

AssignFile (h,'h9. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (labeledEdit)) then begin

labeledEdit: = TLabeledEdit. Create (Form1);

labeledEdit. Parent: = Form1;

labeledEdit. Left: = x + 60;

labeledEdit. Top: = y;

labeledEdit. Visible: = True;

last: =9;

labeledEdit. Height: = 30;

labeledEdit. Width: = 80;

labeledEdit. Name: = 'LabeledEdit';

labeledEdit. EditLabel. Caption: = 'LabeledEdit';

labeledEdit. OnMouseDown: = ComponentMouseDown;

labeledEdit. OnMouseMove: = ComponentMouseMove;

labeledEdit. OnMouseUp: = ComponentMouseUp;

SetProperties (labeledEdit);

end

else begin labeledEdit. Destroy; labeledEdit: =nil; exit; end; end;

if listbox1. Selected [9] then begin // GroupBox

if checkbox1. Checked then begin

AssignFile (h,'h10. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (groupBox)) then begin

groupBox: = TGroupBox. Create (Form1);

groupBox. Parent: = Form1;

groupBox. Left: = x;

groupBox. Top: = y;

groupBox. Visible: = True;

last: =10;

groupBox. Height: = 130;

groupBox. Width: = 80;

groupBox. Name: = 'GroupBox';

groupBox. OnMouseDown: = ComponentMouseDown;

groupBox. OnMouseMove: = ComponentMouseMove;

groupBox. OnMouseUp: = ComponentMouseUp;

SetProperties (groupBox);

end

else begin groupBox. Destroy; groupBox: =nil; exit; end; end;

if listbox1. Selected [10] then begin // Memo

if checkbox1. Checked then begin

AssignFile (h,'h11. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (memoBox)) then begin

memoBox: = TMemo. Create (Form1);

memoBox. Parent: = Form1;

memoBox. Left: = x;

memoBox. Top: = y;

memoBox. Visible: = True;

last: =11;

memoBox. Height: = 80;

memoBox. Width: = 80;

memoBox. Name: = 'Memo';

memoBox. OnMouseDown: = ComponentMouseDown;

memoBox. OnMouseMove: = ComponentMouseMove;

memoBox. OnMouseUp: = ComponentMouseUp;

SetProperties (memoBox);

end

else begin memoBox. Destroy; memoBox: =nil; exit; end; end;

if listbox1. Selected [11] then begin // SpeedButton

if checkbox1. Checked then begin

AssignFile (h,'h12. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (speedBtn)) then begin

speedBtn: = TSpeedButton. Create (Form1);

speedBtn. Parent: = Form1;

speedBtn. Left: = x;

speedBtn. Top: = y;

speedBtn. Visible: = True;

last: =12;

speedBtn. Height: = 30;

speedBtn. Width: = 80;

speedBtn. Name: = 'SpeedButton';

speedBtn. OnMouseDown: = ComponentMouseDown;

speedBtn. OnMouseMove: = ComponentMouseMove;

speedBtn. OnMouseUp: = ComponentMouseUp;

SetProperties (speedBtn);

end

else begin speedBtn. Destroy; speedBtn: =nil; exit; end; end;

if listbox1. Selected [12] then begin // Shape

if checkbox1. Checked then begin

AssignFile (h,'h13. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (shape)) then begin

shape: = TShape. Create (Form1);

shape. Parent: = Form1;

shape. Left: = x;

shape. Top: = y;

shape. Visible: = True;

last: =13;

shape. Height: = 30;

shape. Width: = 80;

shape. Name: = 'Shape';

shape. OnMouseDown: = ComponentMouseDown;

shape. OnMouseMove: = ComponentMouseMove;

shape. OnMouseUp: = ComponentMouseUp;

SetProperties (shape);

end

else begin shape. Destroy; shape: =nil; exit; end; end;

if listbox1. Selected [13] then begin // staticText

if checkbox1. Checked then begin

AssignFile (h,'h14. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (staticText)) then begin

staticText: = TStaticText. Create (Form1);

staticText. Parent: = Form1;

staticText. Left: = x;

staticText. Top: = y;

staticText. Visible: = True;

last: =14;

staticText. Height: = 130;

staticText. Width: = 80;

staticText. Name: = 'StaticText';

staticText. OnMouseDown: = ComponentMouseDown;

staticText. OnMouseMove: = ComponentMouseMove;

staticText. OnMouseUp: = ComponentMouseUp;

SetProperties (staticText);

end

else begin staticText. Destroy; staticText: =nil; exit; end; end;

if listbox1. Selected [14] then begin // stringGrid

if checkbox1. Checked then begin

AssignFile (h,'h15. txt');

reset (h);

read (h, shelp);

showmessage (shelp);

closeFile (h);

end;

if not (Assigned (stringGrid)) then begin

stringGrid: = TStringGrid. Create (Form1);

stringGrid. Parent: = Form1;

stringGrid. Left: = x;

stringGrid. Top: = y + 50;

stringGrid. Visible: = True;

last: =15;

stringGrid. Height: = 150;

stringGrid. Width: = 200;

stringGrid. Name: = 'StringGrid';

stringGrid. Col: =3;

stringGrid. Row: =2;

stringGrid. OnMouseDown: = ComponentMouseDown;

stringGrid. OnMouseMove: = ComponentMouseMove;

stringGrid. OnMouseUp: = ComponentMouseUp;

SetProperties (stringGrid);

end

else begin stringGrid. Destroy; stringGrid: =nil; exit; end; end;

end;

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

Shift: TShiftState; X, Y: Integer);

begin

Dragg: = True;

XOffset: = X;

YOffset: = Y;

if Sender. ClassType = TButton then begin colorbox1. Enabled: =false; last: =1;

Selected_Component: = Sender as TButton; end;

if Sender. ClassType = TEdit then begin colorbox1. Enabled: =true; last: =2;

Selected_Component: = Sender as TEdit; end;

if Sender. ClassType = TCheckBox then begin colorbox1. Enabled: =false; last: =3;

Selected_Component: = Sender as TCheckBox; end;

if Sender. ClassType = TRadioButton then begin colorbox1. Enabled: =false; last: =4;

Selected_Component: = Sender as TRadioButton; end;

if Sender. ClassType = TPanel then begin colorbox1. Enabled: =true; last: =5;

Selected_Component: = Sender as TPanel; end;

if Sender. ClassType = TProgressBar then begin colorbox1. Enabled: =false; last: =6;

Selected_Component: = Sender as TProgressBar; end;

if Sender. ClassType = TBitBtn then begin colorbox1. Enabled: =true; last: =7;

Selected_Component: = Sender as TBitBtn; end;

if Sender. ClassType = TLabel then begin colorbox1. Enabled: =true; last: =8;

Selected_Component: = Sender as TLabel; end;

if Sender. ClassType = TLabeledEdit then begin colorbox1. Enabled: =true; last: =9;

Selected_Component: = Sender as TLabeledEdit; end;

if Sender. ClassType = TGroupBox then begin colorbox1. Enabled: =false; last: =10;

Selected_Component: = Sender as TGroupBox; end;

if Sender. ClassType = TMemo then begin colorbox1. Enabled: =true; last: =11;

Selected_Component: = Sender as TMemo; end;

if Sender. ClassType = TSpeedButton then begin colorbox1. Enabled: =false; last: =12;

Selected_Component: = Sender as TSpeedButton; end;

if Sender. ClassType = TShape then begin colorbox1. Enabled: =false; last: =13;

Selected_Component: = Sender as TShape; end;

if Sender. ClassType = TStaticText then begin colorbox1. Enabled: =false; last: =14;

Selected_Component: = Sender as TStaticText; end;

if Sender. ClassType = TStringGrid then begin colorbox1. Enabled: =false; last: =15;

Selected_Component: = Sender as TStringGrid; end;

SetProperties (Selected_Component);

with Selected_Component do

FocusRect: = Rect (Left, Top, Left + Width, Top + Height);

Canvas. DrawFocusRect (FocusRect);

end;

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

Y: Integer);

begin

if Dragg then

begin

Canvas. DrawFocusRect (FocusRect);

with FocusRect do

begin

Left: = (Selected_Component. Left + X) — XOffset;

Top: = (Selected_Component. Top + Y) — YOffset;

Right: = Selected_Component. Width + Left;

Bottom: = Selected_Component. Height + Top;

end;

Canvas. DrawFocusRect (FocusRect);

StatusBar1. SimpleText: = 'x = ' + IntToStr ((Selected_Component. Left + X) — XOffset) +

' y = ' + IntToStr ((Selected_Component. Top + Y) — YOffset);

end;

end;

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

Shift: TShiftState; X, Y: Integer);

begin

if Dragg then

begin

Canvas. DrawFocusRect (FocusRect); // Erase Focus Rect

Dragg: = False;

with Selected_Component do

begin

Left: = (Left + X) — XOffset;

Top: = (Top + Y) — YOffset;

if Left< 120 then Left: =120;

if Left> 900-Width then Left: =900-Width;

if Top< 65 then Top: =65;

if Top> 440-Height-20 then Top: =440-Height-20;

end;

SetProperties (Selected_Component);

end;

end;

procedure TForm1. Button1Click (Sender: TObject);

var vari: integer;

begin

if (Edit1. Text='') or (Edit2. Text='') or (Edit3. Text='') or (Edit1. Text='') then begin showmessage ('Выберите компонент! '); Exit; end

else begin

if (not (TryStrToInt (Edit1. Text, vari))) or (not (TryStrToInt (Edit2. Text, vari))) or (not (TryStrToInt (Edit3. Text, vari))) or (not (TryStrToInt (Edit1. Text, vari))) then begin showmessage ('Введите целое число! '); Exit; end;

Selected_Component. Left: =StrToInt (Edit1. Text);

Selected_Component. Top: =StrToInt (Edit2. Text);

Selected_Component. Height: =StrToInt (Edit3. Text);

Selected_Component. Width: =StrToInt (Edit4. Text);

if Selected_Component. Left< 120 then Selected_Component. Left: =120;

if Selected_Component. Left> 900-Selected_Component. Width then Selected_Component. Left: =900-Selected_Component. Width;

if Selected_Component. Top< 65 then Selected_Component. Top: =65;

if Selected_Component. Top> 440-Selected_Component. Height-20 then Top: =440-Selected_Component. Height-20;

case last of

2: begin textBox. Font. Color: =ColorBox1. Selected; end;

5: begin panel. Font. Color: =ColorBox1. Selected; end;

7: begin bitBtn. Font. Color: =ColorBox1. Selected; end;

8: begin labelBox. Font. Color: =ColorBox1. Selected; end;

9: begin labeledEdit. Font. Color: =ColorBox1. Selected; end;

11: begin memoBox. Font. Color: =ColorBox1. Selected; end;

else ColorBox1. enabled: =false;

end;

end;

SetProperties (Selected_Component);

end;

procedure TForm1. BitBtn4Click (Sender: TObject);

begin

Form1. Close;

end;

procedure TForm1. BitBtn1Click (Sender: TObject);

var f: textfile;

begin

AssignFile (f,{GetCurrentDir+}'save. txt');

Rewrite (f);

if Assigned (button) then // 1

begin

writeln (f, button. Top);

writeln (f, button. Left);

writeln (f, button. Height);

writeln (f, button. Width);

end

else writeln (f,'0');

if (Assigned (textBox)) and (textBox. Visible) then // 2

begin

writeln (f, textBox. Top);

writeln (f, textBox. Left);

writeln (f, textBox. Height);

writeln (f, textBox. Width);

writeln (f, textBox. Font. Color);

end

else writeln (f,'0');

if (Assigned (checkBox)) and (checkBox. Visible) then // 3

begin

writeln (f, checkBox. Top);

writeln (f, checkBox. Left);

writeln (f, checkBox. Height);

writeln (f, checkBox. Width);

end

else writeln (f,'0');

if (Assigned (radio)) and (radio. Visible) then // 4

begin

writeln (f, radio. Top);

writeln (f, radio. Left);

writeln (f, radio. Height);

writeln (f, radio. Width);

end

else writeln (f,'0');

if (Assigned (panel)) and (panel. Visible) then // 5

begin

writeln (f, panel. Top);

writeln (f, panel. Left);

writeln (f, panel. Height);

writeln (f, panel. Width);

writeln (f, panel. Font. Color);

end

else writeln (f,'0');

if (Assigned (progress)) and (progress. Visible) then // 6

begin

writeln (f, progress. Top);

writeln (f, progress. Left);

writeln (f, progress. Height);

writeln (f, progress. Width);

end

else writeln (f,'0');

if (Assigned (bitBtn)) and (bitBtn. Visible) then // 7

begin

writeln (f, bitBtn. Top);

writeln (f, bitBtn. Left);

writeln (f, bitBtn. Height);

writeln (f, bitBtn. Width);

writeln (f, bitBtn. Font. Color);

end

else writeln (f,'0');

if (Assigned (labelBox)) and (labelBox. Visible) then // 8

begin

writeln (f, labelBox. Top);

writeln (f, labelBox. Left);

writeln (f, labelBox. Height);

writeln (f, labelBox. Width);

writeln (f, labelBox. Font. Color);

end

else writeln (f,'0');

if (Assigned (labeledEdit)) and (labeledEdit. Visible) then // 9

begin

writeln (f, labeledEdit. Top);

writeln (f, labeledEdit. Left);

writeln (f, labeledEdit. Height);

writeln (f, labeledEdit. Width);

writeln (f, labeledEdit. Font. Color);

end

else writeln (f,'0');

if (Assigned (groupBox)) and (groupBox. Visible) then // 10

begin

writeln (f, groupBox. Top);

writeln (f, groupBox. Left);

writeln (f, groupBox. Height);

writeln (f, groupBox. Width);

end

else writeln (f,'0');

if (Assigned (memoBox)) and (memoBox. Visible) then // 11

begin

writeln (f, memoBox. Top);

writeln (f, memoBox. Left);

writeln (f, memoBox. Height);

writeln (f, memoBox. Width);

writeln (f, memoBox. Font. Color);

end

else writeln (f,'0');

if (Assigned (speedBtn)) and (speedBtn. Visible) then // 12

begin

writeln (f, speedBtn. Top);

writeln (f, speedBtn. Left);

writeln (f, speedBtn. Height);

writeln (f, speedBtn. Width);

end

else writeln (f,'0');

if (Assigned (shape)) and (shape. Visible) then // 13

begin

writeln (f, shape. Top);

writeln (f, shape. Left);

writeln (f, shape. Height);

writeln (f, shape. Width);

end

else writeln (f,'0');

if (Assigned (staticText)) and (staticText. Visible) then // 14

begin

writeln (f, staticText. Top);

writeln (f, staticText. Left);

writeln (f, staticText. Height);

writeln (f, staticText. Width);

end

else writeln (f,'0');

if (Assigned (stringGrid)) and (stringGrid. Visible) then // 15

begin

writeln (f, stringGrid. Top);

writeln (f, stringGrid. Left);

writeln (f, stringGrid. Height);

writeln (f, stringGrid. Width);

end

else writeln (f,'0');

CloseFile (f);

end;

procedure TForm1. clear_all;

begin

Edit1. Text: =''; Edit2. Text: =''; Edit3. Text: =''; Edit4. Text: ='';

if Assigned (button) then begin button. Destroy; button: =nil; end;

if Assigned (textBox) then begin textBox. Destroy; textBox: =nil; end;

if Assigned (checkBox) then begin checkBox. Destroy; checkBox: =nil; end;

if Assigned (radio) then begin radio. Destroy; radio: =nil; end;

if Assigned (panel) then begin panel. Destroy; panel: =nil; end;

if Assigned (progress) then begin progress. Destroy; progress: =nil; end;

if Assigned (bitBtn) then begin bitBtn. Destroy; bitBtn: =nil; end; // 7

if Assigned (labelBox) then begin labelBox. Destroy; labelBox: =nil; end;

if Assigned (labeledEdit) then begin labeledEdit. Destroy; labeledEdit: =nil; end;

if Assigned (groupBox) then begin groupBox. Destroy; groupBox: =nil; end; // 10

if Assigned (memoBox) then begin memoBox. Destroy; memoBox: =nil; end; // 11

if Assigned (speedBtn) then begin speedBtn. Destroy; speedBtn: =nil; end; // 12

if Assigned (shape) then begin shape. Destroy; shape: =nil; end; // 13

if Assigned (staticText) then begin staticText. Destroy; staticText: =nil; end; // 14

if Assigned (stringGrid) then begin stringGrid. Destroy; stringGrid: =nil; end; // 15

end;

procedure TForm1. BitBtn3Click (Sender: TObject);

begin

clear_all;

end;

procedure TForm1. BitBtn2Click (Sender: TObject);

var f: textfile; tmp: integer; sig: TColor;

begin

clear_all;

AssignFile (f,{GetCurrentDir+}'save. txt');

Reset (f);

readln (f, tmp);

if tmp< >0 then begin // button

if NOT (Assigned (button)) then begin

button: = TButton. Create (Form1);

button. Parent: = Form1;

button. OnMouseDown: = ComponentMouseDown;

button. OnMouseMove: = ComponentMouseMove;

button. OnMouseUp: = ComponentMouseUp;

button. Name: = 'Button';

end;

button. Top: =tmp;

readln (f, tmp);

button. Left: =tmp;

readln (f, tmp);

button. Height: =tmp;

readln (f, tmp);

button. Width: =tmp;

// SetProperties (button);

button. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // textBox

if NOT (Assigned (textBox)) then begin

textBox: = TEdit. Create (Form1);

textBox. Parent: = Form1;

textBox. OnMouseDown: = ComponentMouseDown;

textBox. OnMouseMove: = ComponentMouseMove;

textBox. OnMouseUp: = ComponentMouseUp;

textBox. Name: = 'TextBox';

end;

textBox. Top: =tmp;

readln (f, tmp);

textBox. Left: =tmp;

readln (f, tmp);

textBox. Height: =tmp;

readln (f, tmp);

textBox. Width: =tmp;

readln (f, sig);

textBox. Font. Color: =sig;

// SetProperties (textBox);

textBox. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // checkBox

if NOT (Assigned (checkBox)) then begin

checkBox: = TCheckBox. Create (Form1);

checkBox. Parent: = Form1;

checkBox. OnMouseDown: = ComponentMouseDown;

checkBox. OnMouseMove: = ComponentMouseMove;

checkBox. OnMouseUp: = ComponentMouseUp;

checkBox. Name: = 'CheckBox';

end;

checkBox. Top: =tmp;

readln (f, tmp);

checkBox. Left: =tmp;

readln (f, tmp);

checkBox. Height: =tmp;

readln (f, tmp);

checkBox. Width: =tmp;

// SetProperties (checkBox);

checkBox. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // radio

if NOT (Assigned (radio)) then begin

radio: = TRadioButton. Create (Form1);

radio. Parent: = Form1;

radio. OnMouseDown: = ComponentMouseDown;

radio. OnMouseMove: = ComponentMouseMove;

radio. OnMouseUp: = ComponentMouseUp;

radio. Name: = 'RadioButton';

end;

radio. Top: =tmp;

readln (f, tmp);

radio. Left: =tmp;

readln (f, tmp);

radio. Height: =tmp;

readln (f, tmp);

radio. Width: =tmp;

// SetProperties (radio);

radio. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // panel

if NOT (Assigned (panel)) then begin

panel: = TPanel. Create (Form1);

panel. Parent: = Form1;

panel. OnMouseDown: = ComponentMouseDown;

panel. OnMouseMove: = ComponentMouseMove;

panel. OnMouseUp: = ComponentMouseUp;

panel. Name: = 'Panel';

end;

panel. Top: =tmp;

readln (f, tmp);

panel. Left: =tmp;

readln (f, tmp);

panel. Height: =tmp;

readln (f, tmp);

panel. Width: =tmp;

readln (f, sig);

panel. Font. Color: =sig;

// SetProperties (panel);

panel. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // progress

if NOT (Assigned (progress)) then begin

progress: = TProgressBar. Create (Form1);

progress. Parent: = Form1;

progress. OnMouseDown: = ComponentMouseDown;

progress. OnMouseMove: = ComponentMouseMove;

progress. OnMouseUp: = ComponentMouseUp;

progress. Name: = 'ProgressBar';

end;

progress. Top: =tmp;

readln (f, tmp);

progress. Left: =tmp;

readln (f, tmp);

progress. Height: =tmp;

readln (f, tmp);

progress. Width: =tmp;

// SetProperties (progress);

progress. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // bitBtn

if NOT (Assigned (bitBtn)) then begin

bitBtn: = TBitBtn. Create (Form1);

bitBtn. Parent: = Form1;

bitBtn. OnMouseDown: = ComponentMouseDown;

bitBtn. OnMouseMove: = ComponentMouseMove;

bitBtn. OnMouseUp: = ComponentMouseUp;

bitBtn. Name: = 'BitBtn';

end;

bitBtn. Top: =tmp;

readln (f, tmp);

bitBtn. Left: =tmp;

readln (f, tmp);

bitBtn. Height: =tmp;

readln (f, tmp);

bitBtn. Width: =tmp;

readln (f, sig);

bitBtn. Font. Color: =sig;

// SetProperties (bitBtn);

bitBtn. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // labelBox

if NOT (Assigned (labelBox)) then begin

labelBox: = TLabel. Create (Form1);

labelBox. Parent: = Form1;

labelBox. OnMouseDown: = ComponentMouseDown;

labelBox. OnMouseMove: = ComponentMouseMove;

labelBox. OnMouseUp: = ComponentMouseUp;

labelBox. Name: = 'Label';

end;

labelBox. Top: =tmp;

readln (f, tmp);

labelBox. Left: =tmp;

readln (f, tmp);

labelBox. Height: =tmp;

readln (f, tmp);

labelBox. Width: =tmp;

readln (f, sig);

labelbox. Font. Color: =sig;

// SetProperties (labelBox);

labelBox. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // labeledEdit

if NOT (Assigned (labeledEdit)) then begin

labeledEdit: = TLabeledEdit. Create (Form1);

labeledEdit. Parent: = Form1;

labeledEdit. OnMouseDown: = ComponentMouseDown;

labeledEdit. OnMouseMove: = ComponentMouseMove;

labeledEdit. OnMouseUp: = ComponentMouseUp;

labeledEdit. Name: = 'LabeledEdit';

end;

labeledEdit. Top: =tmp;

readln (f, tmp);

labeledEdit. Left: =tmp;

readln (f, tmp);

labeledEdit. Height: =tmp;

readln (f, tmp);

labeledEdit. Width: =tmp;

readln (f, sig);

labeledEdit. Font. Color: =sig;

// SetProperties (labeledEdit);

labeledEdit. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // groupBox

if NOT (Assigned (groupBox)) then begin

groupBox: = TGroupBox. Create (Form1);

groupBox. Parent: = Form1;

groupBox. OnMouseDown: = ComponentMouseDown;

groupBox. OnMouseMove: = ComponentMouseMove;

groupBox. OnMouseUp: = ComponentMouseUp;

groupBox. Name: = 'GroupBox';

end;

groupBox. Top: =tmp;

readln (f, tmp);

groupBox. Left: =tmp;

readln (f, tmp);

groupBox. Height: =tmp;

readln (f, tmp);

groupBox. Width: =tmp;

// SetProperties (groupBox);

groupBox. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // memoBox

if NOT (Assigned (memoBox)) then begin

memoBox: = TMemo. Create (Form1);

memoBox. Parent: = Form1;

memoBox. OnMouseDown: = ComponentMouseDown;

memoBox. OnMouseMove: = ComponentMouseMove;

memoBox. OnMouseUp: = ComponentMouseUp;

memoBox. Name: = 'Memo';

end;

memoBox. Top: =tmp;

readln (f, tmp);

memoBox. Left: =tmp;

readln (f, tmp);

memoBox. Height: =tmp;

readln (f, tmp);

memoBox. Width: =tmp;

readln (f, sig);

memoBox. Font. Color: =sig;

// SetProperties (memoBox);

memoBox. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // speedBtn

if NOT (Assigned (speedBtn)) then begin

speedBtn: = TSpeedButton. Create (Form1);

speedBtn. Parent: = Form1;

speedBtn. OnMouseDown: = ComponentMouseDown;

speedBtn. OnMouseMove: = ComponentMouseMove;

speedBtn. OnMouseUp: = ComponentMouseUp;

speedBtn. Name: = 'SpeedButton';

end;

speedBtn. Top: =tmp;

readln (f, tmp);

speedBtn. Left: =tmp;

readln (f, tmp);

speedBtn. Height: =tmp;

readln (f, tmp);

speedBtn. Width: =tmp;

// SetProperties (speedBtn);

speedBtn. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // shape

if NOT (Assigned (shape)) then begin

shape: = TShape. Create (Form1);

shape. Parent: = Form1;

shape. OnMouseDown: = ComponentMouseDown;

shape. OnMouseMove: = ComponentMouseMove;

shape. OnMouseUp: = ComponentMouseUp;

shape. Name: = 'Shape';

end;

shape. Top: =tmp;

readln (f, tmp);

shape. Left: =tmp;

readln (f, tmp);

shape. Height: =tmp;

readln (f, tmp);

shape. Width: =tmp;

// SetProperties (shape);

shape. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // staticText

if NOT (Assigned (staticText)) then begin

staticText: = TStaticText. Create (Form1);

staticText. Parent: = Form1;

staticText. OnMouseDown: = ComponentMouseDown;

staticText. OnMouseMove: = ComponentMouseMove;

staticText. OnMouseUp: = ComponentMouseUp;

staticText. Name: = 'StaticText';

end;

staticText. Top: =tmp;

readln (f, tmp);

staticText. Left: =tmp;

readln (f, tmp);

staticText. Height: =tmp;

readln (f, tmp);

staticText. Width: =tmp;

// SetProperties (staticText);

staticText. Visible: =true;

end;

readln (f, tmp);

if tmp< >0 then begin // stringGrid

if NOT (Assigned (stringGrid)) then begin

stringGrid: = TStringGrid. Create (Form1);

stringGrid. Parent: = Form1;

stringGrid. OnMouseDown: = ComponentMouseDown;

stringGrid. OnMouseMove: = ComponentMouseMove;

stringGrid. OnMouseUp: = ComponentMouseUp;

stringGrid. Name: = 'StringGrid';

end;

stringGrid. Top: =tmp;

readln (f, tmp);

stringGrid. Left: =tmp;

readln (f, tmp);

stringGrid. Height: =tmp;

readln (f, tmp);

stringGrid. Width: =tmp;

SetProperties (stringGrid);

stringGrid. Visible: =true;

end;

CloseFile (f);

end;

procedure TForm1. BitBtn5Click (Sender: TObject);

begin

Showmessage (`Справка по компонентам библиотеки VLC Deflphi 7. Разработал Брик Михаил. Воронеж 2013');

end;

end.

ПоказатьСвернуть
Заполнить форму текущей работой