Entwickler-Ecke

Sonstiges (Delphi) - Countdown zähler im HH:MM:SS Format und Pausierbar


delphineuling - Do 23.02.06 21:33
Titel: Countdown zähler im HH:MM:SS Format und Pausierbar
Hallo,
da wir das im Unterricht noch nicht gemacht haben ich das aber für mein Programm brauche Frage ich jetzt wie man ein Countdown macht.
Einen ganz simplen Countdown hab ich hinbekommen aber ich steig noch nicht ganz da durch.
-Also der Countdown soll im Format HH:MM:SS sein und im Label angezeigt werden.
-Dann würde ich ihn gerne mit einem Button Starten und Pausieren können.
-Am besten so das auf dem Button sich dann die Beschriftungwechselt, also wenn der Countdown läuft soll da Pause stehen und wenn der Countdown im Pause Status ist soll auf dem gleichen Button Countdown Fortführen oder Starten stehen(Wie beim Mediplayer mit Play und Pause).
-Und wieso kann man keinerlei Aktionen mehr machen wen der Countdown läuft?
-Außerdem würde ich gerne die Zeit vorher in einem Label eingeben können, auch am besten in dem Format. Soll ich das dann mit drei Labeln machen also für Stunden Minuten und Sekunden?
-Und ich würde ihn gerne mit einem Button Komplett neu Starten können.
-Das mit den Intervallen hat auch nichts so ganz geklappt. Hab ich die verstellt ginges voll schnell oder total lahm! Woher weiß man was jetzt die richtigen Schritte für Sekunden z.B. ?

Danke euch für Hilfe


inselberg - So 26.02.06 08:03

timer auf 500 stellen, mit button aktivieren deaktiviern


Quelltext
1:
edit1.text:=timetostr(incsecond(strtotime(edit1.text),-1));                    

das wars


delphineuling - Mi 01.03.06 09:45

Das geht leider nicht, da Delphi den Bezeichner "incsecond" nicht kennt!?
Was nun?
Und gibt es noch andere Lösungsvorschläge?


AXMD - Mi 01.03.06 09:48

Welche Delphiversion hast du? D7 und D2005 kennen die Funktion - wie's in früheren Delphiversionen aussieht weiß ich nicht, aber ich glaube, da gibt's diese Funktion noch nicht.

AXMD

PS. Ansonsten mal die Unit DateUtils einbinden


delphineuling - Mi 01.03.06 09:52

Ne ich arbeite mit Delphi 7 Enterprise!
Was soll ich nun machen?


jakobwenzel - Mi 01.03.06 10:46

user profile icondelphineuling hat folgendes geschrieben:
Ne ich arbeite mit Delphi 7 Enterprise!
Was soll ich nun machen?

Wie wärs mit Posts ganz lesen?
user profile iconAXMD hat folgendes geschrieben:
PS. Ansonsten mal die Unit DateUtils einbinden


chrisw - Mi 01.03.06 10:58

Timer1.Interval auf 1000 (Jede Sekunde)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
//Im OnCreate Event, um eine Startzeit festzulegen
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption := '01:01:59';  //Einfach mal ein Startwert
end;
//im Ontimer Event
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := TimeToStr(StrToTime(Label1.Caption)-0.000001); //Eine Sekunde abziehen
end;
//Im OnClick Event des Button
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Timer1.Enabled then Button1.Caption := 'Start' 
  else Button1.Caption := 'Stop'; //Initialisieren mit 'Stop'
  Timer1.Enabled := not Timer1.Enabled;
end;


Vera - Mi 01.03.06 11:24
Titel: Re: Countdown zähler im HH:MM:SS Format und Pausierbar
user profile icondelphineuling hat folgendes geschrieben:
Einen ganz simplen Countdown hab ich hinbekommen aber ich steig noch nicht ganz da durch.

Warum hast Du uns Deinen Quelltext nicht gepostet? Dann hätte man (oder Frau :-D) darauf aufbauen können.


Fabian W. - Mi 01.03.06 12:18

Hallo, ka ob du jetzt noch ein Prob mit dem og Code hast, aber ich wandle Millisekunden (secunden * 1000) immer mit folgender Function um:

Delphi-Quelltext
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:
function MSecToDMS(MSec: int64):string;
var
AllesInSekunden: int64;
AllesInMinuten: integer;
RestMinuten: integer;
RestSekunden: integer;
Stunden: integer;
begin
result := '00:00:00 h';
  try
  AllesInSekunden := MSec div 1000;  //MilliSekunden in Sekunden umrechen
  AllesInMinuten := AllesInSekunden div 60;   //Alle Minuten rausholen
  RestSekunden := AllesInSekunden - AllesInMinuten * 60;  //Restliche Sekunden berechen
  Stunden := AllesInMinuten div 60;   //Alle Stunden rausholen
  RestMinuten := AllesInMinuten - Stunden * 60;   //Restliche Minuten berechnen

  if (Stunden <= 0) and (RestMinuten <= 0) then
    begin
    result := formatfloat('00',RestSekunden)+' sec';
    exit;
    end;

  if Stunden <= 0 then
    begin
    result := formatfloat('00',RestMinuten)+':'+formatfloat('00',RestSekunden)+' min';
    exit;
    end;

  result := formatfloat('00',Stunden)+':'+formatfloat('00',RestMinuten)+':'+formatfloat('00',RestSekunden)+' h';
  except
  result := '00:00:00 h';
  end;
end;

In älteren D-Versionen musst du ggf das MSec: int64 durch MSec: integer ersetzen


mfg

Fabian Walz


delphineuling - So 12.03.06 17:19

Irgendwie komm ich noch nicht so richtig weiter.
könnt ihr mir nochmal so einen Timer bauen(einen simplen bitte) und dann wenn der Countdown abgelaufen ist soll das ergebnis ausgegeben werden im label und die caption des buttons soll wieder auf start sein.
Der erste quellcode der reingeschrieben wurde war schon ganz gut aber da ich mich kein bisschen mit dem programmieren von timer auskenne bin ich nicht weitergekommen.
Bitte helft mir ich peil so langsam nicht mehr durch!


Fabian W. - So 12.03.06 17:38

Versthst du die Komponente nicht oder hängst wo anders?
Grundsätzlich: Mit Interval legst du fest in welchen Zeitabständen der Code im onTimerevent wiederholt wird. Mit enabled := true / false aktivierst / stoppst du dieses verhalten.


delphineuling - So 12.03.06 17:56

ja genau diese ganzen komponenten und bezeichnungen kenn ich net und hab ich noch nie mit gearbeitet kannst du vielleicht einen countdown so machen das der recht einfach und simpel ist und das man den auch mit grundkenntnissen verstehen erklären und verändern kann?
Hab ich eigentlich vorher mal erwähnt das ich die zeit gerne in einem Label eingeben würde?
Wäre nett wenn mir da jemand sowas zusammen bauen könnte.


Fabian W. - So 12.03.06 18:35

Zusammenbauen, damit du nur noch C & P machen musst ist eigtnlich nicht so Sinn der Sache. Ich nehmen mal an dass du dir nicht im Klaren darüber bist für was du am besten welche Komponente verwendest. is klar ging mir am Anfang auch so ;-).

Die Zeit in einem Label eingeben is nich - TLabel is nur zur ausgabe (über .Caption)
Eingeben kannst du was in ein TEdit. Die Eingabe ließt du mit .Text aus.
Den TTimer hba ich dir oben schon erklärt und Buttons müsstest du eigtnlich soweit erstehen das's geht. Also:
In das Edit kommt die Zeit wie lange er runterzählen soll zB 5 sec also 5.
Du ziehst folgende Kompos aufs Formuar: TButton, Tedit, TLabel & TTimer (je 1 mal)
Beim Timer stellst du die Eigenschaft Enabled im Objektinspektor auf false damit er nicht runterzählst bevor du den Button drückst.
In das OnTimerEvent kommmt folgendes: Zurest deklarierst du eine GLOBALE Variable (count: integer).
Dann erhöhst du den Wert von Count in jedem OnTimerevent um den Interval des Timers.
(Alle Zeitangeben werden in msec verarbeitet!!)
Dann musst du die zeit ausgeben: Also im Label die verbleibende Zeit: eingabe aus edit * 1000 (für die msec) - die schon vergangene zeit (also count). Wenn du das im DMS Format haben möchtest musst du den msec wert vorher meiner Funktion (s.o.) übergeben.
Zu guter Letzt muss im TimerEvent auch noch geprüft werden ob die Zeit vergangen ist:

Delphi-Quelltext
1:
2:
3:
4:
if count >= strtoint(Edit.text) then begin 
Edit.enabled := true;
Timer.enabled = false;
HIER MUSS DANN DER CODE REIN DER AUSGEFÜHRT WERDEN SOLL WENN RUNTERGEZÄHLT IST  end;


