ich versuche gerade mich in Pascal einzuarbeiten.
Damit ich verschiedene Dinge besser verstehe schreibe ich immer kleine Testproggys.
Ich möchte herausfinden wie ich Functionen und Proceduren auslagern kann.
Dazu habe ich eine MainUnit und eine RechnerUnit erzeugt.
In der MainUnit habe ich alle GUI-Elemente und die Ereignissbehandlung untergebracht.
In der Rechnerunit dann die zwei Functionen plus und minus.
Sind die beiden Functionen plus und minus in der MainUnit - dann funst es wie soll.
Wenn ich sie auslagere dann nicht.
Wo ist mein Fehler ?
hier die MainUnit
Code: Alles auswählen
unit Mainunit;
// Testprogram 1 "Rechner"
// Proceduren und Funktionen ausgelagert in einer Unit
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
RechnerUnit;
type
{ TForm1 }
TForm1 = class(TForm)
Button_Minus: TButton;
Button_Plus: TButton;
Edit_Zahl1: TEdit;
Edit_Zahl2: TEdit;
Edit_Ergebniss: TEdit;
Label_Zahl1: TLabel;
Label_Zahl2: TLabel;
Label_Ergebniss: TLabel;
procedure Button_MinusClick(Sender: TObject);
procedure Button_PlusClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
//function plus(z1,z2:string):string;
//begin
// result := FloatToStr(StrToFloat(z1) + StrToFloat(z2));
//end;
//function minus(z1,z2:string):string;
//begin
// result := FloatToStr(StrToFloat(z1) - StrToFloat(z2));
//end;
{ TForm1 }
procedure TForm1.Button_PlusClick(Sender: TObject);
begin
Edit_Ergebniss.Text := plus(Edit_Zahl1.Text,Edit_Zahl2.Text);
end;
procedure TForm1.Button_MinusClick(Sender: TObject);
begin
Edit_Ergebniss.Text := minus(Edit_Zahl1.Text,Edit_Zahl2.Text);
end;
end.
Code: Alles auswählen
unit RechnerUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
implementation
function plus(z1,z2:string):string;
begin
result := FloatToStr(StrToFloat(z1) + StrToFloat(z2));
end;
function minus(z1,z2:string):string;
begin
result := FloatToStr(StrToFloat(z1) - StrToFloat(z2));
end;
end.