如何触发一个表单中所有TMemo组件的所有onChange事件
How to trigger all onChange events of all TMemo components in a form
我想在显示表单时触发表单中所有 TMemo 组件的所有 onChange 事件。
为此,我使用以下代码:
var
i: integer;
m: tmemo;
begin
for i := 0 to componentcount - 1 do
begin
if components[i] is tmemo then
begin
m := components[i] as tmemo;
m.onchange(m);
end;
end;
end;
问题是,我在上面的循环中遇到了一些访问冲突,可能是因为一些备忘录没有 onChange 事件。
我如何测试事件是否存在,然后再在下面的行中触发它?
m.onchange(m);
您需要在调用之前检查事件处理程序是否已分配:
if Assigned(m.OnChange) then
m.OnChange(m);
我想在显示表单时触发表单中所有 TMemo 组件的所有 onChange 事件。
为此,我使用以下代码:
var
i: integer;
m: tmemo;
begin
for i := 0 to componentcount - 1 do
begin
if components[i] is tmemo then
begin
m := components[i] as tmemo;
m.onchange(m);
end;
end;
end;
问题是,我在上面的循环中遇到了一些访问冲突,可能是因为一些备忘录没有 onChange 事件。
我如何测试事件是否存在,然后再在下面的行中触发它?
m.onchange(m);
您需要在调用之前检查事件处理程序是否已分配:
if Assigned(m.OnChange) then
m.OnChange(m);