Buttonをクリックしておきる動作を1度だけにするには?

解決


ciel  2005-08-11 02:40:11  No: 16964  IP: [192.*.*.*]

ButtonをクリックしたらMemoEditにデータを追加して、1度追加されたらそれ以上追加しないようにするにはどうすればいいでしょうか。Buttonには【procedure TForm1.Button1Click(Sender: TObject);
var
  E1,E2 : Integer;
  i : Integer;

begin
  if (TValEdit1.Text ='') or (TValEdit2.Text ='') then
    begin
    ShowMessage('数値が入力されていません');
      if TValEdit1.Text ='' then
         TValEdit1.SetFocus
      else
         TValEdit2.SetFocus;
    end
  else
  begin
    E1 := StrToInt(TValEdit1.Text);
    E2 := StrToInt(TValEdit2.Text);

  for i := E1 to E2 do
    MemoEdit1.Lines.Add(IntToStr(i)) ;
    MemoEdit1.Lines.Add('終了');


  end;】
が記述されています。まだ初心者ですのでおかしいところもあると思いますがよろしくお願いします。

編集    削除
駆け出し  2005-08-11 03:11:57  No: 16965  IP: [192.*.*.*]

はぢめての回答かも^^

Button1.Enabled:= false;
{処理}
Button1.Enabled:= true;

過去ログ検索すれば、たくさん出てくると思いますけどね。
初心者同士、がんがりませう。

編集    削除
駆け出し  2005-08-11 03:13:33  No: 16966  IP: [192.*.*.*]

場合によっては、
{処理}
Application.ProcessMessages;
Button1.Enabled:= true;
とするといいみたい。

編集    削除
にしの  2005-08-11 05:17:59  No: 16967  IP: [192.*.*.*]

一度追加されたら二度と押さないというのであれば、
Button1.OnClick := nil;
でもできます。
次に押したい時があれば、
Button1.OnClick := Button1Click;
とすれば元に戻せます。

編集    削除
ciel  2005-08-12 20:17:32  No: 16968  IP: [192.*.*.*]

ありがとうございました。がんばってみます。

編集    削除