Delphi Eigene Unit erstellen! Wie?

kein pc wissen

Cadet 4th Year
Registriert
Feb. 2008
Beiträge
90
Hallo

Ich möchte in Delphi eine Unit anlegen, in der z.B. alle Technischen Formeln o.ä. gespeichert sind.

Ich weiß zwar, wie man eine neue Unit öffnet, aber nicht wie man in der Unit dann weiterarbeitet.

Es steht zwar:

unit Testunit;

interface

implementation

end.

doch die Einbindung von etwa "Function test(x:integer):real;", die mit der power Anwendung arbeitet oder andere Funktionen ist mir nicht bekannt. Wie müsste denn hier in das Beispiel die Funktion eingefügt werden, und wie sieht es am ende dann aus?

function test(x,y:integer):real;
begin
result:=power(x,y);
end;
 
hey,

Code:
unit Testunit;

interface

implementation
uses Math{ist glaube ich diese Unit, welche power enthält};

function test(x,y:integer):real;
begin
result:=power(x,y);
end; 



end.
Dann einfach noch diese Unit speichern und in der Unit im Uses-Teil einfügen, die diese Funktion benötigt
 
so, Ich hatte es kopiert und scheint zumindest zu starten. Aber das Problem, was dann kam war, dass die Unit nicht in form1 aufrufbar ist.

So sieht es momentan als beispiel aus:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,test;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a:real;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  a:=test.los(2,3);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  messagedlg(floattostr(a),mtinformation,[],0);
end;

end.


Und die neue Unit

unit Test;

interface

implementation
uses Math{ist glaube ich diese Unit, welche power enthält};

function los(x,y:integer):real;
begin
result:=power(x,y);
end;



end.

Als Meldung erscheint:

[Fehler] Unit1.pas(29): Undefinierter Bezeichner: 'los'
Die Unit alleine läuft, nur nachdem Unit Test eingefügt wurde, kam dieser Fehler. Hatte ich dabei etwas vergessen?
 
Code:
unit Test;

interface
function los(x,y:integer); //external {wahlweise}

implementation
uses Math{ist glaube ich diese Unit, welche power enthält};

function los(x,y:integer):real;
begin
result:=power(x,y);
end;

ich kann nur schätzen, kann grad nich in delphi...
 
das bringt leider auch nichts, aber ich glaube, dass das Problem nicht in der Unit Test, sondern in Unit1 liegt. Kann das stimmen?
 
also mein problem ist das: Wie mache ich bei der Unit Test eine Schnittstelle für die funktion^
 
Ich habe die Lösung nach langer Zeit gefunden (besser gesagt, mir wurde es gesagt):

Eine Eigene UNIT:

unit Test;

interface
function los(x,y:integer); //external {wahlweise}<= Hier sind die Fehler

implementation
uses Math{ist glaube ich diese Unit, welche power enthält}; <= Hier ist der Fehler

function los(x,y:integer):real;
begin
result:=power(x,y);
end;


Die Unit sollte so aussehen, damit sie funktioniert:

unit Test;//Name der UNIT

interface
//Eingabe von USES und des Funktionskopfes
uses math;

function
los(x,y:integer):real;


implementation
//Eingabe der Funktion

function los(x,y:integer):real;
begin
result:=power(x,y);
end;

Das ist die Lösung ohne Klassen, die wären wohl in einem anderen Thema besser. Danke für eure Hilfe!
 
Zurück
Oben