[delphi] Eingabe in Form1, Ausgabe in Form2

steffi112358

Cadet 4th Year
Registriert
Nov. 2004
Beiträge
73
Hi,

wir sollen als KA-Vorbereitung eine Rechnung mit doppelter Verzweigung schreiben.
Da das so langweilig is, wollte ich eingentlich die Eingabe (also Adresse, Preis pro Stück und Stückzahl) ins 1. Fenster machen und im 2. dann den Gesamtpreis und Adresse ausgeben.

Ich hab jetzt gefunden, wie man das 2.Fenster anzeigt (Form2.ShowModal), aber ich hab keine Ahnung, in welche Unit ich die Berechnung schreiben soll, bzw. wie ich es schaffe die Variabeln für beide Units zu nutzen.

Wäre schön, wenn mir da jemand ein paar Tipps geben könnte!

mfg Steffi
 
Wenn Form2 schon existiert und du unit2 in unit1 eingebunden hast, kannst du direkt vor "showmodal" das Ergebnis in die entsprechende komponente von Form2 schreiben.

Dann steht sie da schon drin, wenn du form2 modal anzeigst.

Du könntest das ergebnis allerdings auch einfach mit ShowMessage(Msg:string); ausgeben lassen ;-)
 
mmh, danke erstma, aber so richtig blick ichnich durch!

Also ich will es so machen, dass wenn z.B. button1 geclickt wird, erstma der gesamtpreis augerechnet wird, dann die verzweigung (wenn der gesamtpreis größer1000 dann 5% rabatt,...) und noch dazu soll sich das 2. fenster öffnen.

Das is dann so aufgebaut, dass man es ausdrucken könnte und dass z.B keine edit-komponenten mehr da sind. und in dem wird halt der Gesamtpreis mit rabatt ausgegeben und die adresse die im 1.Fenster eingegeben wurde,...

wenn ich aber jetzt in unit1 schreiben würde:
Code:
edit1.text:=floattostr(gesamtpreis);
dann ändert sich ja der text des eitd1 in form1, und wenn ich den befehl in unit2 eingebe, wird '0' angezeigt.



Tut mir leid, dass meine Fragen so dumm gestellt sind und ansich schon dumm sind, aber ich kenn mich mit delphi nich so gut aus (halt nur das bissl was wir in der schule machen). Aber ich bin die beste aus dem kurs, irgendwann werd ich es begreifen*g*

Ich hoffe ihr habt geduld mit mir!

mfg steffi
 
Versuch das mal:

Code:
uses unit2;

procedure TForm1.Button1Click(Sender:TObject);
Var
  Gesamtpreis:Real;
Begin
  Gesamtpreis:=Berechne_Gesamtpreis;
  if (Gesamtpreis>1000) Then
  Begin
    Gesamtpreis:=Gesamtpreis*1.05;
  End;
  try
    Form2.Edit1.Text:=FloatToStr(Gesamtpreis);
  except
    showmessage('Beim Berechnen des Gesamtpreises is tein Fehler aufgetreten.');
  end;
  Form2.ShowModal;
End;
 
ich seh jetzt nich so ganz bei deiner beschreibung durch, aber ich versuchs mal:

sollte eigentlich schon reichen, wenn du sowas ähnliches machst (is eigentlich nich wirklich kompliziert):
Code:
....
var
  Form1: TForm1;
  inhalt:string;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
inhalt:=Edit1.Text;
Form2.Edit1.Text:=inhalt;
Form2.Showmodal;
end;

...

normalerweise fragt dann mein delphi (delphi 7) ob ich die Unit2 (wo nun Form2 gespeichert is) einfügen soll, was man dann einfach bestätigen kann.
bei dem teil da oben, hast jetzt einfach nen textfeld, wo du was eingeben kannst und mit dem button öffnet sich dann das fenster von form2 wo dann dort im textfeld dann der variableninhalt wiedergegeben wird.


edit: verdammt wieder einer schneller gewesen ^^
 
deadzoneman schrieb:
edit: verdammt wieder einer schneller gewesen ^^
^^ich hab ja auch frei hand geschrieben udn ned extra dafür delphi gestartet ;)
 
Danke ihr zwei!

Ich wusste nur nich, dass man vor das edit1.text noch form2. schreiben muss (is aber irgendwie logisch :rolleyes: )

Also nochma DANKE!
Ich werd mich bestimmt mal wieder melden, da wir in der Schule nichmehr viel mit Delphi machen.

Steffi
 
Hi Steffie,

wenn du mal wieder Delphi-Probleme hast, kann ich dir nur zu Delphi-Praxis raten. Dort findest du auf (fast) alle Fragen eine Antwort.

MfG
André
 
Zurück
Oben