ブール変数の信号変更(プログラムの起動/停止など、さまざまな機能を呼び出す)について、プログラム(VCL)で対応したいと考えています。どうすればそれを実現できますか?タイマーなしで別の方法がありますか?信号変更に関するプログラムに反応する
私はDelphi 7を使用していますが、私はDelphiを短時間使用します。
ブール変数の信号変更(プログラムの起動/停止など、さまざまな機能を呼び出す)について、プログラム(VCL)で対応したいと考えています。どうすればそれを実現できますか?タイマーなしで別の方法がありますか?信号変更に関するプログラムに反応する
私はDelphi 7を使用していますが、私はDelphiを短時間使用します。
プロパティにセッターメソッドを使用し、新しい値が現在の値と異なる場合は、そのセッターをチェックする必要があります。
もしそうなら、(ここではOnCanStartChanged
)の値を設定し、イベントを発生さ
uses
Classes;
type
TFoo = class
private
FCanStart : Boolean;
FOnCanStartChanged: TNotifyEvent;
procedure SetCanStart(const Value: Boolean);
procedure SetOnCanStartChanged(const Value: TNotifyEvent);
protected
procedure DoCanStartChanged(); virtual;
public
property CanStart : Boolean read FCanStart write SetCanStart;
property OnCanStartChanged: TNotifyEvent read FOnCanStartChanged write SetOnCanStartChanged;
end;
{ TFoo }
procedure TFoo.DoCanStartChanged;
begin
if Assigned(FOnCanStartChanged)
then
FOnCanStartChanged(Self);
end;
procedure TFoo.SetCanStart(const Value: Boolean);
begin
if FCanStart <> Value
then
begin
FCanStart := Value;
DoCanStartChanged();
end;
end;
procedure TFoo.SetOnCanStartChanged(const Value: TNotifyEvent);
begin
FOnCanStartChanged := Value;
end;
あなた*変数*は*の特性であることができる場合*、あなたは価値場合はプロパティのセッターからのイベントを発生することができます設定する値はプロパティの現在の値と異なっています –
@Sir Rufoプロパティとしてvaribleを持っています: 'procedure SetCanStart(const Value:boolean); 関数GetCanStart:ブール値。 プロパティCanStart:boolean読み取りGetCanStart write SetCanStart; ' – genakust
変数が変更されたときにイベントを発生させることはできません。何らかの形で変数をカプセル化する必要があります。プロパティは片道です。もう一つ手続き。 –