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 andere unit direkt öffnen (https://www.delphipraxis.net/23901-procedure-aus-andere-unit-direkt-oeffnen.html)

sAibo 11. Jun 2004 17:45


procedure aus andere unit direkt öffnen
 
Hi alle zusammen, ich frag mich heute schon den ganzen Tag wie ich eine Procedure bzw Funktion aus einer anderen Unit direkt aufrufen kann. Muss doch möglich sein?
Naje mein CT Lehrer konnte mir leider mal wieder nich weiter helfen :roll: da dacht ich, ich frag hier einfach mal. Wusste selber auch nicht genau nach was ich suchen sollte =)

danke

Christian Seehase 11. Jun 2004 17:51

Re: procedure aus andere unit direkt öffnen
 
Moin sAibo,

einfach die Unit, in der sich die Funktion/Prozedur befindet mit in die Uses Anweisung aufnehmen.
Ob Du nun die Uses Anweisung im Interface oder Implementation Abschnitt nimmst, hängt auch vom Zusammenhang ab.
Die aufzurufende Prozedur/Funktion muss allerdings im interface Abschnitt veröffentlicht worden sein.

sAibo 11. Jun 2004 18:03

Re: procedure aus andere unit direkt öffnen
 
Hi Danke für die schnelle Antwort
Bei Uses im Implementation Abschnitt hab ich die verschieden Units untereinander schon alle drin.

Was meinst du genau mit "im Interface Teil veröffentlicht"?

Christian Seehase 11. Jun 2004 18:11

Re: procedure aus andere unit direkt öffnen
 
Moin sAibo,

mit veröffentlichen meine ich folgendes:

Delphi-Quellcode:
unit unit1;

interface

function MeineFunktion : integer;

implementation

function MeineFunktion : integer;
begin
  //....
end;
Würde die Zeile im interface Abschnitt fehlen, könnte man die Funktion nicht aus einer anderen Unit heraus ansprechen, selbst wenn man sie mit in die unit mit in eine uses Anweisung einer anderen Unit einbaut.

sAibo 11. Jun 2004 18:28

Re: procedure aus andere unit direkt öffnen
 
Ohje ich hoffe ich stell mich jetzt nich ganz dumm an :?

Eigentlich dachte ich zu wissen was du meinst. Nur bekomm ich dann immer eine Fehlermeldung

Delphi-Quellcode:
unit UnitConnecting;

interface

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

type
  TFormConnect = class(TForm)
    StatusBar1: TStatusBar;
    MemoConnect: TMemo;
    ButtonAbbrechen: TButton;
    ButtonOk: TButton;
    procedure ButtonAbbrechenClick(Sender: TObject);
    procedure connect;  // <--- Hier die besagte Funktion

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormConnect: TFormConnect;

implementation

uses UnitMain, UnitSpielStarten;
Fehlermeldung: Ungenügend Forward- oder ExternalDeklaration 'TFormConnect.connect' :(

Christian Seehase 11. Jun 2004 18:37

Re: procedure aus andere unit direkt öffnen
 
Moin sAibo,

was Du deklariert hast, ist eine Methode der Klasse TFormConnect, was mir im gezeigten Zusammenhang auch sinnvoll erscheint.
Das ginge auch, nur müsstest Du sie dann im Implementation Abschnitt mit

Delphi-Quellcode:
procedure TFormConnect.Connect;
begin
  //...
end;
deklarieren.

[EDIT]
Ich dachte ursprünglich an eine Deklaration ausserhalb einer Typdeklaration.

Dann müsstest Du die Prozedur über den Objektnamen.Connect ansprechen, in Deinem Beispiel also

Delphi-Quellcode:
FormConnect.Connect
[/EDIT]

glkgereon 14. Jun 2004 13:55

Re: procedure aus andere unit direkt öffnen
 
du musst die dann aber aus einer anderen unit mit Formconnect.connect ansprechen, soweit ich weiss....!!!!


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