Конструктор меню Delphi поможет значительно упростить разработку меню. В нем имеются готовые шаблоны типовых подменю верхнего уровня: File, Edit и др. Можно также определить свои шаблоны. — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Конструктор меню Delphi поможет значительно упростить разработку меню. В нем имеются готовые шаблоны типовых подменю верхнего уровня: File, Edit и др. Можно также определить свои шаблоны.

2020-03-31 121
Конструктор меню Delphi поможет значительно упростить разработку меню. В нем имеются готовые шаблоны типовых подменю верхнего уровня: File, Edit и др. Можно также определить свои шаблоны. 0.00 из 5.00 0 оценок
Заказать работу

TEdit - находится на странице Standart

Этот компонент не содержит собственного кода, в нем только опубликованы свойства его предка TCustomEdit. Он представляет собой редактируемую строку.

Свойства Edit:

-   property AutoSize: Boolean. Если равно True, компонент изменяет свою высоту в зависимости от размера шрифта (свойство Font).

-   property OEMConvert:Boolean. Определяет необходимость автоматического преобразования вводимых символов из кодировки OEM в ANSI и обратно. Такое свойство часто бывает нужно при обработке текста в кодировке MS-DOS.

- property AutoSelect:Boolean. Описывает реакцию редактирующего элемента при получении фокуса. Если оно установлено в True (по умолчанию это так), то при получении фокуса ввода весь текст в нем выделяется независимо от состояния свойства SelText. Если AutoSelect установлено в False, то при получении фокуса выделяется лишь то, что было выделено до его утери.

- property HideSelection:Boolean. После утери фокуса редактором выделенный в нем текст обычно теряет цветовое выделение. Чтобы оно оставалось, установите в False второе свойство:

- property MaxLength: Integer. Определяет максимальную длину текста редактора в символах. Если значение этого свойства равно 0, то ограничений на длину текста нет.

 


3. Реализация программы

Логическая структура

 

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

Автоматически созданные файлы:

единственный «файл - проект» (Memory.dpr) содержит блок - программы, управляющий приложением вцелом. В нем содержатся операторы инициализации и запуска программного выполнения. Его расширение *.dpr;

три «файлов - формы» (MainUnit.dfm, Unit2.dfm, Unit3.dfm), данные формы являются основными окнами нашей программы, с которыми будет работать пользователь;

три «файлов - модулей», с расширением *.pas (MainUnit.pas, Unit2.pas, Unit3.pas), в нем содержится текст модуля для работы формы;

файл опции проекта (Memory.dof). В нем находятся процедуры нашего проекта;

файл конфигурации проекта (Memory.cfg). В нем хранится установка проекта, директивы компилятора и т.д;

файл ресурсов (Memory.res) содержит, используемые проектом пиктограмму и другие ресурсы;

файлы резервных копий (MainUnit.~ddp, MainUnit.~dfm, MainUnit.~pas, Unit2.~ddp, Unit2.dfm, Unit2.~pas, Unit3.~ddp, Unit3.dfm, Unit3.~pas).

Файлы, созданные компилятором:

файл memory.exe, использующий файл приложения. Если для выполнения файла не используется никакая библиотека, то этого файла достаточно для работы приложения;

файлы MainUnit.dcu,Unit2.dcu, Unit3.dcu - это откомпилированные файлы модулей MainUnit.pas, Unit2.pas, Unit3.pas.

 

Функции и элементы управления

 

Так как данная программа-игра предназначена для развития памяти детей, студентов, то просто необходимо было предусмотреть различные уровни сложности. В данной программе предусмотрено 3 уровня сложности: Easy, Standart и Hard.

Используемые в программе процедуры и их описание:

procedure LoadImages - Процедура загрузки изображения

 

var

i: integer;

for i:= 0 to 9 do[i]:= TImage.Create(nil);[i].Picture.LoadFromFile(ImagePaths[i]);

 

procedure RandomizeThePermutationArray - это процедура, которая случайным способом разбрасывает картинки по таблице.

 


4. Тестирование

 

Данные испытания были проведены с целью выявления и устранения ошибок.

