100 компонентов общего назначения библиотеки Delphi5

Пример фрейма

Давайте введем в наш модуль в разных местах объявления целых переменных, а в обработчики событий кнопок введем операторы, манипулирующие ими и отображающие результат в метке. Модуль фрейма может приобрести следующий вид: unit UFrame; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFrame2 = class(TFrame) GroupBox1: TGroupBox; BSetup: TButton; Label1: TLabel; BInc: TButton; BShow: TButton; procedure BSetupClick(Sender: TObject); procedure BIncClick(Sender: TObject); procedure BShowClick(Sender: TObject); private { Private declarations } {Переменная А видна только в данном модуле} A: integer; public { Public declarations } {Переменная В видна в других модулях через объект фрейма} B:integer; end; {Переменная С видна в других модулях} var C:integer; implementation {$R *.DFM} {Переменная D видна только в данном модуле} var D:integer; procedure TFrame2.BSetupClick(Sender: TObject); begin A:=1; B:=1; C:=1; D:=1; Label1.Caption := 'A=' + IntToStr(A) + ' B=' + IntToStr(B) + ' C=' + IntToStr(C) + ' D=' + IntToStr(D); end; procedure TFrame2.BIncClick(Sender: TObject); begin Inc(A); Inc(B); Inc(C); Inc(D); Label1.Caption := 'A=' + IntToStr(A) + ' B=' + IntToStr(B) + ' C=' + IntToStr(C) + ' D=' + IntToStr(D); end; procedure TFrame2.BShowCiick(Sender: TObject); begin Label1.Caption := 'A='+IntToStr(A) + ' B=' + IntToStr(B) + ' C=' + IntToStr(C) + ' D=' + IntToStr(D); end; end.

В модуле введены переменные:

  • А — введена в закрытый раздел класса; видна только в процедурах данного класса в этом модуле; независимые друг от друга переменные А будут содержаться в каждом объекте фрейма.
  • В — введена в открытый раздел класса; в других модулях можно получить доступ к В через имя объекта фрейма; независимые друг от друга переменные В будут содержаться в каждом объекте фрейма.
  • С — введена в открытый интерфейс вне описания класса; доступна в других модулях; имеется единственный экземпляр С, независимо от числа объектов фреймов.
  • D — введена в реализацию класса; доступна только в данном модуле; имеется единственный экземпляр D, независимо от числа объектов фреймов.

Введенные в модуль обработчики щелков на кнопках обеспечивают сброс всех переменных на 1 (процедура TFrame2.BSetupClick), увеличение всех переменных на 1 (процедура TFrame2.BIncClick), отображение текущего состояния переменных (процедура TFrame2.BShowClick).

Теперь давайте разместим несколько экземпляров фрейма на форме. Перейдите в основную форму приложения и выберите в палитре компонентов Frame (первая кнопка на странице Standard). Появится диалоговое окно, в котором будет спрашиваться, какой фрейм вы хотите разместить на форме. Выберите ваш фрейм Frame2 и он появится на форме. Можете отбуксировать его, как обычный компонент, в нужное место. Повторите эту операцию еще раз и разместите на форме второй фрейм (Рисунок 7.10). Добавьте кнопку и метку, задав ее свойство Align равным alTop и свойство Alignment равным taCenter.

Вы получили форму, содержащую два объекта — фрейма. Можете изменить какие-то свойства объектов. Например, изменить надписи (Caption) групповых панелей GroupBox (см. Рисунок 7.10 а).


Содержание раздела