我已经创建了一个类,当它将被释放时,它应该向整个应用程序传播一个自定义消息.我做到了PostMessage,它只有几个错误
PostMessage(Application.Handle, UM_MYMESSAGE, 0, 0);
Run Code Online (Sandbox Code Playgroud)
然后我意识到它应该是同步的 - 通过SendMessage.
SendMessage(Application.Handle, UM_MYMESSAGE, 0, 0);
Run Code Online (Sandbox Code Playgroud)
在我的表单上,我使用TApplicationEvents组件处理消息,但只是切换SendMessage到PostMessage没有使它处理消息
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message = UM_MYMESSAGE then
begin
ShowMessage('Ok');
Handled := True;
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果我通过表格处理但没有合作,它可以工作Application.Handle......我做错了什么?
我正在构建一个具有自定义自动完成功能的组件,但有时它变得太慢了......我不知道为什么,但我敢打赌是因为我在代码中做的循环。
为了避免循环,我试图弄清楚如何一次在整个 TStringList 中使用正则表达式,但没有成功,我不确定要使用哪些类或如何正确安装表达式本身
有人可以帮我转换这段代码吗?
FHookTo 是一个 ComboBox,当前表达式是 ^(?=. NOTIFICAÇÃO. ).*$
if (FHookTo.Text <> '') then
begin
for i := 0 to FStoredItems.Count-1 do
begin
if TRegEx.IsMatch(FStoredItems[I], Expression, [roIgnoreCase]) then
FHookTo.Items.Add(FStoredItems[I]);
end;
end
Run Code Online (Sandbox Code Playgroud)