В ходе проверки игры была выявлена ошибка ввода значений со знаком (-) в SpinEdit. При работе с игрой с клавиатуры можно было вводить значения с (-). Для решения данной проблемы необходимо в SpinEdit данной программы вminValue поствать значение 1, чтобы избежать значений со знаком (-).

При повторном запуске программы введение значений со знаком (-) стало не доступным.

При вызове справки была замечена странная ошибка, связанная с нечитабельным текстом написанным кириллицей. Однако, в дальнейшем, эта ошибка была исправлена.

В ходе тестирования были обнаружены ошибки, которые с успехом были исправлены.

 


5. Применение

 

1 Назначение и условия применения программы

 

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

 

Инсталляция

 

В комплект поставки программного обеспечения входит компакт-диск, на котором записан инсталлятор программы. Для использования данного программного обеспечения необходимо запустить программу установки с компакт-диска (файл «Setup.exe») и дождаться ее завершения. Программа не будет функционировать полностью, если установка проводиться от имени учетной записи, не имеющей прав администратора.

Для того чтобы удалить данное программное обеспечения с компьютера, необходимо выполнить деинсталляцию с помощью элемента «Установка и удаление программ» панели управления.

 

Выполнение

 

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

 


Заключение

 

В ходе создания курсового проекта было разработана игра в среде программирования Delphi. Основные цели, поставленные перед созданием данного курсового проекта были реализованы.

Данная игра будет предназначена для общего пользования, для проведения досуга детей, школьников, студентов.

Также она может служить примером для студентов при изучении таблиц в Delphi.

 


Литература

 

1. Прищепов М.А. Программирование на языках Basic, Pascal и Object Pascal в среде Delphi / М.А. Прищепов, Е.В. Севернёва, А.И. Шакирин - Минск: «ТетраСистемс», 2006. - 313 с.

2. Справочник по компонентам Delphi [Электронный ресурс]. -2009. - Режим доступа: http://www.cyberguru.ru/programming/delphi/delphi-components-part1.html

 


Приложение

 

Код программы:MainUnit;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Grids, ExtCtrls, Menus, StdCtrls;= class(TForm): TDrawGrid;: TMainMenu;: TMenuItem;: TTimer;: TEdit;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;FormCreate(Sender: TObject);itemNewGameClick(Sender: TObject);DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);DrawGridSelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);Timer1Timer(Sender: TObject);Exit1Click(Sender: TObject);;= (ALREADY_MATCHED, CELL_VISIBLE, CELL_INVISIBLE);

MAX_IMAGES = 10;: TfrmMain;:integer;: array [0..MAX_IMAGES-1] of TImage;: array [0..19] of integer;: array [0..19] of integer;: array [0..19] of integer;: array [0..19] of TCellMode;, SecondCell: integer;, n: integer;: array [0..MAX_IMAGES-1] of string

= ('img0.bmp', 'img1.bmp', 'img2.bmp', 'img3.bmp', 'img4.bmp', 'img5.bmp',

'img6.bmp', 'img7.bmp', 'img8.bmp', 'img9.bmp');

{$R *.dfm}RedrawCell (index: integer);, Row: integer;:= index div 5;:= index mod 5;.DrawGridDrawCell(frmMain, Col, Row, frmMain.DrawGrid.CellRect(Col,Row), []);LoadImages;: integer;i:= 0 to MAX_IMAGES-1 do[i]:= TImage.Create(nil);[i].Picture.LoadFromFile(ImagePaths[i]);TfrmMain.FormCreate(Sender: TObject);: integer;;i:= 0 to 19 do[i]:= i;;.Click;LinearIndexOf (Row, Column: integer): integer;:= 5 * Row + Column;RandomizeThePermutationArray;, RandomPosition, Temp: integer;i:= 0 to 18 do:= i + Random(19 - i) + 1;:= RandomPermutationArray[i];[i]:= RandomPermutationArray[RandomPosition];[RandomPosition]:= Temp;;AssignPartnerships;: integer;i:= 0 to 19 doi mod 2 = 0 then

PartnerOf[RandomPermutationArray[i]]:= RandomPermutationArray[i + 1]

