![]() |
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:
Standard Unit
unit trigo;
interface implementation function gradzubogen(x:real):real; begin result:=x*0.01745; end; end.
Delphi-Quellcode:
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?
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. freue mich über jede schnelle hilfe!! danke mfg Lotus |
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:
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.
interface
function gradzubogen(x: real): real; |
Re: Ein kleines Problem
Delphi-Quellcode:
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.
unit trigo;
interface function gradzubogen(x:real):real; implementation function gradzubogen(x:real):real; begin result:=x*0.01745; end; end. |
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:
:-D
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. |
Re: Ein kleines Problem mit Unit und Funktionen
wär natürlich eine möglichkeit, nur ist PI bei delphi nicht schon vorprogrammiert???
|
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 |
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 |
Re: Ein kleines Problem mit Unit und Funktionen
Zitat:
|
Re: Ein kleines Problem mit Unit und Funktionen
genau deshalb hab ich sie redefiniert :mrgreen:
//Edit oder: Zitat:
|
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