Элементы Delphi

 Элементы Delphi

Содержание
I. Введение……………………………………………………………………. ..3
II. Элементы Delphi
1) Обработка исключительных ситуации…………………………...4
2) Диапазон значений………………………………………………...6
3) Работа с закладками……………………………………………...10
4) Работа с переключателями……………………………………….12
5) Работа с меню……………………………………………………..15
6) Работа со списками……………………………………………….19
7) Работа с таблицами……………………………………………….21
8) Панели инструментов…………………………………………….23
9) Строка состояния…………………………………………………25
10) Элементы реверсивного счета……………………………………27
11) Фреймы……………………………………………………………29
12) Модальные формы………………………………………………..30
13) Многодокументальные приложения…………………………….33
14) Консольные приложения…………………………………………36
15) Средства мультимедиа……………………………………………37
16) Работа с файлами и каталогами………………………………….39
III. Заключение……………………………………………………………………42

Введение
Палитра компонентов – это витрина той библиотеки компонентов – VCL или CLX, с которой вы работаете. При создании приложений для WINDOWS вы работаете с VCL. Но если вы создаете кросс - платформенное приложение, выполнив команду File|New| CLX Application, то палитра компонентов начинает отображать страницы CLX.
Палитра позволяет сгруппировать компоненты в соответствии с их смыслом и назначением. Эти группы страницы снабжены закладками. Вы можете изменять комплекцию страниц, вводить новые страницы, представлять их, вносить на страницы, разработанные вами шаблоны и компоненты.
Поскольку число предопределяемых компонентов, конечно, возрастает от версии к версии, то наиболее полной является библиотека Delphi.
Поскольку число страниц в Delphi велико и не все закладки видны на экране одновременно, в правой части палитры компонентов имеются кнопки со стрелками, направленными вправо, влево. Эти кнопки позволяют перемещать отображаемую на экране часть палитры. На некоторых страницах расположено столько компонентов, что они не помещаются в видимой части страницы. В этих случаях на концах страницы появляются дополнительные кнопочки, позволяющие перемещаться вдоль страницы.
Чтобы перенести компонент на форму, надо открыть соответствующую страницу библиотеки и указать курсором мыши необходимый компонент. Поместить выбранный компонент на форму очень просто – надо сделать щелчок мышью в нужном месте формы.
Есть и другой способ поместить компонент на форму – достаточно сделать двойной щелчок на пиктограмме компонента, и он автоматически разместиться в центре вашей формы. Если вы выбрали компонент, а затем изменили ваше намерение размещать его, вам достаточно нажать кнопку указателя. Это прервет процесс размещения компонента, и программа вернется в нормальный режим, в котором вы можете выбирать другой компонент или выполнять какую-то команду.
Некоторые компоненты мы рассмотрим более детально.
Обработка исключительных ситуации
Если Ваше приложение откомпилировалось и стало выполняться, это, увы, еще не означает, что оно правильно работает. В нем может быть еще множество ошибок времени выполнения. Это могут быть постоянные логические ошибки, проявляющиеся всегда при выполнении некоторой части своей программы. Это могут быть ошибки проявляющиеся при каких-то сочетаниях данных: ошибки деления на нуль, переполнения, открытия несуществующего файла и т.д. В Delphi есть операторы, которые выявляют эти ошибки:
Try

except

end;
А также:
Try

finally

end;

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

Рис. 1

TForm Form1
Height 398
Width 300


TButton Button1
Caption Запустить


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
f : TextFile;
k,r : Integer;
S : String[255];
Result : Integer;

begin
try {попытка выполнения операторов}
AssignFile(f,'Numbers');
Reset(f); // EInOutError
While not Eof(f)do
begin
ReadLn(f,S); // EInOutError
k := StrToInt(S); //EConvertError
r := Random(5);
result := k div r; //EDivbyZero
Memo1.Lines.Add(IntToStr(result)); //EConvertError
end;
CloseFile(f);
except {проверка на возможные ошибки}
on EConvertError do
begin
ShowMessage('Не корректная операция с числами');
Exit;
end;
on EInOutError do
begin
ShowMessage('Не корректная файловая операция');
Exit;
end;
on EDivbyZero do
begin
ShowMessage('Произошло деление на нуль');
Exit;
end;
end;
end;

