Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fehler bei String übertragung von einer Form auf eine andere (https://www.delphipraxis.net/156253-fehler-bei-string-uebertragung-von-einer-form-auf-eine-andere.html)

Newcomer91 25. Nov 2010 09:40

Fehler bei String übertragung von einer Form auf eine andere
 
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 = 'Other' then
    begin
      edtResult.Text:= frmNew.edtOther.Text;
      frmValues.Close;
      frmNew.Show;
  end
  else begin
    if ComboBox1.Text = 'Rent' then
      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

Newcomer91 25. Nov 2010 10:15

AW: Fehler bei String übertragung von einer Form auf eine andere
 
\push..

Luckie 25. Nov 2010 10:17

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Zitat:

Zitat von Newcomer91 (Beitrag 1063903)
\push..

Hallo? Dein erster Beitrag ist erst 35 Minuten alt!

Newcomer91 25. Nov 2010 10:20

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Das Ding ist ja, dass darauf zumindest ne antwort kommt, sogar recht zügig, wogegen ich auf eine antwort beim ersten beitrag schon 35 min warte... ;)

Luckie 25. Nov 2010 10:23

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Zitat:

Zitat von Newcomer91 (Beitrag 1063906)
wogegen ich auf eine antwort beim ersten beitrag schon 35 min warte... ;)

Schon? Hast du schon gesagt? Glaubst du alle Forenmitglieder warten nur auf eine Frage von dir, um sie dann umgehen zu beantworten? Und jetzt würde ich dich bitte an die Forenregeln zu halten und erst nach 24 Stunden zu pushen. Alles weitere per PN.

himitsu 25. Nov 2010 10:25

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Das Wichtige wurde ja schon von Luckie gesagt :stupid:
Und nun der Rest. (wäre mir das Anti24stundengepusche eher aufgefallen, dann hätt ich jetzt noch 23 Stunden gewartet, mit dem Antworten)

Zitat:

Delphi-Quellcode:
procedure TfrmValues.btnInsertClick(Sender: TObject);
begin
  if ComboBox1.Text = 'Other' then
    begin
      edtResult.Text:= frmNew.edtOther.Text;
      frmValues.Close;
      frmNew.Show;
  end
  else begin
    if ComboBox1.Text = 'Rent' then
      edtResult.Text:= frmNew.edtRent.Text;
      frmValues.Hide;
      frmNew.Show;end;

end.

Du greifst in TfrmValues auf die globale frmValues zu ... sowas macht man nicht ... laß frmValues dort einfach weg.

Es fehlt ein Begin-End beim
Delphi-Quellcode:
if ComboBox1.Text = 'Rent' then
:warn:
Oder ist nur deine Einrückung grauenhaft und das soll so sein?

Außerdem liest du dort Werte aus frmNew, schreibst sie in frmValues und schließt dann frmValues.
So kann ja nichts mehr angezeigt werden.
Meinst du es nicht andersrum? (frmValues > frmNew)

Newcomer91 25. Nov 2010 10:35

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Schonmal ein Danke an Himitsu und ich werde künftig die Forenregeln beachten, bei der Erstellung von Threads.

Habe den Fehler glaube ich jetzt auch gefunden.

lg New

Jens Hartmann 25. Nov 2010 10:46

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Vieleicht solltest Du das mit einem...
Delphi-Quellcode:
 
  private
    { Private declarations }
    FMeinString: String;
  public
    { Public declarations }
    property MeinString: String read FMeinString write FMeinString;
Dieses könntest Du dann über...
Delphi-Quellcode:
  frmNew.MeinString //abfragen
Gruß Jens

Newcomer91 25. Nov 2010 10:48

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Der Fehler war einfach dass ich verkehrt herum zugewiesen habe wie himitsu schon erkannt hatte,

anstatt dass ich frmNew.edtRent.Text:= edtResult.Text benutze, machte ich es genau anders herum..xD

Danke an alle

Jens Hartmann 25. Nov 2010 10:51

AW: Fehler bei String übertragung von einer Form auf eine andere
 
Trotzdem würde ich mir gedanken machen, die Daten wie genannte zu übergeben.

Gruß Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 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