Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: mengenzunahme aus zwei zeiten + zunahme/h

  Alt 22. Sep 2004, 12:15
aber der wert si komisch, denn wenn ich meine werte geladen hab, dann springt der wert einal um roesig viel, und dann is ende

ich poste mal mehr von meinem code...

Delphi-Quellcode:
var
  Form1: TForm1;
  needed, lasttime:TDateTime;
  m_da, k_da, t_da:integer;
  m_need, k_need, t_need:integer;
  m_prod, k_prod, t_prod:integer;
  longestres, tobuild:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  m_needed, k_needed, t_needed:TDateTime;
begin
  //werte einlesen
  tobuild:=LabeledEdit2.Text;
  m_prod:=Spin_h_metall.Value;
  k_prod:=Spin_h_kristall.Value;
  t_prod:=Spin_h_tritium.Value;
  m_need:=Spin_needed_metall.Value;
  k_need:=Spin_needed_kristall.Value;
  t_need:=Spin_needed_tritium.Value;
  m_da:=Spin_da_metall.Value;
  k_da:=Spin_da_kristall.Value;
  t_da:=Spin_da_tritium.Value;

  //längste spanne ausrechnen
  m_needed:=(m_need-m_da)/m_prod;
  k_needed:=(k_need-k_da)/k_prod;
  t_needed:=(t_need-t_da)/t_prod;
  //größte zeitspanne
  if (m_needed>k_needed) and (m_needed>t_needed)
  then begin
        needed:=m_needed;
        longestres:='Metall';
        end
  else if (k_needed>m_needed) and (k_needed>t_needed)
  then begin
        needed:=k_needed;
        longestres:='Kristall';
        end
  else if (t_needed>m_needed) and (t_needed>k_needed)
  then begin
        needed:=t_needed;
        longestres:='Tritium';
        end;
  //timer
  Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  needed:=needed-(1/24/60/60);
  LabeledEdit1.Text:=timetostr(needed);
end;

procedure TForm1.Button3Click(Sender: TObject);
var temp:TStringList;
begin
  temp:=TStringList.Create;
  temp.Add(inttostr(m_prod));
  temp.Add(inttostr(k_prod));
  temp.Add(inttostr(t_prod));
  temp.Add(inttostr(m_da));
  temp.Add(inttostr(k_da));
  temp.Add(inttostr(t_da));
  temp.Add(inttostr(m_need));
  temp.Add(inttostr(k_need));
  temp.Add(inttostr(t_need));
  temp.Add(tobuild);
  temp.Add(timetostr(lasttime));
  temp.SaveToFile('data.dat');
  temp.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  temp:TStringList;
begin
  temp:=TStringList.Create;
  try
    temp.LoadFromFile('Data.dat');
    //auslesen
    m_prod:=strtoint(temp[0]);
    k_prod:=strtoint(temp[1]);
    t_prod:=strtoint(temp[2]);
    m_da:=strtoint(temp[3]);
    k_da:=strtoint(temp[4]);
    t_da:=strtoint(temp[5]);
    m_need:=strtoint(temp[6]);
    k_need:=strtoint(temp[7]);
    t_need:=strtoint(temp[8]);
    tobuild:=temp[9];
    lasttime:=strtotime(temp[10]);
  
    //in spinedits rein
    Spin_h_metall.Value:=m_prod;
    Spin_h_kristall.Value:=k_prod;
    Spin_h_tritium.Value:=t_prod;
    Spin_needed_metall.Value:=m_need;
    Spin_needed_kristall.Value:=k_need;
    Spin_needed_tritium.Value:=t_need;
    Spin_da_metall.Value:=m_da;
    Spin_da_kristall.Value:=k_da;
    Spin_da_tritium.Value:=t_da;
    LabeledEdit2.Text:=tobuild;
  except
    Application.MessageBox('Bitte erst speichern...','Erst speichern');
  end;
  temp.Free;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var jetzt:TDatetime;
begin
  jetzt:=now;
//Hierum gehts
  //m_da:=m_da+round((jetzt-lasttime)*24*m_prod);
  //k_da:=k_da+round((jetzt-lasttime)*24*k_prod);
  //t_da:=t_da+round((jetzt-lasttime)*t_prod);
  t_da:=t_da+round(t_prod*(jetzt-lasttime));
  lasttime:=now;
  Spin_da_metall.Value:=m_da;
  Spin_da_kristall.Value:=k_da;
  Spin_da_tritium.Value:=t_da;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  lasttime:=now;
end;
so, die ganzen spins sind spineditt, wo die werte eingetragen werden

spin_h für produktion
spin_da für bestand
spin_needed für benötigt
jeweils in metall, kristall, tritium

dann jeweils variablen dazu

weiss einer wie ichs besser/einfacher machen könnte?


so, nun zu ,meiner frage: kann es sein das ein fehler beim laden der zeit kommt?

das am anfang noch tage dabeisind, oder sowas?


EDIT: Mann nehme time!!! es funzt mit time

danke schonmal

kann man den quelltr4xt noch einfacher/übersichtlicher machen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat