
- •Тема 2.3.16: Дополнительные компоненты Delphi. План.
- •Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель (самостоятельная работа).
- •Форматы даты и времени (самостоятельная работа).
- •Пример программы с использование таймера (самостоятельная работа).
- •1. Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель.
- •2. Форматы даты и времени.
- •3. Пример программы с использование таймера.
Тема 2.3.16: Дополнительные компоненты Delphi. План.
Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель (самостоятельная работа).
Форматы даты и времени (самостоятельная работа).
Пример программы с использование таймера (самостоятельная работа).
Список используемой литературы:
Митчелл К. Керман, Программирование и отладка в Delphi. Учебный курс. - М: Издательский дом “Вильямс”, 2002. Стр. 444-491.
С. Бобровский, Delphi 7. Учебный курс. –М: Издательский дом “Питер”, 2003. Стр. 222-306.
1. Примеры программы с использованием компонент Флажок, Переключатель, Полоса прокрутки, Панель.
Пример 1, в котором используются флажки. Выполнение этого кода показано на рис. 1.
Рис. 1. Пример использования флажков
Компонент |
Свойство |
Значение |
|||
Форма
Кнопка
Область просмотра
Надпись
Флажок
Флажок
Флажок
Флажок |
Name Caption Name Caption Name Lines Readonly Name Caption Name Caption Name Caption Name Caption Name Caption |
frmCheckBox Пример с флажками btnEvaluate Ответ memOutput пусто True lblQuestion Какие кредитные карточки вы используете? chkVisa Visa chkMaster Mastercard chkDiscover Discover Card chkAmEx American Express |
|||
Имя компонента |
Событие |
Имя обработчика |
|
||
btnEvaluate |
OnClick |
Evaluate() |
|
unit CheckBoxEx; interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TfrmCheckBox = class(TForm)
btnEvaluate: Tbutton;
memOutput: Tmemo;
lblQuestion: Tlabel;
chkVisa: TcheckBox;
chkMaster: TcheckBox;
chkDiscover: TcheckBox;
chkAmex: TcheckBox;
procedure Evaluate(Sender: Tobject);
procedure TestCard(chkBox: Tobject; var used: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmCheckBox: TfrmCheckBox;
implementation
{$R *.DFM}
{ Имя процедуры: TestCard
Назначение: Проверка, установлен ли флажок кредитной карточки.
Если да, то вывести имя кредитной карточки в область просмотра. } procedure TfrmCheckBox.TestCard(chkBox: Tobject; var used: Boolean);
begin
with (chkBox as TcheckBox) do
if Checked then
begin
memOutput.Lines.Add(Caption);
used := True;
end;
end;
{Имя процедуры: Evaluate
Назначение: Определение того, какие флажки установлены. }
procedure TfrmCheckBox.Evaluate(Sender: Tobj ect);
var used: Boolean;
begin
used := False;
memOutput.Clear;
memOutput.Lines.Add('Вы используете следующие кредитные карточки:');
TestCard(chkVisa, used);
TestCard(chkMaster, used);
TestCard(chkDiscover, used);
TestCard(chkAmEx, used);
if not(used) then
memOutput.Lines.Add('Кредитных карточек у вас нет');
end;
end.
Пример 2, в котором используются переключатели. Выполнение кода показано на рис. 2.
Рис. 2. Пример с переключателями
Компонент |
Свойство |
Значение |
Форма
Кнопка
Область просмотра
Надпись
Переключатель
Переключатель |
Name Caption Name Caption Name Lines Readonly Name Caption Name Caption Name Caption |
frmRadioButton Пример с переключателями btnEvaluate Реакция на ответ memOutput пусто True lblQuestion Вам нравится программировать в Delphi? radYes Да raINo Нет |
Имя компонента |
Событие |
Имя обработчика |
btnEvaluate |
OnClick |
Evaluate() |
unit RadioButtonEx;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TfrmRadioButton = class(Tform)
lblQuestion: Tlabel;
radYes: TradioButton;
lineo: TradioButton;
btnEvaluate: Tbutton;
memOutput: Tmemo;
procedure Evaluate(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
frmRadioButton: TfrmRadioButton;
implementation
{$R *.DFM}
procedure TfrmRadioButton.Evaluate(Sender: Tobject);
var lineout: String;
begin
memOutput.Clear;
if radYes.Checked then
lineout := 'Я очень рад за вас!'
else
if lineo.Checked then
lineout := 'Почему? Ведь это так интересно!'
else
lineout := 'Да или нет?';
memOutput.Lines.Add(lineout);
end;
end.
Пример 3. Приведенный ниже код иллюстрирует использование полосы прокрутки. Выполнение этого кода показано на рис. 3. Выполняя пример, можно увидите, что диапазоны полос прокрутки установлены неудачно: рисунок «вылезает» за пределы предназначенной для него области. Исправьте эту ошибку.
Рис. 3. Выполнение примера с полосой прокрутки
Компонент |
Свойство |
Значение |
Форма
Полоса прокрутки
Полоса прокрутки
Надпись |
Name Caption Name Kind LargeChange Name Kind LargeChange Name Caption Font Size Left Top |
frmScrollBar Пример полосы прокрутки sbrXPosition sbHorizontal 10 sbrYPosition sbVertical 10 lblAeroplane Q Windings 18 0 0 |
Имя компонента |
Событие |
Имя обработчика |
sbrXPosition sbrYPosition |
OnChange OnChange |
Xpos() Ypos() |
unit ScrollBarEx;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TfrmScrollBar = class(Tform)
sbrXPosition: TscrollBar;
sbrYPosition: TscrollBar;
lblAirplane: Tlabel;
procedure Ypos(Sender: Tobj ect);
procedure Xpos(Sender: Tobj ect);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmScrollBar: TfrmScrollBar;
implementation
{$R *.DFM}
procedure TfrmScrollBar.Ypos(Sender: Tobj ect);
begin
lblAirplane.Top := sbrYPosition.Position * 2;
end;
procedure TfrmScrollBar.Xpos(Sender: Tobject);
begin
lblAirplane.Left := sbrXPosition.Position * 2; end;
end.
Пример 4. В приведенном ниже модуле кода панель работает как специальная кнопка. Пример выполнения кода показан на рис. 4.
Рис. 4. Выполнение примера с панелью
Компонент |
Свойство |
Значение |
Форма
Панель
Область просмотра |
Name Caption Name BevelWidth Caption Name Lines Readonly |
trmPanel pnlTest Пример с панелью 10 Тестирование панели memOutput пусто True |
Имя компонента |
Событие |
Имя обработчика |
pnlTest |
OnClick |
Test() |
unit PanelEx;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type
TfrmPanel = class(Tform)
pnlTest: Tpanel;
memOutput: Tmemo;
procedure Test(Sender: Tobject);
procedure FormCreate(Sender: Tobject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmPanel: TfrmPanel;
implementation {$R *.DFM}
var number: Integer;
procedure TfrmPanel.Test(Sender: Tobj ect);
var lineout: String;
begin
number := number + 1;
memOutput.Clear;
lineout := ‘Вы щелкнули на панели ‘ + IntToStr(number) + ‘ раз’;
lineout := lineout + ‘.’;
memOutput.Lines.Add(1ineOut);
end;
procedure TfrmPanel.FormCreate(Sender: Tobject);
begin
number := 0;
end.