我想在FORM显示出来后,自动运行窗口上的一个BUTTON按钮,该在哪个事件里写这段让自动运行BUTTON事件的代码?就是有点类似于QQ的自动登录窗口,在登录界面运行“登录”按钮事件

解决方案 »

  1.   

    或者OnShow事件中
    Button.Click;
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('Hello World !');
    end;procedure TForm1.FormPaint(Sender: TObject);
    begin
      Button1.Click;
    end;
      

  3.   

    在登录界面加个Timer,延时自己决定,设定为False在Form的Onpaint事件中触发Timer然后在Timer事件中加入按钮事件
      

  4.   

    这个笨办法也许能满足LZ的需要的:
    private
      FTime: Integer;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Enabled := True;    //程序设计期将其设置为False;
      FTime := 0;
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Inc(FTime);
      if FTime > 5 then              //时间可以自己设定
        Button1.Click;
    end;
      

  5.   

    在登录界面加个Timer,延时自己决定(2000吧。),设定为False在Form的onshow事件中触发Timer然后在Timer事件中加入按钮事件
      

  6.   

    把登陆界面在工程设置里面设置成主窗体,在button里面show你现在的主窗体就可以了。
      

  7.   

    可以把Button的代码放在FormShow的方法中。
      

  8.   

    在登录界面加个Timer,延时自己决定,设定为False在Form的Onpaint事件中触发Timer然后在Timer事件中加入按钮事件
      

  9.   

      LoginForm:=TLoginForm.Create(Application);
      LoginForm.ShowModal;//=mrCancel then  Application.CreateForm(TMainForm, MainForm);
      Application.ShowMainForm :=false;
      Application.Run;工程文件这样写就好啊
      

  10.   


    {楼主请测试}
    unit Unit3;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm3 = class(TForm)
        procedure FormShow(Sender: TObject);
        procedure FormActivate(Sender: TObject);
      private
        { Private declarations }
        b: Boolean;
      public
        { Public declarations }
      end;var
      Form3: TForm3;implementation{$R *.dfm}procedure TForm3.FormShow(Sender: TObject);
    begin
      b := True;
    end;procedure TForm3.FormActivate(Sender: TObject);
    begin
      if b then
      begin
        Repaint;
        Sleep(5000);
        ShowMessage('它是不是在等待,而且你可以看见窗体!'+#10+'我要接分!');
        b := False;
      end;
    end;end.
      

  11.   

    调试时发现自动登录时这里通不过:ModalResult := mrOK;
      

  12.   

    在mainform的create事件里面写上application.showmainform:=false;
    在mainform的Create事件里面用一个timer,show你的登陆窗口,
    登陆窗口判断密码以后,show你的主窗口,就可以了。
      

  13.   


    就是说不要用ShowModal的方法?
      

  14.   

    要等上一会的,就要用到TIMER控件了,如果放在SHOW事件上,会看不到的,一瞬间就没了
      

  15.   

    呵呵,我严重怀疑楼主的项目里面,首先把别的窗体创建出来了……
    在工程文件里面,应该只自动创建一个登陆窗体,然后就application.run,这样就只会出现一个登陆窗口了
      

  16.   

    TForm1.Create事件里面postmessage 一个自定义的消息在消息响应过程里面调用按钮事件。
      

  17.   

    NND,太快了就不会设置时间长点?
      

  18.   


    对,就是这样
    但是放了TIMER控件一样啊
      

  19.   

    抢占36楼……
    貌似不难啊,就是用timer
      

  20.   

    楼主的意思应该是在主页面显示出来之后再调用BUTTON的事件代码.在OnShow事件里面写代码的话,都是先执行代码再显示主页面.在OnActivate或者Onpaint事件里面写代码,如果程序有多个界面会出现重复触发BUTTON事件.
      

  21.   

    这个可以.
    将if FTime > 5 then 改成 if FTime = 5 then                           
      

  22.   


    unit Unit1;interfaceuses
      Classes, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormPaint(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Button1.Click;
      Timer1.Enabled := False;
    end;procedure TForm1.FormPaint(Sender: TObject);
    begin
      Timer1.Enabled := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage('Hi,there.');
    end;end.
    我这测试是能用....