作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 PingTool,我有一个动态创建按钮的 TabSheet(根据用户输入从 1 到 150 的任意位置),我希望能够将 OnClick 命令传递给给定的所有按钮标签表。我的个人按钮单击成功运行了我的 ping 代码,但在单击我的 PingAll 按钮时收到 EStackOverflow 消息。任何帮助将不胜感激。代码摘录如下:
用于创建按钮的代码:
begin
For x := 0 to CheckListBox1.Items.Count -1 Do
Begin
If CheckListBox1.Checked[x]=true then
begin
GLCount := (GLCount +1);
theIP :=(CheckListBox1.Items.Strings[x]);
if GLcount < 10 then begin
B := TColorButton.Create(Self);
B.Name:= ('BTN'+intToStr(GLCount+1));
B.Caption := theIP;
B.Parent := TabSheet2;
B.Height := 25;
B.Width := 97;
B.Left := 0 + GLCount * 96;
B.Top := 8;
B.BackColor := clBtnFace;
B.ForeColor := clBtnText;
B.OnClick := CustomButtonClick;
end;
自定义按钮点击代码:
Procedure TForm1.CustomButtonClick(Sender: TObject);
begin
GlobalIP:=TColorButton(Sender).caption;
IdIcmpClient1.Host := GlobalIP;
IdIcmpClient1.ReceiveTimeout := 500;
IdIcmpClient1.Ping();
case IdIcmpClient1.ReplyStatus.ReplyStatusType of
rsEcho:
TColorButton(Sender).BackColor := clGreen;
rsTimeOut:
TColorButton(Sender).BackColor := clRed;
end;
end;
PingAll 代码(不起作用):
procedure TForm1.PingAllClick(Sender: TObject);
var
i: integer;
begin
For i := 0 to TabSheet2.ControlCount -1 do
if TabSheet2.Controls[i] is TColorButton then
begin
TColorButton(Sender).Click;
end;
end;
最佳答案
您正在调用递归方法 PingAllClick...看看您调用的是 TColorButton(Sender).Click
....
Control := tabSheet2.Controls[i]
if Control is TColorButton then
TColorButton(Control ).Click()
....
关于delphi - 将 OnClick 命令发送到 TabSheet 上的所有 Dynamic TColorButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13825259/
我公司的一个软件项目已由外部承包商维护多年。他的服务可能不再对我们可用,所以我的任务是获取源代码的副本并检查我是否可以编译它。 我以前从未使用过Delphi。当我打开其中一个项目文件时,我收到多个实例
我在 FireMonkey 移动应用程序的表单中使用组件 TGridlayout。 我想在运行时创建带有颜色、文本和图像的按钮。我正在使用 TColorbutton 和 Timage 组件,但是 TC
我正在开发一个 PingTool,我有一个动态创建按钮的 TabSheet(根据用户输入从 1 到 150 的任意位置),我希望能够将 OnClick 命令传递给给定的所有按钮标签表。我的个人按钮单击
我是一名优秀的程序员,十分优秀!