Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Edit Felder mit Rechenfunktionen erstellen aber wie?

  Alt 23. Feb 2005, 08:47
Hai Duffy Duck,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS.

Zitat von Duffy Duck:
...Ist mein vorhaben überhaupt möglich?....
Vieles ist möglich Und in diesem Fall auch recht einfach.
Hier mal ein Beispiel. Du brauchst dafür 4 Editfelder und einen Button:
Delphi-Quellcode:
{
In den Editfelder werden nur Zahlen, das Dezimaltrennzeichen
und die Backspace-Taste zugelassen
}

procedure TForm1.AllEditKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9', #8, DecimalSeparator]) then
  begin
    Key := #0;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Allen drei Eingabefeldern wir die selbe OnKeyPress-Methode zugewiesen
  Edit1.OnKeyPress := AllEditKeyPress;
  Edit2.OnKeyPress := AllEditKeyPress;
  Edit3.OnKeyPress := AllEditKeyPress;
  // Alle Editfelder löschen
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  zahl1,
  zahl2,
  zahl3 : Real;
  ergebniss : Real;
begin
  // Prüfen ob in den Editfeldern etwas steht.
  if (Edit1.Text = '') then
  begin
    ShowMessage ('Bitte im Edit1 etwas eingeben');
    Edit1.SetFocus; // Caret in Edit1 setzen
    Exit; // Abbruch der Procedure
  end;

  if (Edit2.Text = '') then
  begin
    ShowMessage ('Bitte im Edit2 etwas eingeben');
    Edit2.SetFocus;
    Exit;
  end;

  if (Edit3.Text = '') then
  begin
    ShowMessage ('Bitte im Edit3 etwas eingeben');
    Edit3.SetFocus;
    Exit;
  end;

  zahl1 := StrToFloat(Edit1.Text); // Zahl aus Edit1
  zahl2 := StrToFloat(Edit2.Text); // Zahl aus Edit2
  zahl3 := StrToFloat(Edit3.Text); // Zahl aus Edit3

  ergebniss := (zahl1 + zahl2) / zahl3; // Die Berechnung

  Edit4.Text := FloatToStr(ergebniss); // Ausgabe des Ergebnisses
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat