chechy(chechy)这个问题没解决:怎样在无窗口的windows程序中使用timer控件? (大虾都来看一看) 直接动态创建一个TIMER啊,然后写上他的事件处理过程就可以了啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己写一个过程就可以了。比如:type TYourClass = class private FTimer: TTimer; procedure YourTimer(Sender: TObject); public constructor Create; destructor Destroy; override; end;constructor TYourClass.Create;beginFTimer := TTimer.Create(nil);FTimer.Interval := 1000;FTimer.Enabled := True;FTimer.OnTimer := YourTimer;end;destructor TYourClass.Destroy;beginFTimer.Free;inherited;end;procedure TYourClass.YourTimer(Sender: TObject);begin ShowMessage('Hello, world!');end; 没有窗口可以创建的,只不过析构时要自己释放。因为没有Owner 那也未必,如果Owner设为Application,一样不要自己释放。当然我写的这个类,没有Owner,只能自己创建,自己释放。 使用windows api——settimer,killtimer,处理WM_TIMER即可。可以参考《Delphi深度历险〉 同意chechy(chechy),如果你有<DELPHI5开发人员指南>可以看一看640页上的组件例子 "window 的消息机制是建立在窗口之上的,如果没有窗口就不能建立消息循环,所以没有窗口就不能使用timer控件" 以上观点正确吗? chechy(chechy)的类在form中可以调用成功,但没有form就不行了,虽然不报错但根本没有触发timer事件,及无法建立消息循环,你能在项目文件中成功调用你的类吗?即整个工程只有一个项目文件,如果能成功请帖出整个文件,谢谢,另加100分! 好了,下面的程序没有窗口,在显示5个ShowMessage后,自动退出,只有一个dpr文件,没有Form文件。你看看吧。上面的观点真的挺搞笑。program TestTimer;uses Forms, Dialogs, ExtCtrls;{$R *.res}type TYourClass = class private FTimer: TTimer; FCount: Integer; procedure YourTimer(Sender: TObject); public constructor Create; destructor Destroy; override; end;var TestBool: Boolean = False;constructor TYourClass.Create;begin FTimer := TTimer.Create(nil); FTimer.Interval := 1000; FTimer.Enabled := True; FTimer.OnTimer := YourTimer;end;destructor TYourClass.Destroy;begin FTimer.Free; inherited;end;procedure TYourClass.YourTimer(Sender: TObject);begin ShowMessage('Hello, world!'); Inc(FCount); if FCount = 5 then TestBool := True;end;var a: TYourClass;begin Application.Initialize; a := TYourClass.Create; while not TestBool do Application.ProcessMessages; a.Free;end. 在TTimer.Create中constructor TTimer.Create(AOwner: TComponent);begin inherited Create(AOwner); FEnabled := True; FInterval := 1000; FWindowHandle := Classes.AllocateHWnd(WndProc);end;窗口已被TTimer自己建了 用RAVE的制作报表 select 日期 from 表单1后的问题请问如何实现呀? 高手帮忙呀!!!!! 一个很郁闷的问题 怎么判断OLEContainer是不是空的? 我用Directshow做了个播放器,但有时缺各中视频的解码器,不知在娜有下载,如何打包? delphi如何做出类VC的界面 如何显示TTreeView中的一项 调用word后,怎么样把修改过的文档再保存回来!高手帮忙!送20分 求教,急!!! 关于系统实现方案的问题,有经验的大虾帮忙啊!!! 新版简直是垃圾! 强烈建议大家发EMAIL给版主要求改回原版 !! 关于Pascal语言,问题3
type
TYourClass = class
private
FTimer: TTimer;
procedure YourTimer(Sender: TObject);
public
constructor Create;
destructor Destroy; override;
end;constructor TYourClass.Create;
begin
FTimer := TTimer.Create(nil);
FTimer.Interval := 1000;
FTimer.Enabled := True;
FTimer.OnTimer := YourTimer;
end;destructor TYourClass.Destroy;
begin
FTimer.Free;
inherited;
end;procedure TYourClass.YourTimer(Sender: TObject);
begin
ShowMessage('Hello, world!');
end;
当然我写的这个类,没有Owner,只能自己创建,自己释放。
可以参考《Delphi深度历险〉
Forms,
Dialogs,
ExtCtrls;{$R *.res}
type
TYourClass = class
private
FTimer: TTimer;
FCount: Integer;
procedure YourTimer(Sender: TObject);
public
constructor Create;
destructor Destroy; override;
end;var
TestBool: Boolean = False;constructor TYourClass.Create;
begin
FTimer := TTimer.Create(nil);
FTimer.Interval := 1000;
FTimer.Enabled := True;
FTimer.OnTimer := YourTimer;
end;destructor TYourClass.Destroy;
begin
FTimer.Free;
inherited;
end;procedure TYourClass.YourTimer(Sender: TObject);
begin
ShowMessage('Hello, world!');
Inc(FCount);
if FCount = 5 then
TestBool := True;
end;var
a: TYourClass;
begin
Application.Initialize;
a := TYourClass.Create;
while not TestBool do
Application.ProcessMessages;
a.Free;
end.
constructor TTimer.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FEnabled := True;
FInterval := 1000;
FWindowHandle := Classes.AllocateHWnd(WndProc);
end;窗口已被TTimer自己建了