如何屏蔽事件相应

hapland 2002-10-07 01:57:21
我的程序里面有的地方有这样的语句
RadioGroup1.ItemIndex:=0;
但是这句话会导致RadioGroup1的OnClick时间激发
我有时不希望它触发OnClick时间
请问各位大侠,有什么办法??
...全文
35 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hapland 2002-10-07
  • 打赏
  • 举报
回复
感谢两位大侠的热情回答!!
再次感谢
zsy_good 2002-10-07
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
OldWndProc: Pointer;
WndProcPtr: Pointer;
procedure FormDestroy(Sender: TObject);
procedure WndMethod(var Msg: TMessage);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
deleted: Boolean;
Curpageindex: integer;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
WndProcPtr := MakeObjectInstance(WndMethod);
OldWndProc := Pointer(SetWindowLong(pagecontrol1.Handle, GWL_WNDPROC,
Integer(WndProcPtr)));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SetWindowLong(pagecontrol1.Handle, GWL_WNDPROC, Longint(OldWndProc));
FreeObjectInstance(WndProcPtr);
end;
procedure TForm1.WndMethod(var Msg: TMessage);
begin
if Msg.Msg = 4872 then
begin
deleted:=True;
Curpageindex:=pagecontrol1.ActivePageIndex ;
end
else if Msg.Msg =4876 then
begin
if (deleted) and (Msg.WParam = Curpageindex+1 ) then
begin
Msg.WParam := CurPageindex;
deleted:=False;
end;
end;
with Msg do
Result := CallWindowProc(OldWndProc, Application.Handle, Msg, wParam,
lParam);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
pagecontrol1.Pages[3].PageControl := nil;
end;

end.

//截获pagecontrol控件的消息
smhpnuaa 2002-10-07
  • 打赏
  • 举报
回复
用application.onmessage消息处理,handle:=true就屏蔽了

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