Hallo
ich habe einen Währungsrechner erstellt.
Man kann auswählen wie man einen Betrag gerne gewechselt haben möchte.
Euro <-> Fremdwährung (Dollar, Pfund, Yen, Franken)
Nun mach ich meine Währungsauswahl mit RadioGroups.
Beim Klick eines Buttons aus der RG bekommt die Variable kurs einen Wert zugewiesen, mit dem sie dann in diesem Formular weiterarbeitet.
Nun will ich aber, dass ich die Variable ändern kann. Hab dazu schon sämtliche Vorbereitungen getroffen. Allerdings wird der neue Wert wenn ich dann ins "Auswahlformular" zurückgehe wieder von dem alten überschrieben.
Nun bräucht ich eine logische Lösung von jemandem. Eine Zählervariable funktioniert auch nicht. Aber seht selbst:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219:
| unit waehrungsrechner;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, StdCtrls;
type TwaehrungsrechnerF = class(TForm) private public end;
var waehrungsrechnerF: TwaehrungsrechnerF; ergebnis : double; kurs : double; null : integer;
implementation
uses waehrungaendern;
{$R *.dfm}
procedure TwaehrungsrechnerF.InFremdwhrung1Click(Sender: TObject); begin waehrungaendernF.Show; waehrungsrechnerF.Visible := false; end;
procedure TwaehrungsrechnerF.Programmende1Click(Sender: TObject); begin close; waehrungaendernF.Close; end;
procedure TwaehrungsrechnerF.FormCreate(Sender: TObject); begin Height := 570; Width := 350; ergebnis := 0; kurs := 0; end;
procedure TwaehrungsrechnerF.FormShow(Sender: TObject); begin ergebnis := 0;
caption := 'Waehrungsrechner'; Button0.Caption := 'RESET'; Button2.Visible := false; Button3.Visible := false; RadioGroup1.Caption := ''; RadioGroup1.ItemIndex := -1;
Label1.Caption := ''; Edit1.Text := ''; Edit1.Visible := false;
Label2.Caption := ''; ComboBox0.ItemIndex := -1; ComboBox0.Visible := false; ComboBox1.ItemIndex := -1; ComboBox1.Visible := false;
Button1.Caption := 'Berechnen';
Label5.Caption := ''; Button1.Enabled := false; Panel2.Visible := false; end;
procedure TwaehrungsrechnerF.RadioGroup1Click(Sender: TObject); begin
Edit1.Visible := true; ComboBox0.Visible := true; ComboBox1.Visible := true;
case RadioGroup1.ItemIndex of 0 : begin Label1.Caption := 'Euro: '; Label2.Caption := 'Zu Währung'; ComboBox0.Visible := true; ComboBox1.Visible := false; ActiveControl := Edit1; end;
1 : begin Label1.Caption := 'Betrag: '; Label2.Caption := 'Von Währung:'; ComboBox0.Visible := false; ComboBox1.Visible := true; ActiveControl := Edit1; end; end; end;
procedure TwaehrungsrechnerF.ComboBox0Click(Sender: TObject); begin
case combobox0.itemindex of 0 : kurs := 1.3729; 1 : kurs := 0.6797; 2 : kurs := 163.83; 3 : kurs := 1.6463; end;
Label5.Caption := 'Der Wechselkurs beträgt: '+FloatToStr(kurs); Button1.Enabled := true; end;
procedure TwaehrungsrechnerF.ComboBox1Click(Sender: TObject); begin
case combobox1.itemindex of 0 : kurs := 0.7244; 1 : kurs := 1.4696; 2 : kurs := 0.006119; 3 : kurs := 0.6080; end;
Label5.Caption := 'Der Wechselkurs beträgt: '+FloatToStr(kurs); Button1.Enabled := true; end;
procedure TwaehrungsrechnerF.Button1Click(Sender: TObject); begin
if (Edit1.Text = '') then begin if (messagedlg ('Sie haben keinen Betrag eingeben.',mtConfirmation, [mbOK],0) = mrOK) then begin ActiveControl := Edit1; Edit1.Text := FloatToStr(null) end; end;
ergebnis := (StrToFloat(Edit1.Text)) * kurs; Edit2.Text := FloatToStr(ergebnis);
Panel2.Visible := true; Label3.Caption := 'Betrag'; Label4.Caption := 'Währung: ';
case combobox0.ItemIndex of 0 : Edit3.Text := 'Dollar'; 1 : Edit3.Text := 'Pfund'; 2 : Edit3.Text := 'Yen'; 3 : Edit3.Text := 'Franken'; end; case combobox1.ItemIndex of 0 : Edit3.Text := 'Euro'; 1 : Edit3.Text := 'Euro'; 2 : Edit3.Text := 'Euro'; 3 : Edit3.Text := 'Euro'; end;
ActiveControl := Button0; end;
procedure TwaehrungsrechnerF.Edit1KeyPress(Sender: TObject; var Key: Char); var i:integer; begin
if Key = Chr(vk_Return) then begin Key := #0; Perform(wm_NextDlgCtl, 0, 0); end;
try i := StrToInt(key); except key := chr(0); end; end;
procedure TwaehrungsrechnerF.Button0Click(Sender: TObject); begin
waehrungsrechnerF.OnShow(Sender); ActiveControl := RadioGroup1; end;
end. |
Und hier noch kurz die Variablenänderung:
Delphi-Quelltext
1: 2:
| waehrungsrechner.kurs := StrToFloat(Edit2.Text); |