end.

Диапазон значений

Чаще всего диапазон значений меняется с помощью копонента Delphi TrackBar.
Напишем программу которая создает динамический список состоящий из Ф.И.О. студента и возраста. Список в котором можно производить все указанные действия:
1. Добавление студента
2. Нахождение студента по фамилии
3. Удаление определенного студента

Рис. 2

TForm Form1
Height 238
Width 428


TLabeledEdit LabeledEdit1 LabeledEdit2 LabeledEdit3
EditLabel.Caption Фамилия Имя Отчество
Left 32 32 32
Top 24 64 104


TButton Button1 Button2 Button3
Caption Добавить Найти Удалить
Left 32 152 272
Top 136 136 136




unit Unit1;

interface

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls;

type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
LabeledEdit4: TLabeledEdit;
TrackBar1: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure LabeledEdit4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
PComp = ^Comp;
Comp = record
Sur,Name,Ot,Age : String;
pNext : PComp;
end;

var
Form1: TForm1;
pBegin,pEnd,PAux,PcKey,pPreComp : PComp;
SSur,SName,SOt,SAge : String;
bCond : Boolean;
N : Boolean;

implementation

{$R *.dfm}
{процедура создания динамического списка}
procedure CreateLL(var pBegin,pEnd:pComp; var SSur,SName,SOt,SAge : String);
begin
New(pBegin);
pBegin^.pNext := nil;
pBegin^.Sur := SSur;
pBegin^.Name := SName;
pBegin^.Ot := SOt;
pBegin^.Age := SAge;
pEnd := pBegin;
end;
{процедура добавления в список}
procedure AddLL(var pEnd: pComp; var SSur,SName,SOt,SAge : String);
begin
New(pAux);
pAux^.pNext := nil;
pEnd^.pNext := pAux;
pEnd := pAux;
pEnd^.Sur := SSur;
pEnd^.Name := SName;
pEnd^.Ot := SOt;
pEnd^.Age := SAge;
end;
{процедура поиска по заданному ключу}
procedure Find(var sKey : String;var pBegin,pCKey,pPreComp : Pcomp;
var bCond : Boolean);
begin
pCkey := pBegin;
while (pCKeynil) and (sKey pCKey^.Sur) do
begin
pPreComp := pCkey;
pCKey := pCKey^.pNext;
end;
try
if (pCKey = nil) and (sKey pCKey^.Sur) then
bCond := False else
bCond := true;
except
on EAccessViolation do
bCond := False;
end;
end;
{процедура удаления по заданному ключу}
procedure DelComp(var sKey : String;var pBegin : pComp);
begin
Find(sKey,pBegin,pCKey,pPreComp,bCond);
pPreComp^.pNext := pCKey^.pNext;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
{проверка создан ли список}
N := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if N then
begin
SSur := LabeledEdit1.Text;
SName := LabeledEdit2.Text;
SOt := LabeledEdit3.Text;
SAge := LabeledEdit4.Text;
CreateLL(pBegin,pEnd,SSur,SName,SOt,SAge);
N := False;
end else
begin
SSur := LabeledEdit1.Text;
SName := LabeledEdit2.Text;
SOt := LabeledEdit3.Text;
SAge := LabeledEdit4.Text;
AddLL(pEnd,SSur,SNAme,SOt,SAge);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
sKey : String;
begin
sKey := LabeledEdit1.Text;
DelComp(sKey,pBegin);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
sKey : String;
begin
sKey := LabeledEdit1.Text;
Find(sKey,pBegin,pCKey,pPreComp,bCond);
LabeledEdit1.Text := pCKey^.Sur;
LabeledEdit2.Text := pCKey^.Name;
LabeledEdit3.Text := pCkey^.Ot;
LabeledEdit4.Text := pCkey^.Age;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
{связь TrackBar с Edit}
LabeledEdit4.Text := IntToStr(TrackBar1.Position);
end;
procedure TForm1.LabeledEdit4Change(Sender: TObject);
begin
{Связь Edit с TrackBar}
TrackBar1.Position := StrToInt(LabeledEdit4.Text);
end;

end.
Работа с закладками
Многостраничные панели позволяют экономить пространство окна приложения, размещая на одном и том же месте страницы разного содержания.
Чтобы перенести на форму закладку нужно кликнуть на иконку PageControl в палитре компонентов Win32. Иконка показана на рис. 3.
Рис. 3 Страница Win32
Чтобы задавать и редактировать страницы этого компонента, надо щелкнуть на нем правой кнопкой мыши. Во всплывшем меню вы можете видеть команды: New Page – создать новую страницу, Next Page – переключиться на следующею страницу, Previous Page – переключиться на предыдущую страницу.
Покажем работу закладок на простом примере:
Рис.4
TForm Form1
Height 436
Width 544
TPageControl PageControl1
Height 348
Width 536
TabSheet1.Caption Закладка 1
TabSheet2.Caption Закладка 2
TabSheet3.Caption Закладка 3
TButton Button1 Button2 Button3
Caption Закладка 1 Закладка 2 Закладка 3
Left 216 312 408
Top 368 368 368
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ExtCtrls, StdCtrls, jpeg;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Memo1: TMemo;
StaticText1: TStaticText;
Image1: TImage;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 0;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
PageControl1.ActivePage := TabSheet2;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
PageControl1.ActivePage := TabSheet3;
end;
end.
Работа с переключателями
Радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимодействующих альтернатив, например, отдела, в которой работает сотрудник, или пола сотрудника. Впрочем, радикнопки могут использоваться и для отображения аналогичных данных. В этом случае управление кнопками осуществляется программно. Существуют зависимые и независимые радиокнопки – RadioGroup и RadioButton.
RadioGroup – панели группы радиокнопок. Это панель, которая может содержать регулярно расположенные стобцами и строками радиокнопки. Надпись в верхнем углу панели определятся свойством Caption. А надписи кнопок и их количество определяется свойством Items, имеющим тип TStrings. В нем вы можете занести надписи, которые хотите видеть около кнопок, по одной в строке. Сколько строчек вы напишете – столько и будет кнопок.
RadioButton – радиокнопки обеспечивающие не регулярное расположение. Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появиться надпись. Свойство Checked определяет, выбрана ли данная кнопка пользователем или нет.
TLabel Label1 Label2 Label3 Label4 Label5 Label6 Label7
Caption Камень, ножницы, бумага компьютер игрок 0:0 Сложность
Left 93 163 186 192 192 201 296
Top 16 64 160 88 184 112 88
Height 24 20 20 13 13 20 13
Width 236 97 50 3 3 22 59
TButton Button1
Left 16
Top 72
TRadioGroup RadioGroup1
Height 44
Widht 225
Caption Выберите
Left 99
Top 184
Columns 3
Visible False
Items Камень
Ножницы
Бумага
{программа для игры в камень, ножницы, бумага. Правила: камень тупит ножницы,
бумага накрывает камень, ножницы режут бумагу}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label7: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
private
{ Private declarations }.....


Толық нұсқасын 30 секундтан кейін жүктей аласыз!!!


Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter

Қарап көріңіз 👇



Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру

Соңғы жаңалықтар:
» Ораза айт намазы уақыты Қазақстан қалалары бойынша
» Биыл 1 сыныпқа өтініш қабылдау 1 сәуірде басталып, 2024 жылғы 31 тамызға дейін жалғасады.
» Жұмыссыз жастарға 1 миллион теңгеге дейінгі ҚАЙТЫМСЫЗ гранттар. Өтінім қабылдау басталды!