Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedure aus anderer Unit aufrufen (https://www.delphipraxis.net/39138-procedure-aus-anderer-unit-aufrufen.html)

Sascha L 29. Jan 2005 11:39


Procedure aus anderer Unit aufrufen
 
Hallo,

ich habe 2 Units. In der 2. Unit habe ich eine Procedure ausgelagert.

Ich habe die units auch in die uses-Klausel aufgenommen, aber wie kann ich auf die Procedure aus der 2.Unit zugreifen?

Wenn ich "Unit2." eingebe, dann habe ich lediglich die Variablen und Konstanten zur Verfügung.

Wenn die 2. Unit ein Formular hätte, wäre es ja kein Problem, denn dann bräuchte ich ja nur im "public"-Teil der type-Klausel die Procedure reinschreiben, aber meine 2. Unit hat kein Formular.

Viele Grüße
Sascha

Luckie 29. Jan 2005 11:43

Re: Procedure aus anderer Unit aufrufen
 
Du musst die Prozedur aus Unit2 im Interface-Abschnitt "veröffentlichen".

Elite 29. Jan 2005 11:47

Re: Procedure aus anderer Unit aufrufen
 
Du musst in der 2. Unit eine Deklaration anlegen, die die Prozedur nach außen hin verfügbar macht. Etwa in der Form:
Delphi-Quellcode:
unit Unit2;

interface

procedure Test;

implementation

procedure Test;
begin
  beep;
end;

end.

Sascha L 29. Jan 2005 11:47

Re: Procedure aus anderer Unit aufrufen
 
ja aber wie?

einfach nur public und dann die Procedure?

Das geht nämlich nicht.

Darum frage ich ja, wenn ich type TForm2=class(TForm) hätte, wäre es ja kein Problem, weil ich ja die Procedure dann dort hineinschreibe, aber ich habe ja nun nichts dergleichen dort stehen.


EDIT:

@elite: DANKE! :)


EDIT2:
Dadurch habe ich aber nun folgendes Problem:

Ich habe Parameter bei der Procedure. z.B. TEmbeddedWB, die entsprechende Unit habe ich in Unit1 eingebunden, es wäre doch eigentlich etwas blöd, sie nun noch mal in Unit2 einzubinden. Unit1 habe ich ja im implemention-Bereich eingebunden, nur hat diese ja noch nicht abgearbeitet, wenn er im interface-Bereich ist.

Luckie 29. Jan 2005 11:52

Re: Procedure aus anderer Unit aufrufen
 
@Elite: Das ist keine foward-Deklaration. Forward-Deklarationen werden mit dem Schlüsselwort forward gekennzeichnet. Siehe dazu auch die Online Hilfe. Desweiteren haben forward-Deklarationen einen ganz anderen Sinn und Zweck.

Elite 29. Jan 2005 11:54

Re: Procedure aus anderer Unit aufrufen
 
Ok, dann eben nicht :stupid:
Habs korrigiert.

Sascha L 29. Jan 2005 12:31

Re: Procedure aus anderer Unit aufrufen
 
Nun habe ich aber immernoch folgendes Problem:

Ich habe Parameter bei der Procedure. z.B. TEmbeddedWB, die entsprechende Unit habe ich in Unit1 eingebunden, es wäre doch eigentlich etwas blöd, sie nun noch mal in Unit2 einzubinden. Unit1 habe ich ja im implemention-Bereich der 2. Unit eingebunden, nur wurde diese ja noch nicht abgearbeitet, wenn er im interface-Bereich ist.

Logic 4. Mär 2005 15:41

Re: Procedure aus anderer Unit aufrufen
 
Also bei mir klappt das nicht...

Ich kann da entweder den namen meiner Procedure eintragen oder procedure und den namen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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