16. maj 2002 - 10:29
Der er
5 kommentarer
Tildele en procedure en event
Jeg har en unit med en timer, og opsætningen ser nogenlunde sådan her ud: TEnClass = class private procedure TrigTimer(Sender: TObject); end; var TheTimer: TTimer; Hej: TEnClass; implementation procedure Hej.TrigTimer(Sender; TObject); begin ShowMessage('hej'); end; initialization Hej := TEnClass.Create; TheTimer := TheTimer.Create(nil) TheTimer.OnTimer := Hej.TrigTimer; end. dette er en 'rå'skitse af hvad jeg skal bruge hjælp til... problemet er, at når jeg starter timeren, og intervallet er gået, så 'trigger' den ikke min TrigTimer-procedure... Hvorfor?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
En ting... Initialization Hej := TEnClass.Create; TheTimer := TTimer.Create(nil); <--- ! TheTimer.Interval := 2000; <--- 2sekunder ...
Type TEnClass = Class private procedure TrigTimer(Sender: TObject); end; var TheTimer: TTimer; Hej: TEnClass; implementation procedure TEnClass.TrigTimer(Sender: TObject); begin ShowMessage('hej'); end; Initialization Hej := TEnClass.Create; TheTimer := TTimer.Create(nil); TheTimer.OnTimer := Hej.TrigTimer; End.
Jeg sagde det kun var en skitse... Problemet er ikke simi-kolon-fejl, og triggeren er sat til 30000 ms Problemet er, at den ikke trigger min funktion når tiden er gået
Har du sagt. TheTimer.Enabled := true; ellers kommer der ikke nogen event.
Dette her virker og er testet... Du får en bunke messageboxe tormork -> enable sættes default til true i TTimer.Create unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure FormCreate(Sender: TObject); private public end; TEnClass = class private procedure TrigTimer(Sender: TObject); end; var Form1: TForm1; TheTimer: TTimer; Hej: TEnClass; implementation {$R *.DFM} procedure TEnClass.TrigTimer(Sender: TObject); begin ShowMessage('hej'); end; initialization Hej := TEnClass.Create; TheTimer := TTimer.Create(nil); TheTImer.Interval := 5000; TheTimer.OnTimer := Hej.TrigTimer; end.
Kurser inden for grundlæggende programmering