我的程序里面有的地方有这样的语句
RadioGroup1.ItemIndex:=0;
但是这句话会导致RadioGroup1的OnClick时间激发
我有时不希望它触发OnClick时间
请问各位大侠,有什么办法??

解决方案 »

  1.   

    用application.onmessage消息处理,handle:=true就屏蔽了
      

  2.   

    unit Unit1;interfaceuses
      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控件的消息