Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





 

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

MyComponent.Width:= 35;

Вышеприведенная строка устанавливает ширину (Width) компонента в значение 35.

Если свойство Width компонента еще не было равно 35 к моменту выполнения данной строки программы, Вы увидите, как компонента визуально изменит свою ширину.

Рис. 2: Изменение размеров с помощью Инспектора Объектов.

Object Inspector является удобным способом выполнения в режиме проектирования того, что может быть осуществлено программным путем в режиме выполнения. У компонента могут быть свойства, не отображаемые в окне Инспектора Объектов.

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

Задание 4.

Разместить на форме объект Tshape, две полосы прокрутки и несколько кнопок. Программа должна в режиме выполнения изменять размер, цвет и внешний вид объекта TShape, равно как размер и цвет самой формы. Пояснения для реализации задачи см. ниже.

 

 

Рис. 3: Программа SHAPEDEM имеет 2 полосы прокрутки и несколько кнопок.

 

Листинг А показывает код программы SHAPEDEM. Код головного модуля этой программы мы приведем по частям - по мере его написания.

Листинг А: Исходный код программы SHAPEDEM.DPR.

program Shapedem;

Uses

Forms,

Mina in 'MAIN.PAS' {Form1};

Begin

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

 

Рис. 4: Вы можете использовать полосы прокрутки, кнопки и список для изменения внешнего вида приложения.

В нашем примере полосы прокрутки (ScrollBars) используются для изменения размера фигуры, изображенной в средней части экрана, как показано на рис.4. Для выбора нового вида фигуры используйте выпадающий список (ComboBox), а для изменения цвета фигуры или окна (формы) используйте стандартное диалоговое окно выбора цвета, вызываемое кнопками “Цвет фигуры” и “Цвет формы”.

Для изменения цвета окна просто выберите компонент ColorDialog из палитры компонентов (она находится на страничке “Dialogs”) и поместите его на форму. Кроме того, поместите на форму обычную кнопку (компонент Button, находится на страничке “Standard”). Для удобства чтения с помощью Object Inspector измените имя компонента (свойство Name) с “Button1” (которое дается по умолчанию) на “FormColor”, а его заголовок (свойство Caption) - на “Цвет формы”. Дважды щелкните по кнопке “Цвет формы” - Delphi сгенерирует заготовку метода, который выглядит следующим образом:

 

procedure TForm1.FormColorClick(Sender: TObject);

Begin

 

end;

 

Теперь введите две простые строчки кода:

 

procedure TForm1.FormColorClick(Sender: TObject);

begin

if ColorDialog1.Execute then

Form1.Color:= ColorDialog1.Color;

end;

Рис. 5: Диалоговое окно “Color” дает возможность изменить цвет “во время выполнения”.

Данный код во время выполнения при нажатии кнопки “Цвет формы” вызывает стандартное диалоговое окно выбора цвета, как показано на рис.5.Если в этом диалоговом окне Вы щелкните кнопку OK, выполнится следующая строка:

 

Form1.Color:=ColorDialog1.Color;

 

Этот код установит свойство Color формы Form1 в цвет, который был выбран с помощью диалогового окна ColorDialog1.

Та же самая техника может использоваться для изменения цвета фигуры (компонент Shape, объект TShape). Все, что Вам нужно сделать - это поместить на форму другую кнопку, изменить (при желании) ее имя на “ShapeColor”, а заголовок - на “Цвет Фигуры”, дважды щелкнуть по ней мышкой и создать метод аналогичный следующему:

 

procedure TForm1.ShapeColorClick(Sender: TObject);

Begin

if ColorDialog1.Execute then

Shape1.Brush.Color:= ColorDialog1.Color;

end;

 

Поместите два компонента ScrollBar на форму (находится на страничке “Standard”) и установите свойство Kind первого компонента в sbHorizontal, а второго - в sbVertical. Переключитесь на страничку “Events” в Инспекторе Объектов и создайте заготовки метода для отклика на событие OnChange для каждой полосы прокрутки. Напишите в каждом из методов по одной строчке следующим образом:

 

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

Shape1.Width:= ScrollBar1.Position * 3;

end;

 

procedure TForm1.ScrollBar2Change(Sender: TObject);

begin

Shape1.Height:= ScrollBar2.Position * 2;

end;

 

Код, показанный здесь, устанавливает свойства Width и Height фигуры TShape в соответствие с положением “бегунка” на полосах прокрутки (сомножители 3 и 2 введены только для лучшего представления).

Последняя часть программы SHAPEDEM демонстрирует большие возможности языка Object Pascal, на основе которого построен Delphi. Вы можете ввести элементы в список компонента ComboBox как в режиме проектирования, так и при выполнении программы. При этом в режиме проектирования Вы можете просто ввести нужные элементы в список Items, щелкнув маленькую кнопку с тремя точками в правой части строки Инспектора Объектов, показывающей данное свойство (Items).

Перед Вами появится диалоговое окно текстового редактора (String List Editor), в котором Вы и введете элементы (рис.6). Вы могли заметить, что список этих элементов совпадает со списком опций свойства Shape компонента Shape1 (Shape). Другими словами, если Вы выделите компонент Shape1 на форме (просто щелкнув по нему) и посмотрите свойство Shape в Инспекторе Объектов, Вы увидите список возможных видов фигур, которые может принимать данный компонент. Это как раз те самые виды фигур, которые мы перечисляли в списке у компонента ComboBox1. Этот список Вы можете найти в on-line справочнике по Delphi по контексту “TShapeType”. Или же, если Вы заглянете в исходный код класса TShape, там увидите те же элементы, формирующие перечислимый тип TShapeType:

 

TShapeType = (stRectangle, stSquare, stRoundRect,

stRoundSquare, stEllipse, stCircle);

 

Щелкните дважды на ComboBox1 и впишите в процедуру, открывшуюся в окне редактора, следующий программный код:

 

Case ComboBox1.ItemIndex of

1: Shape1.Shape:= stRectangle;

2: Shape1.Shape:= stSquare;

3: Shape1.Shape:= stEllipse;

………………………..

end;

Порядок пунктов должен соответствовать русским названиям, внесенным в ComboBox1.Items.

 

 

Методы в Delphi







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.