我想在FORM显示出来后,自动运行窗口上的一个BUTTON按钮,该在哪个事件里写这段代码? 我想在FORM显示出来后,自动运行窗口上的一个BUTTON按钮,该在哪个事件里写这段让自动运行BUTTON事件的代码?就是有点类似于QQ的自动登录窗口,在登录界面运行“登录”按钮事件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 或者OnShow事件中Button.Click; procedure TForm1.Button1Click(Sender: TObject);begin ShowMessage('Hello World !');end;procedure TForm1.FormPaint(Sender: TObject);begin Button1.Click;end; 在登录界面加个Timer,延时自己决定,设定为False在Form的Onpaint事件中触发Timer然后在Timer事件中加入按钮事件 这个笨办法也许能满足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; 在登录界面加个Timer,延时自己决定(2000吧。),设定为False在Form的onshow事件中触发Timer然后在Timer事件中加入按钮事件 把登陆界面在工程设置里面设置成主窗体,在button里面show你现在的主窗体就可以了。 可以把Button的代码放在FormShow的方法中。 在登录界面加个Timer,延时自己决定,设定为False在Form的Onpaint事件中触发Timer然后在Timer事件中加入按钮事件 LoginForm:=TLoginForm.Create(Application); LoginForm.ShowModal;//=mrCancel then Application.CreateForm(TMainForm, MainForm); Application.ShowMainForm :=false; Application.Run;工程文件这样写就好啊 {楼主请测试}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. 调试时发现自动登录时这里通不过:ModalResult := mrOK; 在mainform的create事件里面写上application.showmainform:=false;在mainform的Create事件里面用一个timer,show你的登陆窗口,登陆窗口判断密码以后,show你的主窗口,就可以了。 就是说不要用ShowModal的方法? 要等上一会的,就要用到TIMER控件了,如果放在SHOW事件上,会看不到的,一瞬间就没了 呵呵,我严重怀疑楼主的项目里面,首先把别的窗体创建出来了……在工程文件里面,应该只自动创建一个登陆窗体,然后就application.run,这样就只会出现一个登陆窗口了 TForm1.Create事件里面postmessage 一个自定义的消息在消息响应过程里面调用按钮事件。 NND,太快了就不会设置时间长点? 对,就是这样但是放了TIMER控件一样啊 抢占36楼……貌似不难啊,就是用timer 楼主的意思应该是在主页面显示出来之后再调用BUTTON的事件代码.在OnShow事件里面写代码的话,都是先执行代码再显示主页面.在OnActivate或者Onpaint事件里面写代码,如果程序有多个界面会出现重复触发BUTTON事件. 这个可以.将if FTime > 5 then 改成 if FTime = 5 then 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.我这测试是能用.... 数组的XOR加密 修改AutoUpgrader组件时遇到的问题 请问wise installshield制作的安装程序中如何加入自己的程序,比如写好的批处理文件 二进制权限算法该如何实现啊 在DLL里显示调用模式窗体问题,解决马上结贴! 那里有编好你delphi的事例 请教票据套打问题 未升级,散分! 高手求解:重启后覆盖 Windows 系统文件如何实现? 请问大家在南京做程序员工资一般一个月都有多少呀!(我明年打算过去) 散分贴 三国生了, 大猩猩 pascal十进制转二进制八进制 有错 改不了
Button.Click;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hello World !');
end;procedure TForm1.FormPaint(Sender: TObject);
begin
Button1.Click;
end;
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;
LoginForm.ShowModal;//=mrCancel then Application.CreateForm(TMainForm, MainForm);
Application.ShowMainForm :=false;
Application.Run;工程文件这样写就好啊
{楼主请测试}
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.
在mainform的Create事件里面用一个timer,show你的登陆窗口,
登陆窗口判断密码以后,show你的主窗口,就可以了。
就是说不要用ShowModal的方法?
在工程文件里面,应该只自动创建一个登陆窗体,然后就application.run,这样就只会出现一个登陆窗口了
对,就是这样
但是放了TIMER控件一样啊
貌似不难啊,就是用timer
将if FTime > 5 then 改成 if FTime = 5 then
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.
我这测试是能用....