2017-08-19 2 views
0

独自のプロパティを設定するプロシージャを作成したいとします。サンプルコードを参照してください。私は、Delphi XEにコンポーネントをセルフイベントに呼び出す方法 - DELPHI

サンプルを使用しています:

procedure TCarcassUpdateForm.ChangeText; 
    begin 
     if self.Text = '' then 
     begin 
     Self.Text := '0'; 
     end; 
    end; 

//Edit 14 
procedure TCarcassUpdateForm.MyDBLabeledEdit14Exit(Sender: TObject); 
    begin 
    ChangeText 
    end; 

//Edit 15 
procedure TCarcassUpdateForm.MyDBLabeledEdit15Exit(Sender: TObject); 
    begin 
    ChangeText 
    end; 

答えて

1

あなたのアプローチは、私にはほとんど意味がありません。私はあなたが何をしようとして理解していれば、ここであなたの代わりに何をすべきかです:コントロールのいずれかに

  • クリックして(のは、それが簡単にするために、それDBEdit1を呼びましょう)。
  • オブジェクトインスペクタの[イベント]タブに切り替えて、OnExitイベントをダブルクリックします。コードエディタで
  • 、あなたはにそのコード

    procedure TCarcassUpdateForm.DBEdit1Exit(Sender: TObject); 
    begin 
    
    end; 
    
  • 編集が表示されます:

    procedure TCarcassUpdateForm.DBEdit1Exit(Sender: TObject); 
    var 
        Edit: TDBEdit; // replace with your actual control class 
    begin 
        // Replace TDBEdit with the your actual control class 
        Edit := (Sender as TDBEdit); 
        if Edit.Text = '' then 
        Edit.Text := '0'; 
    end; 
    
  • バックオブジェクトインスペクタに移動し、DBEdit1ExitからOnExitイベントの名前を変更しますAllDBEditExit。フォームデザイナで

  • はCtrl +LeftClickあなたがそれらすべてを選択するために、同じ動作をしたいの各コントロール。
  • オブジェクトインスペクタのイベントタブで、OnExitイベントのドロップダウンリストをクリックし、イベント名としてAllDBEditExitを選択します。
+2

'OnExit'ハンドラを調整して、' as'演算子を複数回呼び出さないようにすることをお勧めします。実行時に冗長ルックアップを実行するためです。それを一度呼び出すと、ローカル変数に結果を保存します。例: 'procedure TCarcassUpdateForm.AllDBEditExit(Sender:TObject); var編集:TDBEdit;編集を開始:= TDBEditとしての送信者。 Edit.Text = ''の場合、Edit.Text:= '0';最後; –

関連する問題