[Delphi 6] "On-the-fly" TTimer wil niet *

Pagina: 1
Acties:

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Ik wil dus Timers maken zonder dat ze op je Form staan... Je kent het wel:
Delphi:
1
Timer := TTimer.Create;


Dat soort gein...

Met behulp van Creepy ( O+ ) heb ik een beetje geleerd om functies aan Events toe te kennen... Op zich wil dat wel, maar nu heb ik problemen met die Timer...

Ik heb de volgende code:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, QExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TBlaat = class(TObject)
  public
    procedure Doe_Iets(Sender: TObject);
  end;

var
  Form1: TForm1;
  Blaat: TBlaat;
  Timer: TTimer;

implementation

{$R *.dfm}

procedure TBlaat.Doe_Iets(Sender: TObject);
begin
  ShowMessage('Blaat');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Blaat          := TBlaat.Create;
  Timer          := TTimer.Create(self);
  Timer.Enabled  := False;
  Timer.OnTimer  := Blaat.Doe_Iets;
  Timer.Interval := 1000;
  Timer.Enabled  := True;
end;

end.


Maar waarom werkt dit niet? :/ Als het goed is, zou ie gewoon om de 1000 miliseconden een berichtje moeten geven :( Maar dat doet ie dus niet :X :'(

En ik zou niet weten waarom :/

[ Voor 3% gewijzigd door Osiris op 18-01-2003 13:20 . Reden: :* @ whoami :P ]


  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

Vervang QExtCtrls in je USES lijst eens naar ExtCtrls :)

Volgens mij was QExtCtrls van de CLX en niet van de VCL

...beter bekend als AMFan


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Waarom heb je op zowel regel 17 als 20 een public declaration staan :? Lijkt me overbodig.
(cmiiw)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Delpix schreef op 18 januari 2003 @ 12:37:
Vervang QExtCtrls in je USES lijst eens naar ExtCtrls :)

Volgens mij was QExtCtrls van de CLX en niet van de VCL
W00000000t!!!

_O_ d:)b

Okay, dat het ook nog daar mee te maken kon hebben wist ik niet :X Misschien is het nu een goeie tijd om dat te leren? :? :/ Khad idd TTimer gewoon ff in de Help opgezocht en de Unit die hij daar gaf erbij gezet...
Wat is het verschil dan? (Behalve dat de ene het wel en de andere het niet doet :P )

  • Osiris
  • Registratie: Januari 2000
  • Niet online
drm schreef op 18 januari 2003 @ 12:37:
Waarom heb je op zowel regel 17 als 20 een public declaration staan :? Lijkt me overbodig.
(cmiiw)
Ehm, ja, dat weet ik ook niet 100%, maar die ene public hoort dan toch bij de Class TForm en de andere public hoort bij TBlaat? :?

  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

Waarschijnlijk had je in de help gekeken bij de CLX TTimer. Met de CLX kan je progies maken die je ook onder Linux kan compileren met behulp van Kylix (linux delphi). VCL is alleen voor Windows. Als je je cursor op TTimer plaats in de code editor en je druk op F1, krijg je een keuze scherm voor de CLX TTimer en een VCL Timer. Selecteer dus altijd de VCL versie (Als je 2x keer TTimer ziet zonder dat er CLX of VCL bijstaat, is meestal de onderste de VCL versie :))

...beter bekend als AMFan


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Delpix schreef op 18 January 2003 @ 12:43:
Waarschijnlijk had je in de help gekeken bij de CLX TTimer. Met de CLX kan je progies maken die je ook onder Linux kan compileren met behulp van Kylix (linux delphi). VCL is alleen voor Windows. Als je je cursor op TTimer plaats in de code editor en je druk op F1, krijg je een keuze scherm voor de CLX TTimer en een VCL Timer. Selecteer dus altijd de VCL versie (Als je 2x keer TTimer ziet zonder dat er CLX of VCL bijstaat, is meestal de onderste de VCL versie :))
Aha, DAT was dus het verschil! _O_ Thnx, -1 n00b voor Osiris :+ Nog een lange weg te gaan, magoed :X :P

  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 22:48
