Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 按住按钮时执行连续动作_Delphi - Fatal编程技术网

Delphi 按住按钮时执行连续动作

Delphi 按住按钮时执行连续动作,delphi,Delphi,当按下按钮时,我如何能够进行连续动作?例如,我为我的应用程序制作了一个自定义的“Numpad”,它有一个删除按钮。现在,我必须单独单击它,但我希望它在按住的同时继续删除 过程TFrame1.deleteClick(发送方:TObject); 变量 模糊:字符串; 开始 全局\u获取\u模式:=precheck.global\u编辑\u模式; precheck.Form2.input_field.SetFocus; MiString:=复制(precheck.Form2.input_field.T

当按下按钮时,我如何能够进行连续动作?例如,我为我的应用程序制作了一个自定义的“Numpad”,它有一个删除按钮。现在,我必须单独单击它,但我希望它在按住的同时继续删除

过程TFrame1.deleteClick(发送方:TObject);
变量
模糊:字符串;
开始
全局\u获取\u模式:=precheck.global\u编辑\u模式;
precheck.Form2.input_field.SetFocus;
MiString:=复制(precheck.Form2.input_field.Text,0,(长度(precheck.Form2.input_field.Text)-1));
precheck.Form2.input_field.Text:=MiString;
Form2.input_field.SelStart:=高(整数);
结束;

添加计时器并在
OnMouseDown
事件中激活它。 只要按下按钮,计时器将按您选择的速率启动。 松开按钮时,
OnMouseUp
事件将禁用计时器

以这种方式:

procedure TFrame1.BtnMouseDown(Sender : TObject);
begin
  global_gotten_mode := precheck.global_edit_mode;
  precheck.Form2.input_field.SetFocus;
  fMyBtnTimer.Interval := 500;  // Initial repetition rate
  fMyBtnTimer.Enabled := true;
end;

procedure TFrame1.BtnMouseUp(Sender : TObject);
begin
  fMyBtnTimer.Enabled := false;
end;

procedure TFrame1.MyBtnTimerEvent(Sender : TObject);
var
  MiString: string;
begin
  fMyBtnTimer.Interval := 200;  // Increase repetition rate
  MiString := Copy( precheck.Form2.input_field.Text, 
                    0, 
                    length(precheck.Form2.input_field.Text) - 1);
  precheck.Form2.input_field.Text := MiString;
  Form2.input_field.SelStart := high(integer);
end;

添加计时器并在
OnMouseDown
事件中激活它。 只要按下按钮,计时器将按您选择的速率启动。 松开按钮时,
OnMouseUp
事件将禁用计时器

以这种方式:

procedure TFrame1.BtnMouseDown(Sender : TObject);
begin
  global_gotten_mode := precheck.global_edit_mode;
  precheck.Form2.input_field.SetFocus;
  fMyBtnTimer.Interval := 500;  // Initial repetition rate
  fMyBtnTimer.Enabled := true;
end;

procedure TFrame1.BtnMouseUp(Sender : TObject);
begin
  fMyBtnTimer.Enabled := false;
end;

procedure TFrame1.MyBtnTimerEvent(Sender : TObject);
var
  MiString: string;
begin
  fMyBtnTimer.Interval := 200;  // Increase repetition rate
  MiString := Copy( precheck.Form2.input_field.Text, 
                    0, 
                    length(precheck.Form2.input_field.Text) - 1);
  precheck.Form2.input_field.Text := MiString;
  Form2.input_field.SelStart := high(integer);
end;