Autor Beitrag
klezmor
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: Do 13.10.05 16:41 
  1. 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?
  2. 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 user profile iconTino: List- und Delphi-Tags hinzugefügt.
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: 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



BeitragVerfasst: Mo 17.10.05 00:30 
Meinst du das hier:
ausblenden Delphi-Quelltext
1:
PMethodPointer = ^TMethodPointer;					

Angewohntheit.
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 17.10.05 14:02 
user profile iconAmateur 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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



BeitragVerfasst: Mo 17.10.05 22:09 
Probiers aud und lass, weg was du meinst, man weg lassen könnte. :roll:
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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?

ausblenden 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);

//hier jetzt Onmytimer hin oder wie funzt das?



end.


MFG Klezmor.

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt.
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: Mo 19.12.05 09:20 
ausblenden 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
 // Hier der Code der im OnTimer - Event ausgeführt werden soll.
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 19.12.05 11:15 
user profile iconFaTaLGuiLLoTiNe 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: Mo 19.12.05 21:45 
ja geht leider wirklich net.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 20.12.05 14:34 
Dann kann ich dich nur an die Suche in: Delphi-Forum, Delphi-Library 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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?