overigens maak je een timer zelf aan en zorg dan ook dat je de timer ook zelf vrijgeeft met Free. Dat voorkomt eventuele memory leaks
Osiris schreef op 18 January 2003 @ 12:39:
[...]

Ehm, ja, dat weet ik ook niet 100%, maar die ene public hoort dan toch bij de Class TForm en de andere public hoort bij TBlaat? :?
Dat klopt wat je zegt. De eerste hoort bij de class van TForm en de andere TBlaat.

[ Voor 56% gewijzigd door Just_a_Gamer op 18-01-2003 12:51 ]


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Just_a_Gamer schreef op 18 January 2003 @ 12:48:
overigens maak je een timer zelf aan en zorg dan ook dat je de timer ook zelf vrijgeeft met Free. Dat voorkomt eventuele memory leaks
Ja, maar dat is bij mij pas een bijzaak voor later ;) Komt wel, wanneer de tijd rijp is :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Osiris:
Ehm, ja, dat weet ik ook niet 100%, maar die ene public hoort dan toch bij de Class TForm en de andere public hoort bij TBlaat? :?

:o zit wat in...
dat krijg je met brakke indentation :P

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Osiris
  • Registratie: Januari 2000
  • Niet online
drm schreef op 18 January 2003 @ 12:51:

[...]

:o zit wat in...
dat krijg je met brakke indentation :P
Translations

indentation [the ~] (incision)
snee [de ~]
snede [de ~]
inkeping [de ~ (v) ,de ~]
jaap [de ~ (m)]
insnijding [de ~ (v) ,de ~]
Je bedoeld m'n uitlijning? Kheb gewoon het voorbeeld van Delphi zelf gevolgd hoor :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Mja, ik zat niet goed te kijken ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Osiris
  • Registratie: Januari 2000
  • Niet online
drm schreef op 18 januari 2003 @ 13:00:
Mja, ik zat niet goed te kijken ;)
D'r zou ook highlighten moeten zijn voor [code=Delphi], maar helaas, die is er niet :'(

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:42
Osiris schreef op 18 January 2003 @ 12:52:
[...]


[...]


Je bedoeld m'n uitlijning? Kheb gewoon het voorbeeld van Delphi zelf gevolgd hoor :)


Ja...
't is toch wel beter moest je nu een witregel tussen die 2 classes hebben. :P

https://fgheysels.github.io/


  • Osiris
  • Registratie: Januari 2000
  • Niet online
whoami schreef op 18 January 2003 @ 13:17:

[...]


Ja...
't is toch wel beter moest je nu een witregel tussen die 2 classes hebben. :P
Dat zou eventueel nog kunnen ja :)

edit:
Kvind het zo wel lelijk.. :/

[ Voor 9% gewijzigd door Osiris op 18-01-2003 13:21 ]


  • Just_a_Gamer
  • Registratie: November 2001
  • Laatst online: 22:48
Osiris schreef op 18 January 2003 @ 13:19:
[...]

Dat zou eventueel nog kunnen ja :)

edit:
Kvind het zo wel lelijk.. :/
Het mag volgens jou wel lelijker zijn maar voor anderen is het leesbaarder :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Ik zou persoonlijk liever de 'public' en 'private' ook indenten:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);

   private
      { Private declarations }
   public
      { Public declarations }
end;

TBlaat = class(TObject)
    public
       procedure Doe_Iets(Sender: TObject);
end;


:? alle witregels worden er tussenuit gehaald bij [code=delphi], en bovenaan en onderaan erbij geplakt ...

html dan maar:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<pre style="background-color:#ffffff;padding:5px;">TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);

   private
      { Private declarations }
   public
      { Public declarations }
end;

TBlaat = class(TObject)
   public
      procedure Doe_Iets(Sender: TObject);
end;</pre>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1