- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想稍微简化将表单状态保存到磁盘的过程。我使用我自己的从 TIniFile 派生的 INI 文件类来读取表单中“所有”控件的状态。像这样的东西:
procedure TMyIniFile.Read(Comp: TComponent);
begin
if ValueExists(Section, Comp.Name) then
begin
if Comp.InheritsFrom(TAction)
then TAction(Comp).Checked:= ReadBool(Section, Comp.Name, FALSE)
else
if Comp.InheritsFrom(TCheckBox) etc
end;
end;
TYPE
TformTester = class(TForm)
MyAction: TAction;
procedure actMyActionExecute(Sender: TObject);
...
procedure TformTester.FormDestroy(Sender: TObject);
VAR
MyIniFile: TMyIniFile;
begin
MyAction.Checked:= true;
MyIniFile:= TMyIniFile.Create('Main Form');
MyIniFile.write(MyAction); // <------ This saves the 'Checked' property of MyAction.
...
end;
procedure TformTester.FormStartUp;
VAR MyIniFile: TMyIniFile;
begin
MyIniFile:= TMyIniFile.Create('Main Form');
MyIniFile.read(MyAction); // <------ This reads the 'Checked' property of MyAction. It should execute the actMyActionExecute but it doesn't.
assert(MyAction.Checked); // <---- Yes, it is checked
...
end;
procedure TformTester.MyActionExecute(Sender: TObject);
begin
if MyAction.Checked
then Caption:= 'Action checked'
else Caption:= 'Action is un-checked!';
end;
最佳答案
行动 OnExecute
调用链接控件时触发。例如,按下按钮或选择菜单项。或者,如果您明确调用 Execute
,则会触发它。事件上。OnExecute
修改任何属性时都不会触发事件。这是设计使然,非常合理。当用户执行某些操作时会触发此事件。不是在程序员设置 Action 时。
关于delphi - TAction.OnExecute 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46253875/
为了进行诊断,OData Controller 中这两个事件的等效操作是什么: 在 Action 开始执行之前。 执行的 Action 我只能找到一个: public class BaseODataC
我有一个包含数百个 TAction 的大型应用程序。它们中的每一个都被使用并实现所需的不同功能。 可以从应用程序捕获( Hook )所有 TAction.OnExecute 吗?是否有任何我可以 Ho
我想稍微简化将表单状态保存到磁盘的过程。我使用我自己的从 TIniFile 派生的 INI 文件类来读取表单中“所有”控件的状态。像这样的东西: procedure TMyIniFile.Read(C
我需要编写一个 Delphi 2009 应用程序,它从套接字读取数据。为此,我需要为 TIdTCPServer.OnExecute 事件编写一个事件处理程序。 我发现了很多在 GUI 应用程序中实现此
我有一个带有这些代码的服务器: procedure TFrmMain.TCPServerExecute(AContext: TIdContext); begin Res := DoRegi
我想创建一个 TCPserver 并根据需要向客户端发送/接收消息,而不是 TCPserver 的 OnExecute 事件。 发送/接收消息没有问题;我确实喜欢这样: procedure TForm
首先开始在 Delphi 7 中启动我自己的服务。遵循文档并使服务生成一个自定义线程,该线程会发出蜂鸣声并记录日志。只有它没有。最后一次尝试是在 OnExecute 事件过程中放置相同的蜂鸣声和日
几周前我开始使用 Indy TCPServer 和 TCPClient,现在,经过大量研究和 SOF 专家(特别是 Lebeau 先生)的帮助,我可以安全地管理客户端连接并向特定客户端发送字符串消息。
我知道我希望从客户端获得多少字节(在此代码中为 100)。如果客户端不给我 100,我根本不需要这个数据包,因为它已损坏。 我遇到客户端提供少于 100 个字节并断开连接的情况。在这种情况下,我正在捕
我正在摆弄 Delphi 2009 提供的 Indy 10,并且在 OnExecute 触发时无法从 IOHandler 获取所有数据... procedure TFormMain.IdTCPServ
我有以下 Web API ActionFilterAttribute namespace namespace.Filters { using System; using System.
一个非常简单的问题,我似乎无法找到明确的答案。 我有一个经典的 TCP Indy 服务器。我以 block 的形式发送数据。每个数据包以 1 个或多个 block 发送。当它到达时,每个数据包都会触发
是否可以让我的TCPServer.OnExecute事件的行为方式与 HTTPServer.OnCommandGet 相同表现: procedure TMainForm.HttpServerComma
我有一个 ActionFilter 覆盖 OnActionExecuted 方法。 filterContext.Controller.ViewData.Model 在 POST 操作中始终为 null
我有这个 TCPServerExecute 事件,我想在手动断开与客户端的连接后停止执行: procedure TMainForm.TCPServerExecute(AContext: TIdCont
我是一名优秀的程序员,十分优秀!