Avatar billede musicboy Nybegynder
24. januar 2003 - 13:28 Der er 3 kommentarer

Eventhandlers?

Jeg har lavet et component, der bruger TTimer og dens OnTimer-event - men for at kunne sætte den, var jeg nød til at create mit eget component og sætte timers event til min egen, hvilket ta'r unødig hukommelse op, og ser lidt sjusket ud - hvad kan jeg gøre, så jeg ikke er nød til at oprette mit component 'chatx' inde i mit component?

constructor TChat.Create(Nick, Server, Room: String);
begin
  if (Nick <> '') and (Server <> '') and (Room <> '') then
    ChatX := TChat.Create('','','');
  FNick := Nick;
  FServer := Server;
  FRoom := Room;
  HttpClt := TNMHTTP.Create(nil);
  Timer := TTimer.Create(nil);
  Timer.Enabled := False;
  Timer.Interval := 5000;
  Timer.OnTimer := ChatX.TimerOnTimer;
end;
Avatar billede martinlind Nybegynder
25. januar 2003 - 13:44 #1
Nedarvning måske ??
Avatar billede musicboy Nybegynder
25. januar 2003 - 14:46 #2
Hov... Jeg behøver jo ikke engang create min egen class ;D
Sådan:

constructor TChat.Create(Nick, Server, Room: String);
begin
  FNick := Nick;
  FServer := Server;
  FRoom := Room;
  HttpClt := TNMHTTP.Create(nil);
  Timer := TTimer.Create(nil);
  Timer.Enabled := False;
  Timer.Interval := 5000;
  Timer.OnTimer := TimerOnTimer;
end;
Avatar billede doctorseb Nybegynder
25. januar 2003 - 14:50 #3
Du skal ikke lave en "ChatX" - bare sæt Timer.Ontimer til din TimerOnTimer metode (hvilket i min bog er en ganske fornuftig løsning) i constructoren.

  Timer := TTimer.Create(nil);
  Timer.Enabled := False;
  Timer.Interval := 5000;
  Timer.OnTimer := TimerOnTimer; // == self.TimerOnTimer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester