Autor Beitrag
aramintaros
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 27.03.09 09:14 
einen wunderschönen hallo zusammen, :)
ich hoffe, daß ich hier richtig bin, habe nämlich ein kleines problem daß ich mit meinem bescheidenen wissen nicht zu lösen vermag.
es geht um die umrechnung einer uhrzeit ohne sekunden,

bei 4 spinedits, sind die ersten beiden dazu da um die stunde und die minute eingestellt zu bekommem.

wenn ich spinedit1.value = 12, und spinedit2.value =60 habe dann will ich
das mir spinedit3.value = 13, und spinedit4.value =00 angezeit wird, und daß spinedit4 ganz normal bei 0 weiterzählt.

ich habe es mit folgendem ansatz probiert, komme aber nicht weiter. :x
ausblenden 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:
 
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  Present:= Now;
  SysUtils.DecodeTime(Present, Hour, Min, Sec, MSec);
  MyHour:= Hour + SpinEdit1.Value;
  MyMin:= Min + SpinEdit2.Value;

  if MyHour < 10 then Edit2.Text:= '0' + IntToStr(MyHour) + ':'  else Edit2.Text:= IntToStr(MyHour) + ':';
  if Mymin  < 10 then Edit2.Text:= Edit2.Text + '0' + IntToStr(MyMin) else Edit2.Text:= Edit2.Text + IntToStr(MyMin);
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
  Present:= Now;
  SysUtils.DecodeTime(Present, Hour, Min, Sec, MSec);
  MyHour:= Hour + SpinEdit1.Value;
  MyMin:= Min + SpinEdit2.Value;

  if MyMin > 60 then
  begin
    inc(Hour);
    SpinEdit3.Value := Hour;
    SpinEdit4.Value := Min;
  end;

  if MyHour < 10 then Edit2.Text:= '0' + IntToStr(MyHour) + ':'  else Edit2.Text:= IntToStr(MyHour) + ':';
  if Mymin  < 10 then Edit2.Text:= Edit2.Text + '0' + IntToStr(MyMin) else Edit2.Text:= Edit2.Text + IntToStr(MyMin);
end;


kann mir bitte jemand helfen? mit meinen zeit-datums-umrechnungskünsten komme ich einfach nicht weiter.
erstmal danke und gruß
ara

Moderiert von user profile iconNarses: Titel geändert: "Delphi für Win32" entfernt
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 27.03.09 14:12 
Versteh ich das richtig, du willst eine Uhrzeit in 2 Spinedits einstellen? Ich versteh nich ganz, was du dann mit der aktuellen Zeit rumhantiere willst :gruebel: und wieso du Now erst in einer Variable speicherst bevor du es benutzt: DecodeTime(Now, Hour, Min, Sec, MSec); sollte doch auch gehen, ist ja kein Var-Parameter? :nixweiss:
Aber das löst man sowieso normal ohne Umwege um 500 Ecken:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure hSpinChange(Sender: TObject);
begin
  if hSpin.Value >= 24 then
    hSpin.Value := 0;
end;

procedure minSpinChange(Sender: TObject);
begin
  while minSpin.Value >= 60 do //Schleife, weil: vielleicht hat einer 500 minuten eingegeben? :)
  begin
    hSpin.Value := hSpin.Value + 1;
    minSpin.Value := minSpin.Value - 60;
  end;
end;
Das sollte doch eigentlich reichen? :nixweiss:

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
aramintaros Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 29.03.09 18:57 
Ich bedanke mich.
Das Problem ist mit deiner Hilfe nun gelöst. :lol: