Einzelnen Beitrag anzeigen

HarmonieHH

Registriert seit: 18. Sep 2006
Ort: Hamburg
17 Beiträge
 
Delphi 6 Enterprise
 
#1

Möchte div. Formeln aus gefüllten Editfeldern berechnen.

  Alt 25. Sep 2006, 15:12
Hallo,
ich habe gerade angefangen mit Delphi zu arbeiten und muss bald eine Projektarbeit abgeben:

es sollen div. Berechnungen im Stromkreis durchgeführt werden. Dabei gibt es 6 Edit-E/A-felder für Spannung, Strom und Widerstand. Wenn 3 Größen gegeben sind können die anderen daraus berechnet werden. Es sind zwar nur 6 Grundformeln, aber ich weiß nicht wie viele Eingabemöglichkeiten es gibt…

1. Frage: Wie sage ich meinem lieben Programm, dass es die gesuchte Größe aus den gefüllten Editfeldern berechnen soll?

2.Frage: Gibt es eine Möglichkeit in Delphi, die 6 Formeln je nach gesuchter Größe umzustellen, sie untereinander zu Verknüpfen?
brauch ich dazu einen Case Algorithmus?

mein bisheriger Quelltext dafür sieht so aus:

Delphi-Quellcode:
procedure TForm1.Balle(Sender: TObject);

begin
 if sender = btnu then
  begin
   y := (strTofloat(clean(edtr.text)) * strTofloat(clean(edti.text))) ;
   EdtU.text := FloatToStrF(y,ffnumber,12,2)+' V';
   lf.Caption := 'U = R * I' ;
  end;

    if sender = btnr then
  begin
   y := strTofloat(clean(edtu.text)) / strTofloat(clean(edti.text));
   edtr.text := FloatToStrF(y,ffnumber,12,2)+ ' Ohm';
   lf.Caption := 'R = U / I';
  end;
 if sender = btni then
  begin
   lf.Caption := 'I = U / R' ;

   y := (strTofloat(clean(edtu.text)) / strTofloat(clean(edtr.text)));
   //If y>1 then
   edti.text := FloatToStrF(y,ffnumber,12,2)+' A'
   //else edti.text := FloatToStrF(y*1000,ffnumber,12,2)+' mA';
  end;
 if sender = BtnP then
  begin
   y := (strTofloat(clean(edtu.text))* strTofloat(clean(edti.text)));
   edtP.text := FloatToStrF(y,ffnumber,12,2);
   lf.Caption := 'P = U * I' ;
  end;
 if sender = BtnT then
  begin
   y := (Strtofloat(clean(edtW.text)) / (strTofloat(clean(edtP.text))))*1000;
   edtT.text := FloatToStrF(y,ffnumber,12,2);
   lf.Caption := 't = W / P' ;
  end;
 if sender = BtnW then
  begin
   y := (strTofloat(clean(edtP.text)) * (strTofloat(clean(edtT.text))))/1000;
   edtW.text := FloatToStrF(y,ffnumber,12,2);
   lf.Caption := 'W = P * t' ;
  end;
 if sender = BtnPreis then
  begin
   y := (strTofloat(clean(edtGeb.text)) / strTofloat(clean(edtW.text))*100);
   edtPreis.text := FloatToStrF(y,ffnumber,12,2);
   lf.Caption := 'W = P * t' ;
  end;
 if sender = BtnGeb then
  begin
   y := (strTofloat(clean(edtPreis.text)) * strTofloat(clean(edtW.text))/100);
   edtGeb.text := FloatToStrF(y,ffcurrency,12,2);
   lf.Caption := 'Gebühren = Preis * W' ;
  end;
Danke, für die Hilfe
Grüße aus Hamburg
Miniaturansicht angehängter Grafiken
programm_299.jpg  
=======================================
Erfolg ist: trotz der Ablenkungen in den Zeitschichten,
in der Gegenwart best möglich zu agieren.
=======================================
  Mit Zitat antworten Zitat