Nun fehlt nur noch der Button der das ganze ins Rollen bringt:
Er muss...
...die Variable Count zurücksetzten count := 0
...das Editfeld sperren .enabled := false;
...den Timer aktivieren .enabled := true


So ich hoffe dir hat das geholfen, das ganze müsste von der Logik her funzen.
Entschuldige die Schreibfehler ich habe den Text sammt Überlegung innerhalb von 5 min durchgeleiert ^^

mfg

Fabi


delphineuling - So 12.03.06 19:40

Also mein Quelltext sieht jetzt so aus ich habe den einen befehl auch FormCreate rausgenomen weil nicht beim starten des programms der countdown starten soll sondern wenn ich auf den Button klicke also hab ich es in Button klick gemacht.
Aber der gibt jetzt imer so einen fehler aus und nichts läuft mehr hab schon rumprobiert aber geht nicht könnt ihr da helfen?


Delphi-Quelltext
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:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
procedure TForm1.Button1Click(Sender: TObject);
 var mode, mmh:integer;
begin
 mmh:= Random(100) + 1;
 mode:=random(2)+1;
begin
  Label7.Caption := '00:00:59';  //Einfach mal ein Startwert
end;
begin
  if Timer1.Enabled then Button1.Caption := 'Start'
  else Button1.Caption := 'Stop'; //Initialisieren mit 'Stop'
  Timer1.Enabled := not Timer1.Enabled;
end;


if listbox1.Items.Count=0 then
 begin
  showmessage('Geben Sie bitte Namen ein!');
 end
else if listbox4.items.Count=0 then
 begin
  showmessage('Geben Sie Mengenangaben ein!');
 end
else if listbox2.items.Count=0 then
 begin
  showmessage('Geben Sie Getränke ein!');
 end
  else if listbox3.items.Count=0 then
 begin
  showmessage('Geben Sie Kurze ein!');
 end
else
 begin


If RadioButton1.Checked Then //ausgang1 zu 75%
  If mmh > 25 Then
    begin
      if mode=2 then
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !';
     end
  else
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !';
     end;
      If RadioButton2.Checked Then //ausgang1 zu 50%
  If mmh > 50 Then
    begin
      if mode=2 then
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !';
     end
  else
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !';
     end;
  If RadioButton3.Checked Then //ausgang1 zu 25%
  If mmh > 75 Then
    begin
      if mode=2 then
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss ' + listbox4.Items[random(listbox4.Items.Count)]+ ' ' + listbox2.items[random(listbox2.Items.Count)]+ ' trinken !';
     end
  else
     begin
      label17.Caption:='Wer muss Trinken? ' + listbox1.Items[random(listbox1.items.count)]+' muss einen Kurzen ' + listbox3.items[random(listbox3.Items.Count)]+ ' trinken !';
     end;
 end;
 end;
 end;
 end;
 end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Label7.Caption := TimeToStr(StrToTime(Label7.Caption)-0.000001);
end;

end.


Hab einfach mal so ziemlich alles reingemacht vielleicht liegt es ja auch an was anderem oder so


Delete - So 12.03.06 21:13

wie gewünscht ein beispiel. einfach einen button als button1 und einen ttimer als timer1 auf ein formular und schon läuft dein count down.

ups, beinahe hätt ich es noch vergessel, ein tpanel brauchste auch noch, benant als MSG.


Delphi-Quelltext
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:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
unit uTimerTest;

interface

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

 const cZeit = '00:02:00'; //Zeit bis Form geschlossen wird.

 type tZeit = record
  Stunde, Minute, Sekunde: integer;

  class operator implicit(value: string): tZeit;
  class operator implicit(value: tZeit): string;
  class operator implicit(value: tDateTime): tZeit;
  class operator implicit(value: tZeit): tDateTime;
  class operator dec(Value: tZeit): tZeit;
  class operator equal(Value1, Value2: tZeit): boolean;
 end;

type
  TForm5 = class(TForm)
    msg: TPanel;
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    zeit: tZeit; //Record für Stunden, Minuten und Sekunden als Zeit deklarieren
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation
{$R *.dfm}

{ tZeit }

class operator tZeit.dec(Value: tZeit): tZeit;
begin
 result := value;
 if value.Sekunde > 0 then
 begin
  dec(result.Sekunde);
 end
 else
 begin
  if value.minute > 0 then
  begin
   dec(result.minute);
   result.Sekunde := 59;
  end
  else
  begin
   if value.Stunde > 0 then
   begin
    dec(result.Stunde);
    result.Minute := 59;
    result.Sekunde := 59;
   end
   else
   begin
    result.Sekunde := 59;
    result.Minute :=59;
    result.Stunde := 23;
   end;
  end;
 end;
end;

class operator tZeit.equal(Value1, Value2: tZeit): boolean;
begin
  if  (value1.Stunde = value2.stunde)
  and (value1.Minute = value2.Minute)
  and (value1.Sekunde = value2.Sekunde) then
   result := true
  else
   result := false;
end;

class operator tZeit.implicit(value: tZeit): string;
begin
 result := format('%2.2d:%2.2d:%2.2d', [value.Stunde, value.Minute, value.Sekunde]);
end;

class operator tZeit.implicit(value: string): tZeit;
begin
 result := StrToDateTime(value);
end;

class operator tZeit.implicit(value: tDateTime): tZeit;
var
 s, m, sek: word;
 msec: word;
begin
 decodetime(value, s, m, sek, msec);
 result.Stunde  := s;
 result.Minute  := m;
 result.Sekunde := sek;
end;

class operator tZeit.implicit(value: tZeit): tDateTime;
begin
 result := EncodeTime(value.Stunde, value.Minute, value.Sekunde, 0);
end;

//Hier der Schalter zum Knöpfle drücken
procedure TForm5.Button1Click(Sender: TObject);
begin
 timer1.Enabled := not timer1.Enabled;
 if timer1.enabled then
 begin
  button1.Caption := 'Stop';
 end
 else
 begin
  button1.Caption := 'Start';
  zeit := cZeit; //und wieder von vorne beginnen
 end;
end;

//Timer und Zeit initialisieren
procedure TForm5.FormCreate(Sender: TObject);
begin
 zeit := cZeit;
 msg.caption := zeit;
 timer1.Enabled := true;
end;

//und den count down runter zählen und aktion falls erreicht
//kannst ja auch eine rakete starten...
procedure TForm5.Timer1Timer(Sender: TObject);
begin
 dec(zeit); //zeit um eine sekunde herunterzählen
 msg.Caption := zeit;
 if zeit = '00:00:00' then
 begin
  timer1.Enabled := false;
  close; //form schliessen
 end;
end;

end.


edit: leg noch kurz die demo bei


delphineuling - So 12.03.06 21:47

das ist ja wieder sowas heftiges könnt ihr nich meinen code oben so verändern das es funktionirt und das ich das halt in nem edit verändern kann also die zeit und pausieren und starten mi button und ergebnisausgabe wie jetzt ohne timer nur noch mit timer vereinbaren und nach ablauf der zeit unten ausgeben
wäre echt super nett weil dann könnte ich es auch nachvollziehen und weiß was ich da gemacht habe und wie auch mit bruchstücken kann ich nicht viel anfangen da mit kenntnisse fehlen um sie richtig einzubauen am besten komplett und funktionstüchtig dann kann ich es mir nochmal angucken und nachvollziehen dann muss ich irgendwann vielleicht auch nicht mehr solche fragen stellen
ich danke sehr für antworten die auf meine wünsche eingehen


Delete - So 12.03.06 21:58

brauchst doch nur statt cZeit --> myEDIT.TEXT einsetzen. dann hast du es doch. wenn du willst kann ich dir auch das das code fragment dazugeben...


Delphi-Quelltext
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:
49:
50:
51:
52:
53:
54:
55:
56:
 const cZeit = '00:02:00'; //Zeit bis Form geschlossen wird.
 type tZeit = record
  Stunde, Minute, Sekunde: integer;
  ...
 end;

type
  TForm5 = class(TForm)
    msg: TPanel;
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    zeit: tZeit; //Record für Stunden, Minuten und Sekunden als Zeit deklarieren
  end;

....

//Hier der Schalter zum Knöpfle drücken
procedure TForm5.Button1Click(Sender: TObject);
begin
 timer1.Enabled := not timer1.Enabled;
 if timer1.enabled then
 begin
  button1.Caption := 'Stop';
 end
 else
 begin
  button1.Caption := 'Start';
  //zeit := cZeit; //und wieder von vorne beginnen
  //wenn auskommentiert dann Timer weiterlaufen lassen.
 end;
end;

//Timer und Zeit initialisieren
procedure TForm5.FormCreate(Sender: TObject);
begin
 zeit := cZeit;
 msg.caption := zeit;
 timer1.Enabled := true;
