Autor Beitrag
chickenfigt1989
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Do 10.03.11 16:45 
Hallo
Habe im Forum folgenden Code gefunden:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.visible:=true;
if Zeit < StrtoTime('00:00:01'then
  Label4.Caption:='Zeit abgelaufen'
  else
    begin
      Zeit:=Zeit - 1 / SecsPerDay;
     Label4.Caption:=TimeToStr(Zeit);
    end;
    end;

Die zeitanzeige klappt wie ich will allerdings wenn die Zeit 00:00:01 beträgt wird bei Label4.caption Zeit abgelaufen angezeigt. Aber ich will das mehr passiert
Jetzt hab ich folgendes Probiert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.visible:=true;
if Zeit < StrtoTime('00:00:01'then
  Label4.Caption:='Zeit abgelaufen'
  Label2.Caption:='Fertig'
  else
    begin
      Zeit:=Zeit - 1 / SecsPerDay;
     Label4.Caption:=TimeToStr(Zeit);
    end;
    end;


Wieso funktioniert das nicht?
lg


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Do 10.03.2011 um 16:19
guinnes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Do 10.03.11 16:53 
Begin ... End ?
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Do 10.03.11 16:55 
Geht auch nicht da kommt immer
[Error] Unit1.pas(118): Missing operator or semicolon

mein Code sieht nun so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label4.visible:=true;
if Zeit < StrtoTime('00:00:01'then
begin
  Label4.Caption:='Zeit abgelaufen'
  Showmessage('ddd')
  end
  else
    begin
      Zeit:=Zeit - 1 / SecsPerDay;
     Label4.Caption:=TimeToStr(Zeit);
    end;
    end;


Lg
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 10.03.11 16:59 
kommt von C&P und nicht verstehen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if Zeit < StrtoTime('00:00:01'then
begin  
   Label4.Caption:='Zeit abgelaufen';
   Showmessage('ddd');
end
else

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
guinnes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Do 10.03.11 17:00 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
Geht auch nicht da kommt immer
[Error] Unit1.pas(118): Missing operator or semicolon

Und warum machst du dann nicht die Semicolons dahin, wo sie hingehören ?
Tankard
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Do 10.03.11 17:01 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
Geht auch nicht da kommt immer
[Error] Unit1.pas(118): Missing operator or semicolon

mein Code sieht nun so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label4.visible:=true;
  if  Zeit < StrtoTime('00:00:01'then
    begin
      Label4.Caption:='Zeit abgelaufen';
      Showmessage('ddd');
    end
  else
    begin
      Zeit:=Zeit - 1 / SecsPerDay;
      Label4.Caption:=TimeToStr(Zeit);
    end;
end;


Lg




MAN. Fang mal endlich an Pascal zu lernen. Tutorials lesen. Sourcecode hab ich mal ausnahmsweise verbessert.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Do 10.03.11 17:03 
oder wenigstens Fehlermeldungen zu verstehen :P

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 10.03.11 17:34 
user profile iconTankard hat folgendes geschrieben Zum zitierten Posting springen:
MAN. Fang mal endlich an Pascal zu lernen. Tutorials lesen.
Das hat nichts mit lernen zu tun. Wenn da steht, dass ein Operator oder Semikolon fehlt und dann deswegen hier gefragt werden muss, was das heißt, dann nenne ich das nicht unwissend, sondern dämlich. Sorry, ich schreib sowas ja sonst eigentlich nicht, ist hier aber so.

Schließlich steht es in der Fehlermeldung direkt da, dass das Semikolon fehlt. Was gibt es da noch zu fragen? :roll:

Für diesen Beitrag haben gedankt: ALF, Marc.
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Do 10.03.11 17:51 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Was gibt es da noch zu fragen? :roll:
Wenigstens steht da "TForm1" und nicht "TForm537". Auch ein kleiner Fortschritt. ;-)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 10.03.11 17:53 
Wahrscheinlich weil es gerade ein neues Projekt ist. :lol:
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: So 13.03.11 01:18 
Folgender Fall.
Ich hab eine Combobox wo man 16pflanzen auswählen kann.
Jede Pflanze hat eine eigene Zeit, funktioniert auch Prima.
Allerdings will ich mehrere Comboboxen haben dann brauch ich ja mehrere Timer,
doch dann läuft die zeitanzeige viel zu schnell runter.
Wie mach ich das?
lg
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: So 13.03.11 01:22 
Leider kann ich da nur reinraten, was dein Problem ist.
Setzt du denn jedes mal wenn man einen Eintrag auswählt das Interval auf die Zeit der Pflanze?

Lg
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: So 13.03.11 01:27 
So sieht es aus wenn man einen Eintrag aus der Combobox wählt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if  ComboBox1.ItemIndex=1 then
begin
Button6.visible:=true;
Label2.visible:=true;
Button2.Visible:=false;
Zeit:= StrtoTime('00:00:10');
Timer2.enabled:=true;
end;


Anzumerken ist, das ich drei Tabsheets hab auf jedem tabsheet sollen mindestens 6comboboxen mit einen eigenen timer.


Edit: Habs selber hinbekommen und zwar hab ich bei der Zweiten combobox folgendes geändert:
Aus
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if ComboBox2.ItemIndex=2 then
      begin
Label8.visible:=true;
Button4.Visible:=false;
Zeit:= StrtoTime('00:00:10');
Timer1.enabled:=true;

end;

wurde
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if  ComboBox1.ItemIndex=1 then
begin
Button6.visible:=true;
Label2.visible:=true;
Button2.Visible:=false;
time:= StrtoTime('00:00:10');
Timer2.enabled:=true;
end;


und oben sieht es so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  Form1: TForm1;
   Zeit:TDateTime;
   time:TDateTime;


Lg
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 13.03.11 12:10 
Ich hoffe doch nur, das Du nun nicht auch 16 Timer für 16 Pflanzen gesetzt hast :rofl:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: So 13.03.11 14:33 
Nein hab einen Timer für die sämtlichen pflanzen die in der Combobox stehen.

Brauch halt trotzdem 4timer weils bäume und so auch noch gibt.
lg
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 13.03.11 14:36 
Auch dazu brauch man eigentlich nur einen Timer :wink:
Der rest ist Code 8)

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
beastofchaos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 247
Erhaltene Danke: 4



BeitragVerfasst: So 13.03.11 15:06 
Ich weiß ja nicht, wie du dir das vorstellst mit den Bäumen und Pflanzen - ich vermute, du wilst iwie die Zeit zum wachsen "messen" oder so was. Ich würde da vll schon 2 timer für die beidne fälle nehmen, sofern du nicht das verhältnis zwischen dem einen und anderen Timer weißt

also so wär es leicht zu einem timer zu lösen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval := 1000;
  Timer2.Interval := 500;
end;

TForm1.Timer1Timer(Sender: TObject);
begin
  a := a + 20;
end;

TForm1.Timer2Timer(Sender: TObject);
begin
   b := b + 20;
end;



Lösung:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Interval := 1000;
end;

TForm1.Timer1Timer(Sender: TObject);
begin
  a := a + 20;
  b := b + 40;
end;


So, kann man alles in einem Timer unterbringen ;)



Grüße, beast
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mi 27.04.11 23:03 
hallo
habe den timer wie oben gepostet
kann man es irgendwi so machen das wenn die zeiit nur noch 60min beträgt nen warnsound oder so ausgibt?
lg
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.04.11 23:18 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
kann man es irgendwi so machen das wenn die zeiit nur noch 60min beträgt nen warnsound oder so ausgibt?
Ja.
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mi 27.04.11 23:21 
und wie?