AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Arbeiten mit Timer

Ein Thema von delphi-projekt · begonnen am 7. Mär 2009 · letzter Beitrag vom 14. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
delphi-projekt
(Gast)

n/a Beiträge
 
#1

Arbeiten mit Timer

  Alt 7. Mär 2009, 23:51
Hallo,
ich habe folgendes Problem ich habe verschiedene checkboxen und
diese sollen immer in einer bestimmten Zeit gewählt werden. Die Zeit möchte ich in
ein Edit feld eingeben.

Also ich gebe in ein Edit feld zB 10 sekunden ein dann soll 10 sekunden lang
eine bestimmte checkbox checked sein.Im 2.edit feld habe ich auch eine zeit eingegeben und
nachdem die 10 sekunden um sind soll die nächste bestimmte checkbox checked sein
für die 2 zeit dann
usw.

ich hab schon so viel versucht aber nix klappt so wie ich das will.

Bitte ich brauch dringend hilfe.
Am besten ist wenn ihr mir einen kroben quelltext erstellt.

Danke
  Mit Zitat antworten Zitat
Whatever

Registriert seit: 7. Jan 2009
Ort: 127.0.0.1
102 Beiträge
 
#2

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 00:34
Die Eigenschaft Checked ist eine boolsche Variable d.h. sie kann nur zwei verschiedene Werte annehmen (true/false).
Diese Werte kannst Du nun mit not einfach umkeheren also wird not Checkbox1.Checked, wenn sie vorher aktiviert, ist zu false.
So kannst Du im OnTimer Event zwei Zeilen schreiben (für jede Checkbox eine) in der der jeweilige Wert umgekehrt wird.

Delphi-Quellcode:
CheckBox1.Checked := not CheckBox1.Checked;
CheckBox2.Checked := not CheckBox2.Checked;
mfg Whatever

//Edit: Sorry hab grad gemerkt, dass Du das ja mit zwei verschiedenen Zeiten machen willst. Also aktivierst Du einfach nach ablauf des ersten Timers den zweiten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 00:59
um wieviele Checkboxen handelt es sich denn?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 01:12
Hallo,

du musst das über das OnTimer Ereignis des Timer´s regeln..

Den Quelltext habe ich nicht geprüft, nur so zusammen getippt...

Delphi-Quellcode:

zB. Button.Click oder irgendwas anderes als Start...

begin
  Timer1.Interval := StrToInt(Edit1.Text); //Zeit dem Timer 1 zuweisen
  Timer2.Interval := StrToInt(Edit2.Text); //Zeit dem Timer 2 zuweisen

  Timer1.Enabled := True;

  CheckBox1.Checked := True;
end;

// Dann im OnTimer Ereignis

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  CheckBox1.Checked := False;
  Timer2.Enabled := true;
  CheckBox2.Checked := True;
end;


usw. usw. usw.
Sollten es viele Checkboxn sein, könntest Du dir gedanken über eine Schleife oder eine If.Abfrage machen.

Du müsstest mal zeigen, was Du schon hast, und genau erklären was Du damit erreichen willst.

Gruß

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 01:59
es läßt sich auch alles über einen Timer regeln.

- entweder einen Timer mit dem kleinsten gemeinsamen Teiler laufen lassen und dann die schritte für jedes Intervall zählen

- oder im Timerereignis einfach .Intervall ändern.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Dunkel
Dunkel

Registriert seit: 26. Mär 2007
Ort: Klingenstadt
541 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 02:12
Zitat von himitsu:
es läßt sich auch alles über einen Timer regeln.
Was auf jeden Fall besser ist! TTimer werden von Windows zur Verfügung gestellt, und dessen Ressourcen sind begrenzt. Es wäre schon schade, wenn Du mit zig-Checkboxen, und entsprechend vielen Timern, irgendwann eine EOutOfResource-Exception um die Ohren geschlagen bekommst...
Auch wenn die Ressourcen eines modernen Rechners/Betriebssystems sehr großzügig zu sein scheinen, sollte man immer möglichst sparsam mit ihnen umgehen; es gibt nämlich noch eine Welt außerhalb Deiner Executable...
Es ist zu wahr um schön zu sein...
  Mit Zitat antworten Zitat
delphi-projekt
(Gast)

n/a Beiträge
 
#7

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 12:05
Danke erstmal für die Antworten, haben mir schon etwas weiter geholfen.

Also mein Programm sieht wie folgt aus.

Ich habe einen 25 poligen druckerstecker am computer angeschlossen.
Daher habe ich 25 checkboxen. Von denen benötige ich nur die Pole 1,3,7,5,9

Delphi-Quellcode:
GetPortVal(port+2,@b,1);
cbStrobe.checked:=false;
GetPortVal(port,@b,1);
cbData3.checked:=true;
GetPortVal(port,@b,1);
cbData5.checked:=true;
GetPortVal(port,@b,1);
cbData7.checked:=true;
Wenn diese Reinfolge drin ist passiert ein ereignis und das möchte ich auch
noch mit den anderen zusammenstellungen machen. aber halt immer bloß für ein
bestimmtes zeitinterval. also geb ich in das edit feld z.b 10s ein dann soll
10s lang dieser befehl ausgeübt werden. insgesamt habe ich 4 edit felder weil
es 4 verschiedene zusammenstellungen gibt.

benötige ich jetzt 4 verschiedene Timer?
Und wie kann ich die Zeit am besten formatieren?

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Felix015

Registriert seit: 2. Okt 2008
16 Beiträge
 
#8

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 20:03
Äh nur mal so als Frage:
Wenn du den timer interval auf die Zahl setzt die eingegeben wurde zählst man doch keine sekunden oder?
Muss man nicht im Sekundentakt eine Variable hoch zählen und wenn diese bei der eingegebenen Zahl angekommen ist aufhören bzw die checkboxen umstellen??
Du brauchst nicht 4 Timer es reicht ein Timer und eine Variable typ integer in denen du hochzählst wo du gerade dran bist....
Delphi-Quellcode:
var zeit : integer; //wird nachher der Wert reingeschrieben bis zu dem gezählt werden soll
    zähl : integer = 1;
    modus : intger = 1;
timerprocedure;
begin
if modus = 1 then
begin
Inc(Zähl);
if Zähl = zeit then
begin
...
//checkboxen umstellen
Inc(Modus)
end;
end
else if modus = 2 then
begin
....
end;
end;
Zitat:
Und wie kann ich die Zeit am besten formatieren?
Was meinst du damit??
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 20:15
Das mit den Sec. stimmt. Man könnte allerdings den Interval ja auch setzten.

Delphi-Quellcode:
zB. Button.Click oder irgendwas anderes als Start...

begin
  Timer1.Interval := 1000 * StrToInt(Edit1.Text); //Zeit dem Timer 1 zuweisen
  Timer2.Interval := 1000 * StrToInt(Edit2.Text); //Zeit dem Timer 2 zuweisen

  Timer1.Enabled := True;

  CheckBox1.Checked := True;
end;
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Whatever

Registriert seit: 7. Jan 2009
Ort: 127.0.0.1
102 Beiträge
 
#10

Re: Arbeiten mit Timer

  Alt 8. Mär 2009, 20:27
Können denn auch zwei CheckBoxen separat Checked sein oder werden alle nacheinender geschaltet?
Wenn mehrere separat Checked sein können brauchst Du meherere Timer wenn nicht reicht einer.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz