Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - timer erstellen?
neuling82 - Mi 30.07.03 14:21
Titel: timer erstellen?
Hey Leute, ich habe versucht in meine Selbstgeschriebene Komponente einen Timer zu initialisieren... der Code sieht aus wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| type TmyCompo = class(Tcomponent) private timer1: TTimer; procedure timer1timer(sender: TObject); procedure xy; end;
implementation
procedure TmyCompo.xy; begin timer1:=TTImer.create; timer1.intervall:=1000; timer1.ontimer:=timer1timer; timer1.enabled:=true; end;
procedure TMyCompo.timer1timer; begin *********HIER SPRINGT ER NIE REIN!!!!*********** warum?? end; |
warum springt er nie in die Procedure TMyCompo.timer1timer rein??
Tana´Ri - Mi 30.07.03 14:27
hast wohl insertControl(timer1) vergessen !
neuling82 - Mi 30.07.03 14:29
wo muss dass denn eingefügt werden? Was macht es denn genau? Werde da aus der Onlinehilfe nicht schlau...
Tana´Ri - Mi 30.07.03 14:32
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TmyCompo.xy; begin timer1:=TTImer.create; timer1.intervall:=1000; timer1.ontimer:=timer1timer; timer1.enabled:=true; insertConrol(timer1); end; |
denk daran bevor du das Timerobjekt wieder frei gibst das Control zu entfernen, d.h.
Delphi-Quelltext
1: 2: 3: 4:
| ... z.b. im OnDestroy
removeControl(timer1); timer1.Free; |
Moderiert von
Marc: Delphi-Tags hinzugefügt.
neuling82 - Mi 30.07.03 14:36
der Compiler sagt er kenne diesen Befehl nicht, muss ich noch eine Unit einfügen, denn ich schreiben wie gesagt eine Komponente der Klasse TComponent) Diese Komponente ist nicht visual!
Tana´Ri - Mi 30.07.03 14:46
sorry hatte ich gar keine acht in diesem fall muss es natürlich
insertComponent(timer1);
removeComponent(timer1);
heißen :)
neuling82 - Mi 30.07.03 16:45
ich habe jetz ne ganze weile herumgebastelt, es klappt einfach nicht! Liegt es evtl. daran, dass das erreignis onTimer garnicht aufgerufen wird??
RFZ - Mi 30.07.03 18:01
Titel: selbes Problem
Moin, ich hab genau das selbe Problem.
Ausserdem würd ich gern auf ne eigene Klasse für den Timer verzichten, da ich nur einen brauche...
Ich hoffe jemand weiss Rat...
cu RFZ
N3tw124rd - Do 31.07.03 09:02
Hi,
bei mir sieht es so ähnlich aus...
Ich habe eine Client Komponente created doch das event onError wird nie durchlaufen...
Ich denke das insertControl oder insertcomponent bestimmt der Weg ist.Aber welche Klasse enthält den Befehl ??
Habe classes schon drin da sollte insertcomponent drin sein macht er aber nicht...
MFG N3tw124rd
neuling82 - Do 31.07.03 09:17
Hey, also bei mir klappts jetzt, ich hatte nur die Unit für Linux (Kylix) eingebunden, das geht halt net ..... :wink:
N3tw124rd - Do 31.07.03 09:22
Hi,
habe gemerkt das ich den Befehl im Formular ausführen muß es verläuft auch alles gut die Componente wird im Formular Registriert ...
Die Komponente wird auch wieder schön rausgenommen mit removecomponent...
Aber er fällt immer noch nicht in das onError Event ?!?!
Das ganze sieht folgendermaßen aus...
Ein Formular mit einem Knopf, eine Unit mit meiner ClientSocket kompo...
ich rufe das Create meiner Unit auf in der die ClientSocket-kompo created wird und auch gleich das event zu gewiesen bekommt...
Danach wird im Formular das insertcomponent gemacht...
Mit dem knopf wird zu einer IP außerhalb meiner Addresse connected...
hier sollte er nun in das event springen...
Macht er aber nicht...
Muss man was beachten, beim insertcomponent ?
MFG N3tw124rd
N3tw124rd - Do 31.07.03 09:46
hi,
Ich nochmal hab noch weiter rum probiert...
habe herausgefunde das meine Componente im Components Array mit keinem Namen drin steht...
Dann habe ich einfach den Namen meiner Componente eingesetzt...
Geht aber immer noch nicht...
MFG N3tw124rd
neuling82 - Do 31.07.03 10:20
ich habe das insert Komponent gar nicht verwendet, denn es handelt sich bei mir im eine nicht-visuelle Komponente. Der Timer ist ein Objekt in meinem Hauptobjekt, daher benötige ich diese Befehle nicht. Ich kenne mich mit diesen auch leider nicht aus!
N3tw124rd - Do 31.07.03 10:30
Also bei mir ist die Komponente zwar eine visuelle komponente wird aber in einer unit created...
daher nicht visuelle...
sie steht auch in dem Component-array Components ...
mit ihrem Namen aber das event wird trotzdem nicht ausgelöst...
MFG N3tw124rd
RFZ - Do 31.07.03 13:12
Ich hab mittlerweile alles versucht :( Mit ner eigenen Klasse, mit diesem insertComponent, und nem haufen anderen schmarrn :(
Ich will nur diesen Quelltext möglichst ohne viel extras zum laufen bringen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| program TimerTest; {$APPTYPE CONSOLE} uses SysUtils, Windows, ExtCtrls, Classes;
var Timer: TTimer;
procedure TimerTimer(Sender: TObject); begin WriteLn('bla'); end;
begin Timer := TTimer.Create(NIL); Timer.Interval := 200; Timer.OnTimer := TimerTimer; Timer.Enabled := true; ReadLn; end. |
Ich hoffe jemand kennt die Lösung ....
cu RFZ
N3tw124rd - Do 31.07.03 13:15
versuch es mal mit self und nicht mit NIL weil wenn du NIL machst beim create wird die kompo nicht in das ComponentArray übernommen... und dann kriegst du gar nix...
MFG N3tw124rd
RFZ - Do 31.07.03 13:54
es gibt kein self, da es kein übergeordnetes Objekt gibt, das ist ja schonmal mein erstes Problem...
cu RFZ
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!