end;

//und den count down runter zählen und aktion falls erreicht
//kannst ja auch eine rakete starten...
procedure TForm5.Timer1Timer(Sender: TObject);
begin
 dec(zeit); //zeit um eine sekunde herunterzählen
 msg.Caption := zeit;
 if zeit = '00:00:00' then
 begin
  timer1.Enabled := false;
  close; //form schliessen
 end;
end;


delphineuling - So 12.03.06 22:22

am besten wäre wenn du das mit meinem code von meinem programm oben so einbauen zusammenbauen würdest mit allem drum und drann das ich das nur noch einfügen bräuchte! (bis auf ein paar veränderung z.b. welches label und so kannst du ja net wissen)
und das es dann läuft sonst mach ich da nur wieder irgend ein mist und alles is kaputt.
so wäre das auch am besten für mich weil ich mir dann meinen delphi ordner schnappen kann und das schritt für schritt durchgehen kann und am ende hab ich dann wieder was gelernt denn so lerne ich das am besten und ich kann meinem lehrer nachher auch erklären was was macht und schreib in der nächsten arbeit wieder ne 1.
wäre echt nett und super


Blackheart666 - So 12.03.06 22:26

Bisschen Eigeninitiative könnte nichts schaden.



Delphi-Quelltext
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:
49:
50:
51:
52:
53:
54:
55:
56:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Start: TButton;
    Stop: TButton;
    Edit1: TEdit;
    procedure Timer1Timer(Sender: TObject);
    procedure StartClick(Sender: TObject);
    procedure StopClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  edit1.text:=timetostr(incsecond(strtotime(edit1.text),-1));
  if Edit1.Text ='00:00:00'then Timer1.Enabled:=False;
  if Edit1.Text ='00:00:00'then ShowMessage('Zeit um !');
end;

procedure TForm1.StartClick(Sender: TObject);
begin
  Timer1.Enabled:=True;
end;

procedure TForm1.StopClick(Sender: TObject);
begin
  Timer1.Enabled:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled:=False;
  Timer1.Interval:=1000;
  Edit1.Text:='00:00:10';
end;

end.


Fabian W. - Mo 13.03.06 18:24

Zitat:
Also mein Quelltext sieht jetzt so aus
Wenn du probleme hast einen teil zu implementieren warum baust du dann am Programm weiter? vlt baust du dadurch zusätzlich fehler ein die dir alles erschweren... Im übrigen hab ich dir oben eine genaue Beschreibung gepostet, wenn du die mal befolgen würdest würdest du den Code auch verstehen und hättest keine Probleme. Du kannst dir deinen Code doch nicht andauernd vorkauen lassen, Mann... :roll:


delphineuling - Do 16.03.06 02:18

Also ich hab das jetzt soweit eingebaut aber wenn ich halt auf den Startbutton klicke zählt der countdown garnicht runter hab schon selbst versucht das hinzukrigen und hab im internet nach lösungen gesucht aber hat nicht geklappt?
Hab auch die Startbuttons reingebaut und das DateUtility

Mein Quellcode sieht jetzt so aus:


Delphi-Quelltext
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:
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
 Timer1.Enabled:=False;
 Timer1.Interval:=1000;
 edit5.Text:='00:00:10';
end;

procedure TForm1.Button10Click(Sender: TObject);
var i : integer;
begin
   for i := 1 to 1000 do begin
                           Button1Click(Sender);
                           label7.Refresh;
                         end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  edit5.text:=timetostr(incsecond(strtotime(edit5.text),-1));
  if Edit5.Text ='00:00:00'then Timer1.Enabled:=False;
  if Edit5.Text ='00:00:00'then ShowMessage('Zeit um !');
end;

procedure TForm1.StartClick(Sender: TObject);
begin
  Timer1.Enabled:=True;
end;

procedure TForm1.StopClick(Sender: TObject);
begin
  Timer1.Enabled:=False;
end;


delphineuling - Do 16.03.06 02:40

ok sorry funktioniert jetzt doch plötzlich
und damit ich damit nun den button1 ausführe könnte ich doch einfach anstatt
then showmessage then button1.click:=????
oder muss ich dazu ein mausklick simulieren also den simulierten mausklick hinter das then machen und die koordinaten des buttons eingeben?


delphineuling - Do 16.03.06 03:02

ok doch nicht hab ich jetzt auch hinbekommen is ja nur then begin button 1.click