unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
procedure AllEditKeyPress(Sender: TObject;
var Key: Char);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{
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;
Button1.OnClick := Button1Click;
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;
end.