随笔 - 809  文章 - 0 评论 - 144 阅读 - 770万

半夜2点失眠,继续写博客。。。。。

例子如下:

procedure TForm4.btn1Click(Sender: TObject);
begin
  CheckBox1.Checked := True;
  ToggleSwitch1.State := tssOn;
end;

procedure TForm4.btn2Click(Sender: TObject);
begin
  CheckBox1.Checked := false;
  ToggleSwitch1.State := tssOff;
end;

procedure TForm4.CheckBox1Click(Sender: TObject);
begin
  ShowMessage('check box on click');
end;

procedure TForm4.ToggleSwitch1Click(Sender: TObject);
begin
  ShowMessage('ToggleSwitch box on click');
end;

image

可以看到通过代码,让其选中 或 取消选中 都会触发它的 onclick事件,这样很不好,容易导致 循环,我们只是想简单的 通过代码让其选中,而不是 出发它的 onclicck,可以把onclick的代码 放到其 onmouseup上去,这样就简单的 解决了这个问题;

procedure TForm4.CheckBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // on click 的逻辑 放到 onmouseup里,不影响 onclick的效果,达到代码里可以直接设置的目的
  ShowMessage('check box on click');
end;

procedure TForm4.ToggleSwitch1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // on click 的逻辑 放到 onmouseup里
  ShowMessage('ToggleSwitch box on click');
end;

这样就解决了这个问题;

image

posted on   del88  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2012-11-02 SQL SEERVER 各个版本 功能包---各个版本 sqlncli下载方法
点击右上角即可分享
微信分享提示