Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Exception EAccessViolation bei Initalisierung (https://www.delphipraxis.net/45113-exception-eaccessviolation-bei-initalisierung.html)

Osse 29. Apr 2005 22:24


Exception EAccessViolation bei Initalisierung
 
Hey Leute,

war heute Mittag schon mal hier, aber ich kriegs net hin :wall:

Will eine Klasse deklarieren:

Delphi-Quellcode:
   TController = CLASS
    _Client: Byte;           // Typ 'Client-Handle' Byte Variable aus Unit CANAPI2 eigentlich eine Byte Variable
    Net_ : Byte;           // Typ 'Net-Handle' Byte Variable aus Unit CANAPI2 eigentlich eine Byte Variable
    Hardware_ : Byte;    // Typ 'Hardware-Handle' Byte Variable aus Unit CANAPI2 eigentlich eine Byte Variable
    CONSTRUCTOR Create ;
  END ;

  TCAN_Controller = CLASS(TController)
      procedure Initalisierung_CANController(Netz : HCANNet ; Hardware : HCANHw ;
                Baudrate : Integer ; Netzname : String ; Clientname : String ;
                var Client : HCANClient);
      procedure Netzinfo(LB: TListBox );
      procedure Hardwareinfo(LB: TListBox);
      procedure Hardware_analyse(var Hardware : HCANHw);
      procedure Status(LB : TListBox);
      CONSTRUCTOR Create ;
    end;
Nachdem das so funktioniert, bekomme ich unter :

Delphi-Quellcode:
public
  property ClientHandle: Byte read CAN_Controller._Client;
  CAN_Controller : TCAN_Controller;    // Can Controller einstellungen und eingenschaften,
                                                             // Klasse deklariert in der Controller.pas
immer eine Fehlermeldung. Mein Problem ist, dass ich absolut nicht verstehe, was das property ist.

Naja, hab das dann mal auskommentiert und mich mit dem Rest beschäftigt. Aber bei

Delphi-Quellcode:
CONSTRUCTOR TController.Create ;
BEGIN
  _Client:= 0;     
  Net_ := 0;        
  Hardware_ := 0;
END ;
Bekomme ich immer die EAccessViolation. Hab schon gelesen, dass auf nicht initalisierten Speicher zugegriffen wird, aber ich bin total am Ende und weiß net was ich noch machen soll :coder2: .

Vielen Dank für eure Hilfe

SirThornberry 29. Apr 2005 22:48

Re: Exception EAccessViolation bei Initalisierung
 
der CAN_Controller muss im Create natürlich noch mit
Delphi-Quellcode:
  CAN_Controller := TCAN_Controller.Create(...
initialisiert werden.

desweiteren solltest du auch bei der Klasse "TController" dinge wie "private", "public" etc. verwenden und nicht direkt der klasse unterjubeln

Osse 29. Apr 2005 23:32

Re: Exception EAccessViolation bei Initalisierung
 
Jo, danke

Ich bin ein wenig :wall:

Sehr gut

DP-Maintenance 30. Apr 2005 01:15

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Freeware" nach "Object-Pascal / Delphi-Language" verschoben.
Ist keine Vorstellung einer Freeware


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