Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi funktion in eine unit auslagern (https://www.delphipraxis.net/44651-funktion-eine-unit-auslagern.html)

fwsp 22. Apr 2005 09:38


funktion in eine unit auslagern
 
moin,

wie kann ich eine funktion auslagern?

alcaeus 22. Apr 2005 09:42

Re: funktion in eine unit auslagern
 
Hallo fwsp,

erklaer mal bitte genauer was du machen willst. Normalerweise musst du nur eine neue Unit erstellen, die Funktion in den implementation-Teil kopieren und den Funktionsheader zusaetzlich in den interface-Teil. Anschliessend bindest du diese neue Unit da ein, wo du sie brauchst. Je nachdem welche Objekte du aber verwendest, wird es mehr oder weniger aufwaendig (zusaetzliche Parameter definieren, zusaetzliche Units in der neuen Unit einbinden usw.)

Greetz
alcaeus

fwsp 22. Apr 2005 09:54

Re: funktion in eine unit auslagern
 
genau das hab ich ja gemacht, funktioniert aber nicht...

alcaeus 22. Apr 2005 09:57

Re: funktion in eine unit auslagern
 
Hallo fwsp,

zeig doch mal ein bisschen Source. Und was genau meinst du mit "funktioniert aber nicht"? WAS funktioniert nicht, welche Fehlermeldungen treten auf? Ohne weitere Infos wird das nur ein Ratespiel.
Poste einfach mal den Quellcode der Funktion die du ausgelagert hast, und die Fehlermeldungen die auftreten, dann kann man sehn was ueberhaupt los ist.

Greetz
alcaeus

DP-Maintenance 22. Apr 2005 12:21

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Windows API" nach "Object-Pascal / Delphi-Language" verschoben.
Kein Windows-API Problem

Kroko1999 22. Apr 2005 13:00

Re: funktion in eine unit auslagern
 
HAT HIER KEINER EINE GLASKUGEL :-D

fwsp 22. Apr 2005 15:46

Re: funktion in eine unit auslagern
 
so,
hier ist die ausgelagerte funktion:

Code:
unit URound;

interface

implementation

function runden(zahl : real; stellen : integer) : real;
var faktor : real;
    i     : integer;
begin
 if (zahl = 0)
  then runden := 0
  else if stellen = 0
   then
    begin
     zahl := int(zahl + 0.5);
     runden := zahl;
    end
  else
   begin
    faktor := 1;
    for i := 1 to stellen do
     begin
      faktor := faktor * 10;
     end;
    zahl := ((zahl * faktor) + 0.5);
    zahl := int(zahl);
    zahl := zahl / faktor;
    runden := zahl;
   end;
end;

end.
und hier der fehler:
[Fehler] calc.pas(533): E2003 Undefinierter Bezeichner: 'runden' und zwar bei diesem aufruf.

Code:
DLabel[s,f2,1].Caption := FloatToStr(URound.runden(erg,2));

alcaeus 22. Apr 2005 15:48

Re: funktion in eine unit auslagern
 
Zitat:

Zitat von alcaeus
Normalerweise musst du nur eine neue Unit erstellen, die Funktion in den implementation-Teil kopieren und den Funktionsheader zusaetzlich in den interface-Teil.

Mach mal genau was ich sage...

Greetz
alcaeus

Tyrael Y. 22. Apr 2005 15:49

Re: funktion in eine unit auslagern
 
Die Deklaration muss auch noch im Inteface-Teil stehen

Delphi-Quellcode:

unit URound;

interface
function runden(zahl : real; stellen : integer) : real;


implementation

fwsp 22. Apr 2005 15:54

Re: funktion in eine unit auslagern
 
danke sehr.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.

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