AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Trackbar

Ein Thema von kronos89 · begonnen am 1. Sep 2007 · letzter Beitrag vom 2. Sep 2007
Antwort Antwort
kronos89

Registriert seit: 1. Sep 2007
Ort: Premsdorf
12 Beiträge
 
#1

Problem mit Trackbar

  Alt 1. Sep 2007, 18:55
Ich bin neu hier im Forum und habe ein Problem mit Trackbars. Wir sollen in der Schule ein Programm erstellen, dass die aktuelle Zeit in Trackbars anzeigt.
Zuerst soll ganz normal die aktuelle Uhrzeit angezeigt werden, das hab ich auch schon und dann sollen 3 Trackbars , jeweils die Stunden, Minuten und Sekunden aus diesen timer anzeigen.
Ich hab nicht so viel Ahnung von Delphi und auch nicht mehr viel Zeit. Für ein Programmablaufplan wäre ich echt dankbar. Der Lehrer meinte das wäre nicht viel und auch nicht schwer, aber der ganze Kurs weiß da nicht weiter.
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#2

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 19:39
Also, die Zeit bekommst du mit Now. Einen Teil dieser Zeit extrahieren kannst du mit FormatDateTime()
FormatDateTime('FormatString', Now); mit "h" bekommst du die Stunden, mit "n" die Minuten, mit "s" die Sekunden.

Also in etwa so:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Trackbar1.Position := StrToInt(FormatDateTime('h', Now));
  Trackbar2.Position := StrToInt(FormatDateTime('n', Now));
  Trackbar3.Position := StrToInt(FormatDateTime('s', Now));
end;
Im OnCreate des formulars musst du dann noch die Max-Eigenschaften setzen. 24 für die Stunden und jeweils 60 für Minuten und sekunden.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  TrackBar1.Max := 24;
  TrackBar2.Max := 60;
  TrackBar3.Max := 60;
end;
dann noch die Anfangszeit einstellen:
Delphi-Quellcode:
Trackbar1.Position := StrToInt(FormatDateTime('h', Now));
Trackbar2.Position := StrToInt(FormatDateTime('n', Now));
Trackbar3.Position := StrToInt(FormatDateTime('s', Now));
Christian
  Mit Zitat antworten Zitat
kronos89

Registriert seit: 1. Sep 2007
Ort: Premsdorf
12 Beiträge
 
#3

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 20:13
Vielen Dank für die schnelle Antwort!
Die Uhrzeit hab ich so gemacht:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  dateseparator:=' ';
  shortDateFormat :='ddd,/dd./mmmm/yyyy';
  Label1.Caption:= DateToStr(Date);
end;
Wie müsste ich das denn mit
FormatDateTime('FormatString', Now); einfügen oder umschreiben?

Hab nicht so viel Ahnung von Delphi und Zuhause hab ich auch kein Delphi. Der Rest ist klar!
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#4

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 20:29
Mit deinem Code müsstst du aber das Datum, nicht die Zeit erhalten
Christian
  Mit Zitat antworten Zitat
kronos89

Registriert seit: 1. Sep 2007
Ort: Premsdorf
12 Beiträge
 
#5

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 20:54
Ups, dann war es doch so:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  dateseparator:=' ';
  shortDateFormat :='ddd,/dd./mmmm/yyyy';
  Label1.Caption:= Timetostr(time);
end;
Hab das nur von ein anderen Programm kopiert und es ist auf anhieb gelaufen.
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#6

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 20:58
aber mit
Delphi-Quellcode:
dateseparator:=' ';
shortDateFormat :='ddd,/dd./mmmm/yyyy';
veränderst du nur das aussehen deines Datums. Das brauchst du gar nicht. Oder lässt du irgendwo auch das Datum anzeigen?

Zeig mal ein wenig mehr Code!
Christian
  Mit Zitat antworten Zitat
kronos89

Registriert seit: 1. Sep 2007
Ort: Premsdorf
12 Beiträge
 
#7

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 21:19
Ja, ein Datum ist auch noch drauf.
Das ist alles, was ch dfür das Programm jetzt habe:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  dateseparator:=' ';
  shortDateFormat :='ddd,/dd./mmmm/yyyy';
  Label1.Caption:= DateToStr(Date);
  Label2.Caption:= Timetostr(time);
end;
Funktioniert auch alles.
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#8

Re: Problem mit Trackbar

  Alt 1. Sep 2007, 23:16
und jetzt willst du noch das mit den TrackBars machen? Nimm doch einfach meinen Code, den kannst du zusätzlich zu deinem verwenden!
Christian
  Mit Zitat antworten Zitat
kronos89

Registriert seit: 1. Sep 2007
Ort: Premsdorf
12 Beiträge
 
#9

Re: Problem mit Trackbar

  Alt 2. Sep 2007, 06:02
Gut mach ich so! Danke!!!!!!!!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Problem mit Trackbar

  Alt 2. Sep 2007, 07:22
Hai kronos89,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS".

Anstelle die Zeit immer mit FormatDateTime zu bekommen und sie dann mit StrToInt in eine Zahl zu wandeln solltest Du lieber mit Delphi-Referenz durchsuchenDecodeTime arbeiten. Das macht den Code leichter zu verstehen

Wenn Du dann noch die Funktionen zum setzen der Trackbars in eine eigene Procedure auslagerst ist eigentlich schon alles erledigt:

Delphi-Quellcode:
procedure SetTrackbars(a_tbhour, a_tbmin, a_tbsec: TTrackBar);
var
  stunde: Word;
  minute: Word;
  sekunde: Word;
  msekunde: Word;
begin
  DecodeTime(now, stunde, minute, sekunde, msekunde);
  a_tbhour.Position := stunde;
  a_tbmin.Position := minute;
  a_tbsec.Position := sekunde;
end;

procedure TDemo_Form.FormCreate(Sender: TObject);
begin
  TrackBar1.Max := 24;
  TrackBar2.Max := 60;
  TrackBar3.Max := 60;
  SetTrackbars(TrackBar1, TrackBar2, TrackBar3); // einmal beim programm start
  Timer1.Interval := 250;
  Timer1.Enabled := True;
end;

procedure TDemo_Form.Timer1Timer(Sender: TObject);
begin
  SetTrackbars(TrackBar1, TrackBar2, TrackBar3); // im festgelegten Intervall die Trackbars aktualisieren.
end;
Nachtrag
Die Übergabe der Trackbars an die Procedure SetTrackbars muss man natürich nicht machen. Man kann die TBs auch in der Procedure selber ansprechen. Aber ich wollte halt mal zeigen das man es auch so machen kann
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:34 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