Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Weiterlernen (https://www.delphipraxis.net/189718-weiterlernen.html)

SProske 8. Aug 2016 22:57

AW: Weiterlernen
 
Auch unter Delphi 7 solltest du DateUtils in den uses einbinden können:

Delphi-Quellcode:
implementation

uses
  DateUtils;

teodorfon 11. Aug 2016 19:05

AW: Weiterlernen
 
Zitat:

Zitat von SProske (Beitrag 1344433)
Auch unter Delphi 7 solltest du DateUtils in den uses einbinden können:

Delphi-Quellcode:
implementation

uses
  DateUtils;

Achsoooooo. :oops:
Ehm,ok jetzt klappt fast alles nur dass sich der timer nicht wiederholt.Die labele zeigt nur 00:00:59 an,und nach einer sekunde bleibt es auf 00:00:59.
Delphi-Quellcode:
var
  Form1: TForm1;
  TotalTime,x:TTime;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
totaltime := IncSecond (0, 60);
totaltime := IncSecond (totaltime,-1); //Versucht durch "x" variable zu ersetzen,gleiches resultat.
label1.Caption:=Timetostr(totaltime );

end;

end.

SProske 11. Aug 2016 20:01

AW: Weiterlernen
 
Noch einmal - das Initialisieren der totaltime Variable gehört nicht in das OnTimer-Event. Du setzt bei jedem Durchlauf totaltime erst auf 60, dann auf 59 Sekunden.
Diese Intialisierung solltest du z.B. im OnCreate des Formulars durchführen.

teodorfon 11. Aug 2016 20:45

AW: Weiterlernen
 
Zitat:

Zitat von SProske (Beitrag 1344723)
Noch einmal - das Initialisieren der totaltime Variable gehört nicht in das OnTimer-Event. Du setzt bei jedem Durchlauf totaltime erst auf 60, dann auf 59 Sekunden.
Diese Intialisierung solltest du z.B. im OnCreate des Formulars durchführen.

Ok,was ich grad gefunden habe ist das sich OnCreate ein event ist das sich nur aktiviert wen ich eine neue TForm erstelle,was ich auch gemacht habe,danach auf Oncreate im "Event",auf der zweiten habe ich eine neue labele erstellt und die letzte zeile von dem code eingefügt.Leider kam eine fehlermeldung das "totaltime" nicht erkannt wurde,im "uses" habe ich "Unit1" eingefügt was den fehler weg machte.Leider bleibt die labele immernoch gleich. :pale:

SProske 11. Aug 2016 20:53

AW: Weiterlernen
 
Ich weiß leider nicht genau, welche Delphi-Version du einsetzt.
Als erstes solltest du das neue Formular gleich mal wieder löschen - und auf das alte Wechseln.
In der Designansicht kannst du jede vorhandene Komponente anwählen, auch das grundlegende Formular. Im Objektinspektor sollte es dann zwei Reiter "Eigenschaften" und "Ereignisse" - dort in den Reiter Ereignisse wechseln. Da solltest du dann ein OnCreate finden und dann einfach in das leere Edit rechts daneben doppelklicken, dann sollte im Code der Rumpf für das FormCreate erscheinen.

teodorfon 11. Aug 2016 20:59

AW: Weiterlernen
 
Zitat:

Zitat von SProske (Beitrag 1344726)
Ich weiß leider nicht genau, welche Delphi-Version du einsetzt.
Als erstes solltest du das neue Formular gleich mal wieder löschen - und auf das alte Wechseln.
In der Designansicht kannst du jede vorhandene Komponente anwählen, auch das grundlegende Formular. Im Objektinspektor sollte es dann zwei Reiter "Eigenschaften" und "Ereignisse" - dort in den Reiter Ereignisse wechseln. Da solltest du dann ein OnCreate finden und dann einfach in das leere Edit rechts daneben doppelklicken, dann sollte im Code der Rumpf für das FormCreate erscheinen.

Delphi-Quellcode:
var
  Form1: TForm1;
  TotalTime,x:TTime;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
totaltime := IncSecond (0,60);
totaltime := IncSecond (totaltime,-1);


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
label1.Caption:=Timetostr(totaltime );
end;

end.
Ah,man braucht also nicht zwei Formen. :lol:
Will jetzt nicht dass ganze forum voll spamen,aber die label zeigt einfach 00:00:00 an.
PS:Ich benuzte Delphi 7.

SProske 11. Aug 2016 21:07

AW: Weiterlernen
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //bei jedem Aufruf des Timer-Ereignisses
  totaltime := IncSecond(totaltime, -1); //1 Sekunde abziehen
  label1.Caption:=Timetostr(totaltime); //Label aktualisieren
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  totaltime := IncSecond (0,60); //hier deine Variable initialisieren!
end;

end.

teodorfon 11. Aug 2016 21:49

AW: Weiterlernen
 
Zitat:

Zitat von SProske (Beitrag 1344728)
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //bei jedem Aufruf des Timer-Ereignisses
  totaltime := IncSecond(totaltime, -1); //1 Sekunde abziehen
  label1.Caption:=Timetostr(totaltime); //Label aktualisieren
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  totaltime := IncSecond (0,60); //hier deine Variable initialisieren!
end;

end.

DANKE! :shock:
PS:Muss ich das so machen weil sich die variable sonst bei jedem timer tick "resetet" ?

SProske 11. Aug 2016 21:59

AW: Weiterlernen
 
Die resettet sich nicht von alleine - du machst das.

Delphi-Quellcode:
totaltime := IncSecond (0,60);
setzt totaltime auf den Wert 60 Sekunden.

teodorfon 11. Aug 2016 23:34

AW: Weiterlernen
 
Zitat:

Zitat von SProske (Beitrag 1344730)
Die resettet sich nicht von alleine - du machst das.

Delphi-Quellcode:
totaltime := IncSecond (0,60);
setzt totaltime auf den Wert 60 Sekunden.

Vielen Dank für deine Hilfe,kannst du mir nur sagen wie ich 2 Formen verbinde,also um genau zu sein wie ich die werte der variablen von zbs. Form1 zur Form2 schicke?
Und war es möglich,eine procedure zu erstellen die "OnCreate" ersetzt,weiss eigentlich nicht so viel über proceduren. :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr.
Seite 4 von 5   « Erste     234 5      

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