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