Autor |
Beitrag |
klezmor
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Do 13.10.05 16:41
- Ich will ein Programm schreiben, dass alle paar minuten einen befehl ausführt, es sollte allerdings keine graphische Oberfläche besitzen. Anfangs habe ich mit dem Befehl sleep gearbeitet, dieser scheint jedoch nicht sehr geeignet, da das Programm öfters abstürzte.
gibt es so etwas wie einen nicht visuellen timer, ich könnte ja z.B. zur Laufzeit mit dem Befehl: timer1:=ttimer.create(application); einen Timer erstellen, aber wo schreibe ich nun die routine hinein, die alle paar minuten ausgeführt werden soll?
- Noch eine weitere Frage, wie kann ich eine Routine zu einer bestimmten systemzeit aufrufen? Den Befehl, der mir die Aktuelle Zeit ausgibt kenne ich.
Bisher durchlief mein Programm eine endlosschleife, die durch einen sleep befehl abgebremst wurde und dann die sysstemzeit mit der von mir angegebenen zeit verglich. Dies scheint mir jedoch sehr ressourcenkostspielig zu sein, und das Programm hatte auch eine sehr starke cpu auslastung. Könnte man dies nicht irgendwie ereignisorientierter lösen, so wie bei einem buttonklick?
MFG Klezmor
Moderiert von Tino: List- und Delphi-Tags hinzugefügt.
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Do 13.10.05 16:47
1. DU schreibst dir eine methode die genauso aufgebaut ist wie die die normalerweise vorgegeben ist OnTimer oder so und bindest sie per Timer.OnTimer an...
2.Evtl. könntest du Hooks per WinAPI auslegen oder ein Ereignis in den Windows Taskplaner eintragen lassen.
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 13.10.05 16:51
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 16.10.05 23:43
Timer in einer Konsolen-Anwendung: www.luckie-online.de...imer_in_Konsole.html
@digi_c: Was hat denn das mit Hooks zu tun?
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: So 16.10.05 23:53
@ luckie: ne frage zu dem code bei dem link. wozu wird der PMethodPointer auf den TMethodPointer definiert? denn der kommt sonst nirgendwo mehr vor...
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.10.05 00:30
Meinst du das hier:
Delphi-Quelltext 1:
| PMethodPointer = ^TMethodPointer; |
Angewohntheit.
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mo 17.10.05 13:59
genau das mein ich. hat ja keine bedeutung für das programm oder?
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mo 17.10.05 14:02
Amateur hat folgendes geschrieben: | genau das mein ich. hat ja keine bedeutung für das programm oder? |
doch, man hat den typisierten pointer nämlich schon definiert, wenn man den mal brauchen sollte
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.10.05 14:16
In dem Code oben nicht. Aber wie schon retnyg sagt, wen man ihn doch mal braucht, hat man ihn schon. 
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mo 17.10.05 14:22
ok alles klar... war nur aus interesse weil ich auch dabei bin mich in pointer und so einzuarbeiten....
_________________ "Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
|
|
Lossy eX
      
Beiträge: 1048
Erhaltene Danke: 4
|
Verfasst: Mo 17.10.05 14:38
Nennt mich kleinlich aber das Gewurschtel mit den Pointern kann man recht einfach verhindern in dem man Objekt orientiert arbeitet.  Außerdem ist man dann Windowskompatibel falls man vor hat Teile der Quellen wieder zuverwenden oder doch eine GUI braucht.
_________________ Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Mo 17.10.05 21:00
ich versteh den code nicht so ganz, wenn ich einfach nur ne timerroutine benötige, in der z.B. alle 5s etwas ausgeführt wird, brauche ich dann den ganzen code?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 17.10.05 22:09
Probiers aud und lass, weg was du meinst, man weg lassen könnte. 
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 17.10.05 22:16
@2. Geht rein theoretisch über den Task-Scheduler von Windows ... Rein praktisch ist der bei mir deaktiviert, weil man damit zu nette Spielchen treiben kann  Der Taskplaner (auf Windows-Deutsch) ist allerdings nicht trivial zu nutzen und außerdem stark mit Verzögerungen behaftet ...
@1. Wie meine Vorredner sagen: Hatten wir alles schonmal 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: So 18.12.05 15:38
ich hab das immer noch nicht gecheckt, das problem, dass sich ergibt, ist ein allgemeines, das es eigentlich für alle komponenten gibt, wenn ich sie nicht visuell einsetzen will.
so sieht der code bis jetzt aus, und wie geht es weiter?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| program Project2; uses Windows, Messages, SysUtils, Variants, Classes, Controls,forms, Dialogs,ExtCtrls;
var mytimer:ttimer; begin mytimer:=ttimer.Create(application);
end. |
MFG Klezmor.
Moderiert von Christian S.: Delphi-Tags hinzugefügt.
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: Mo 19.12.05 09:20
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| program Project2;
uses Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs, ExtCtrls;
var myTimer: TTimer;
procedure myTimerOnTimer(Sender: TObject); begin end;
begin myTimer := TTimer.Create(Application); myTimer.OnTimer := myTimerOnTimer; end. |
Ich kann's gerade nicht testen aber ich glaube das dürfte funktionieren.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 19.12.05 11:15
FaTaLGuiLLoTiNe hat folgendes geschrieben: | Ich kann's gerade nicht testen aber ich glaube das dürfte funktionieren. |
Das kann nicht funzen, weil OnTimer ein TNotifyEvent ist, dass als Procedure of object deklariert ist.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Mo 19.12.05 21:45
ja geht leider wirklich net.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 20.12.05 14:34
Dann kann ich dich nur an die FAQ INCOMPATIBLE METHOD POINTER verweisen  Ansonsten hilft hier ein Blick in die Object Pascal Reference (Teil der DOH) ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
klezmor 
      
Beiträge: 558
delphi 6 personal delphi 2005 personal
|
Verfasst: Fr 23.12.05 00:11
Ich habe, versucht das in die tat umzusetzen, aber es funktioniert einfach nicht.
Kann mir den niemand einfach mal ein Beispiel zeigen, welches ich dann nachvollziehen könnte?
oder ist das so schwer?
|
|