PartnerOf[RandomPermutationArray[i]]:= RandomPermutationArray[i - 1];AssignImagesToCells;: integer;i:= 0 to 19 do[RandomPermutationArray[i]]:= i div 2;InitializeCellModes;: integer;i:= 0 to 19 do[i]:= CELL_INVISIBLE;TfrmMain.itemNewGameClick(Sender: TObject);: integer;.Enabled:=true;:=30;;;;;:= 0;i:= 0 to 19 do(i);;TfrmMain.DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);: integer;:= LinearIndexOf(ARow, ACol);ModeOfCell[index] = CELL_INVISIBLE then.Canvas.Brush.Color:= clBlack;.Canvas.FillRect(Rect)if ModeOfCell[index] = ALREADY_MATCHED then.Canvas.Brush.Color:= clWhite;.Canvas.FillRect(Rect)begin.Canvas.StretchDraw(Rect, Images[ImageOfCell[index]].Picture.Graphic);;TfrmMain.DrawGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);: integer;:= LinearIndexOf(ARow, ACol);ModeOfCell[index] = ALREADY_MATCHED then;NumberOfVisibleCells = 0 then:= index;[FirstCell]:= CELL_VISIBLE;(FirstCell);(NumberOfVisibleCells)if (NumberOfVisibleCells = 1) and (FirstCell <> index) then:= index;[SecondCell]:= CELL_VISIBLE;(SecondCell);PartnerOf[SecondCell] = FirstCell then

Sleep(100);

ModeOfCell[FirstCell]:= ALREADY_MATCHED;

RedrawCell(FirstCell);

ModeOfCell[SecondCell]:= ALREADY_MATCHED;

RedrawCell(SecondCell);

NumberOfVisibleCells:= 0(NumberOfVisibleCells)begin(FirstCell <> index) and (SecondCell <> index) then[index]:= CELL_VISIBLE;(index);;FirstCell <> index then[FirstCell]:= CELL_INVISIBLE;(FirstCell);;SecondCell <> index then[SecondCell]:= CELL_INVISIBLE;(SecondCell);;:= index;:= 1;TfrmMain.Timer1Timer(Sender: TObject);: integer;:= 0;:=tick-1;.text:=inttostr(tick);edit1.text='0' then.Enabled:=false;('GAME OVER');;i:= 0 to 19 doModeOfCell[i] = ALREADY_MATCHED then:= n + 1;;n = 20 then.Enabled:=false;('You Win');;;TfrmMain.Exit1Click(Sender: TObject);;;.:Unit2;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, MainUnit, Spin;= class(TForm): TRadioGroup;: TSpinEdit;: TButton;RadioGroup1Click(Sender: TObject);Button1Click(Sender: TObject);SpinEdit1KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };: TForm2;: integer;

{$R *.dfm}TForm2.RadioGroup1Click(Sender: TObject);

{case RadioGroup1.ItemIndex of

:

tick:= 60;

:

tick:= 45;

:

tick:= 30;

:SpinEdit1.Value <> 0 then

tick:= SpinEdit1.Value;;.Hide;.ProcessMessages;.Timer1.Enabled:= true;.RandomizeThePermutationArray;.AssignPartnerships;.AssignImagesToCells;.InitializeCellModes;:= 0;i:= 0 to 19 do

frmMain.RedrawCell(i);};TForm2.Button1Click(Sender: TObject);RadioGroup1.ItemIndex of

:

tick:= 60;

:

tick:= 45;

:

tick:= 30;

:SpinEdit1.Value <> 0 then

tick:= SpinEdit1.Value;;.Hide;.ProcessMessages;.Timer1.Enabled:= true;.RandomizeThePermutationArray;.AssignPartnerships;.AssignImagesToCells;.InitializeCellModes;:= 0;i:= 0 to 19 do

frmMain.RedrawCell(i);;TForm2.SpinEdit1KeyPress(Sender: TObject; var Key: Char);(key = '-') then:= #0;;.:Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, XPMan;= class(TForm): TButton;: TImage;: TXPManifest;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;

{$R *.dfm}TForm3.Button1Click(Sender: TObject);.Close;;.


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.018 с.