Autor Beitrag
delphineuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: Do 23.02.06 21:33 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458



BeitragVerfasst: So 26.02.06 08:03 
timer auf 500 stellen, mit button aktivieren deaktiviern

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

das wars

_________________
hans bist du das ?
delphineuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: Mi 01.03.06 09:52 
Ne ich arbeite mit Delphi 7 Enterprise!
Was soll ich nun machen?
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: 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

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
chrisw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: Mi 01.03.06 10:58 
Timer1.Interval auf 1000 (Jede Sekunde)

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

_________________
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Vera
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 82

WinXP Home
Delphi 2005 Personal
BeitragVerfasst: Mi 01.03.06 11:24 
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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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:
ausblenden volle Höhe 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 <= 0and (RestMinuten <= 0then
    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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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?

ausblenden volle Höhe 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
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.

ausblenden volle Höhe 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
Einloggen, um Attachments anzusehen!
delphineuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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...

ausblenden volle Höhe 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 113

XP
wat dat
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: So 12.03.06 22:26 
Bisschen Eigeninitiative könnte nichts schaden.


ausblenden volle Höhe 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.
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1766

Win 7
D7 PE
BeitragVerfasst: 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: