Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ein kleines Problem mit Unit und Funktionen (https://www.delphipraxis.net/89223-ein-kleines-problem-mit-unit-und-funktionen.html)

Lotus 27. Mär 2007 18:47


Ein kleines Problem mit Unit und Funktionen
 
Hallo liebe Delphi-Community.
Ich habe seit ein paar Wochen mich etwas in das komplexe Leben von Delhpi versucht reinzuleben aber scheiter an so manchen ecken und kannte. Heute wars mal wieder so weit und drum bitte ich euch mir einmal eine hilfe zu geben.
Was ich hier schon in manchen Thread gelesen habt legt ihr hier wert darauf das jeder meistens auf seine eigenen fehler kommen soll in dem ihr ihm hauptsächlich nur anregungen gibt und keinen code vorsagt, was ich auch gut finde nur stelle ich mich manchmal echt blöd an, ich hoffe das wir das auch so gelöst kriegen ;)

Nun mal zu meinem Problem.
Ich bin gerade dabei ein Programm zur Trigonometrie zu schreiben. Die Aufgabe besteht darin eine extra Unit einzulagern und in dieser Unit sollen 2 Funktionnen und eine Prouzedur enthalten sein. Ich poste euch einfach mal die Codes die ich dafür immoment schon habe!

Extra Unit

Delphi-Quellcode:
unit trigo;

interface

implementation

function gradzubogen(x:real):real;
begin
result:=x*0.01745;
end;

end.
Standard Unit

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    E1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    E2: TEdit;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var x,loesung:real;
begin
x:=strtofloat(E1.Text);
loesung:=gradzubogen(x);
E2.Text:=floattostr(loesung);
end;

end.
er gibt mir zu erkennen das er gradzubogen nicht kennt, also ein undefinierter bezeichner ist. liegt das daran das er gar nicht auf die unit trigo drauf zu greift? wenn ja wie kann man das beheben?
freue mich über jede schnelle hilfe!!
danke mfg Lotus

Matze 27. Mär 2007 18:51

Re: Ein kleines Problem
 
Hi, herzlich willkommen!

So helfen wir doch gerne. :) Aber bitte ändere den Titel noch in einen aussagekräftigeren, damit man von vornherein erkennt, worum es in diesem Thema geht.

Du musst die Funktion im interface-Teil bekanntgeben:

Delphi-Quellcode:
interface

  function gradzubogen(x: real): real;
Kannst natürlich auch public dafür nutzen. Statt Real würde ich übrigens Double nutzen, da meines Wissens intern so oder so Double aufgerufen wird.

Robert Marquardt 27. Mär 2007 18:52

Re: Ein kleines Problem
 
Delphi-Quellcode:
unit trigo;

interface

function gradzubogen(x:real):real;

implementation

function gradzubogen(x:real):real;
begin
result:=x*0.01745;
end;

end.
Na in der implementation-Section ist die Fuktion nur lokal zur Unit. Die Deklaration muss auch in der interface-Section aufgefuehrt werden, damit sie nach aussen sichtbar ist.

fLaSh11 27. Mär 2007 18:56

Re: Ein kleines Problem mit Unit und Funktionen
 
Schade Problem schon gelöst...

Aber wie wärs, wenn du die Extra-Unit folgendermaßen verschönerst?

Delphi-Quellcode:
unit trigo;

interface

const
  pi = 3.141592653589793;

function gradzubogen(x:real):real;

implementation

function gradzubogen(x:real):real;
begin
  result:=x*(pi/180);
end;

end.
:-D

Lotus 27. Mär 2007 19:27

Re: Ein kleines Problem mit Unit und Funktionen
 
wär natürlich eine möglichkeit, nur ist PI bei delphi nicht schon vorprogrammiert???

marabu 27. Mär 2007 19:32

Re: Ein kleines Problem mit Unit und Funktionen
 
Hallo Lotus,

wenn dein Delphi die Unit Math mitbringt, dann ist auch die Funktion DegToRad() schon implementiert.

Grüße vom marabu

Lotus 27. Mär 2007 19:42

Re: Ein kleines Problem mit Unit und Funktionen
 
joa das mag sein, nur meine Lehrerin wollte ja das wir diese selber schreiben ;-)
ist zwar nix großes aber wie lehrer halt manchmal sind xD

Matze 27. Mär 2007 19:48

Re: Ein kleines Problem mit Unit und Funktionen
 
Zitat:

Zitat von Lotus
wär natürlich eine möglichkeit, nur ist PI bei delphi nicht schon vorprogrammiert???

Jupp, das ist korrekt. Nur nicht ganz so genau, wie fLaSh es geschrieben hat, sondern eine Nachkommastelle weniger: 3,14159265358979 :mrgreen:

fLaSh11 27. Mär 2007 20:46

Re: Ein kleines Problem mit Unit und Funktionen
 
genau deshalb hab ich sie redefiniert :mrgreen:

//Edit
oder:
Zitat:

Zitat von Wikipedia
Die ersten 100 Nachkommastellen sind
π ≈ 3,141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 944 592 307 816 406 286 208 998 628 034 825 342 117 067 9


Matze 27. Mär 2007 20:59

Re: Ein kleines Problem mit Unit und Funktionen
 
Das kann man sich seitenweise runterladen, aber das bringt doch nichts. :roll: Das würde der Lehrerin auch nicht gefallen, denn das ist einfach Unfug. Außerdem gehört das nicht hierher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz