Einzelnen Beitrag anzeigen

Newcomer91

Registriert seit: 9. Mär 2010
66 Beiträge
 
Delphi 2010 Professional
 
#1

Fehler bei String übertragung von einer Form auf eine andere

  Alt 25. Nov 2010, 10:40
Guten Morgen,

ich schreibe momentan ein programm mit welchem man dinge berechnen kann.
Nun habe ich eine form mit 5 edit feldern, in welche man werte eingeben kann, die dann via on change ereignis berechnet werden.
Delphi-Quellcode:
procedure TfrmNew.edtCostsChange(Sender: TObject);
var
  Income, Costs, Free: Double;
begin
  if ((edtIncome.Text <> '') and (edtCosts.Text <> '')) then
    begin
      Income:= StrToFloat(edtIncome.Text);
      Costs:= StrToFloat(edtCosts.Text);

      Free:= Income - Costs;
      edtFree.Text:= FloatToStr(Free);
    end;
end;
(Das war jetzt nur die Kurzform sry, also hier wurden im vornerein der wert income und der wert costs berechnet, das wird jetzt nurnoch mal abgezogen. Die EditFelder die relevant sind, kommen in dieser früheren Berechnung)

Nun habe ich einen Button hinzugefügt, welcher auf eine weitere form verweist.
Delphi-Quellcode:
procedure TfrmNew.btnValuesClick(Sender: TObject);
begin
  frmNew.Close;
  frmValues.Show;
end;
Dort befinden sich eine Combobox, 5 editfelder und ein button.
Sinn des ganzen ist, dass wenn man auf der ersten form einen wert eingeben will, dieser sich aber auch wieder aus mehreren werten zusammen setzt, in dieser seperaten form via combobox das edit feld dieser form auszuwählen, die mehreren werte in die editfelder eingibt, es wieder via on change im ergebnis feld ein ergebnis gibt und wenn man dann auf den button klickt soll sich diese Form wieder schließen die andere öffnen und das ergebnis der 2ten form in dem ausgewählten edit feld ausgegeben sein.
Delphi-Quellcode:
procedure TfrmValues.edtV4Change(Sender: TObject);
var
  V1, V2, V3, V4, Result: Double;
begin
  if ((edtV1.Text <> '') and (edtV2.Text <> '') and (edtV3.Text <> '')) then
    begin
      V1:= StrToFloat(edtV1.Text);
      V2:= StrToFloat(edtV2.Text);
      V3:= StrToFloat(edtV3.Text);
      V4:= StrToFloat(edtV4.Text);

      result:= V1 + V2 + V3 + V4;
      edtResult.Text:=FloatToStr(result);
    end;

end;

procedure TfrmValues.btnInsertClick(Sender: TObject);
begin
  if ComboBox1.Text = 'Otherthen
    begin
      edtResult.Text:= frmNew.edtOther.Text;
      frmValues.Close;
      frmNew.Show;
  end
  else begin
    if ComboBox1.Text = 'Rentthen
      edtResult.Text:= frmNew.edtRent.Text;
      frmValues.Hide;
      frmNew.Show;end;

end.
Es lässt sich compilieren, berechnen, alles tutti. Nur übernimmt er den Wert nicht auf die andere Form. Was mache ich noch falsch?


LG New

Geändert von Newcomer91 (25. Nov 2010 um 10:42 Uhr)
  Mit Zitat antworten Zitat