![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение переменной [D5, Win95/98]
ilg © (2002-07-22 16:42:00)Можно ли сделать так, чтобы при изменении переменной X своего значения возникало событие, которое можно обрабатывать? Может быть это возможно, если X описать, как свойство какого-либо класса?
В общем, как поймать момент изменения значения переменной?
Заранее, большое спасибо!
MBo (2002-07-23 10:59:00) [1]type
TXX = class
private
FX: integer;
FOnXChanged: TNotifyEvent;
procedure SetX(const Value: Integer);
public
property X: integer read FX write SetX;
property OnXChanged: TNotifyEvent read FOnXChanged write FOnXChanged;
end;
procedure TXX.SetX(const Value: Integer);
begin
if FX <> Value then
begin
FX := Value;
if Assigned(FOnXChanged) then
FOnXChanged(Self);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
xx: txx;
begin
xx := txx.create;
xx.OnXChanged := Button2Click;
xx.x := 3;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Showmessage("X has been changed");
end;
ilg (2002-07-23 10:36:00) [2]Виктор Щербаков, извините, можно подробнее?
Я не совсем понял... Если можно, пожалуйста с примером!
Виктор Щербаков (2002-07-22 16:46:00) [3]
> Может быть это возможно, если X описать, как свойство какого-либо
> класса?
Обычно так и делают. Синтаксически это выглядит как присваивание переменной значения. Компилятор же генерирует код для вызова метода записи свойства.
Skier (2002-07-22 16:45:00) [4]>ilg
Сделай свойство YourProperty написи процедуру
SetYourProperty(Value : TYourType) и будет тебе счастье...