Einzelnen Beitrag anzeigen

Osse

Registriert seit: 25. Mär 2005
Ort: Hamburg
74 Beiträge
 
Delphi 5 Enterprise
 
#1

Unitis, external Proceduren deklarieren, oder wie auch immer

  Alt 29. Apr 2005, 12:18
Moin, Moin

ich hab gerade ein kleines Projekt geschrieben, welches langsam ausufert. Deshalb hab ich jetzt mal versucht meherer Units zu schreiben und mein Hauptprogramm aufzuräumen.

Soweit so gut.

Dachte mir das jetzt auch mal richtig mit den Classen so zu machen, da es ja wirklich die Übersichtlichkeit verbessert.

Nun mein Problem:

In der Main Unit möchte ich die Procedure
Delphi-Quellcode:
 procedure Initalisierung_CANController(Netz : HCANNet ; Hardware : HCANHw ;
    Baudrate : Integer ; Netzname : String ; Clientname : String ; var Client : HCANClient);
aufrufen, welche ich in einer anderen Unit geschrieben habe.

Delphi-Quellcode:
interface

uses
  Windows,WinTypes, Winprocs, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, CanApi2, ExtCtrls, ComCtrls, Menus, SyncObjs, Grids;

type
//allgemeine Controlerbezeichnung
   TController = CLASS
       m_hClient: HCANClient;    // Typ 'Client-Handle' Byte Variable aus Unit CANAPI2 eigentlich eine Byte Variable
      m_hNet : HCANNet;
    m_hHardware : HCANHw;
   END ;

  CAN_Controller = CLASS(TController);


   procedure Initalisierung_CANController(Netz : HCANNet ; Hardware : HCANHw ;
    Baudrate : Integer ; Netzname : String ; Clientname : String ; var Client : HCANClient);

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


end;

implementation

//******************************************************************************
// Initalisierung des Controllers
//
// Funktion : Einrichen und Verbinden des CAN Controllers mit einem Nezt.
//                     Alle wichtigen Parameter können eingestellt werden.
//
// Eingabeparameter :    - Clientname   : Name des Clients, der angemeldet ist, wird vom aufruf übergeben
//                                 - Netz            : Handle des PCAN-Netzes Nummer des Netzes : definiert in CanApi2
//                                  - Netzname      : Name des Netzes,wo sich angemeldet werden soll
//                                 - Hardware      : angeschlossene Hardware
//                                 - Baudrate      : einstellen der Übertragungsrate
//
// Rückgabewert :            - Client         : Gibt den Client zurück
//******************************************************************************
procedure Initalisierung_CANController(Netz : HCANNet ; Hardware : HCANHw ;
    Baudrate : Integer ; Netzname : String ; Clientname : String ; var Client : HCANClient);
Das funktioniert aber so nicht. Hab zunächst einen Fehler in der Klassendeklaration. Wie muss ich das schreiben, dass die Prozedur auch in dem Hauptprogramm erkannt wird?? Irgendwas mit external????

Im Hauptprogrmm hab ich schon die Unit eingebunden und es Funktioniert auch.

Vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat