AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WErteübergabe zwischen 2 Klassen

Ein Thema von Osse · begonnen am 30. Apr 2005 · letzter Beitrag vom 1. Mai 2005
Antwort Antwort
Osse

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

WErteübergabe zwischen 2 Klassen

  Alt 30. Apr 2005, 18:27
Hallo,

ich schreibe gerade an einem kleienen Monitorprogramm. Dazu ist es nötig, die ankommenden Daten möglichst schnell auszulesen. Aus diesem Grunf laufen in meinem Programm 2 Threats.

der 1. ist für das ganz normale Programm,
der 2. ist dafür zuständig die ganze Zeit den Eingangsport zu überwachen.

Ich bekomme auch schön immer ein Ereignis von Threat2, wenn ein Telegramm ankommt.

Das Problem (mein Problem) ist, dass ich 2 Klassen habe. Möchte aber eine Variable übergeben. Wie kann ich von Klasse 1 auf Klasse 2 zugreifen??

Delphi-Quellcode:
TRcvThread = class(TThread)
  private
    hClient: Byte;
    hRcvNet: HCANNet;
    msg: TCANMsg;
    rcvtime: TCANTimestamp;
    procedure NachrichtAusgeben;
  protected
    procedure Execute; override;
  end;
Die Variable ist die Client Variable in

Delphi-Quellcode:
TController = CLASS
    Client: Byte;          // Typ 'Client-Handle' Byte Variable
    Netz : Byte;    // Typ 'Net-Handle' Byte Variable
    Hardware : Byte; // Typ 'Hardware-Handle' Byte Variable
    CONSTRUCTOR Create ;
   END ;

  TCAN_Controller = CLASS(TController)

      procedure Initalisierung_CANController(Netz : Byte ; _Hardware : Byte ;
                     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 ;
......
 public
   CAN_Controller : TCAN_Controller;
   FRcvThread: TRcvThread; // Thread (Unterprozess) für Ankommende Telegramme
Ich möchte folgende Funktion ausführen: FRcvThread.hClient := CAN_Controller.Client;

Hat da jemand ne Ahnung??


Später muss ich dann einen Array übergeben in dem die ausgelesenen Daten aus der Schnittstelle stehen. Hab da schon was mit sync. gelesen, um 2 Threads abzugleichen. HAt damit jemand erfahrung??

Vielen Dank
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: WErteübergabe zwischen 2 Klassen

  Alt 1. Mai 2005, 19:01
Hi.

Du kannst auf das Feld hClient nicht zugreifen, da es als private deklariert ist. Verschiebe es einfach nach public oder richte eine property ein, dann funktioniert es.

Delphi-Quellcode:
TRcvThread = class(TThread)
  private
    hRcvNet: HCANNet;
    msg: TCANMsg;
    rcvtime: TCANTimestamp;
    procedure NachrichtAusgeben;
  protected
    procedure Execute; override;
  public
    hClient: Byte;
  end;
oder

Delphi-Quellcode:
TRcvThread = class(TThread)
  private
    hClient: Byte;
    hRcvNet: HCANNet;
    msg: TCANMsg;
    rcvtime: TCANTimestamp;
    procedure NachrichtAusgeben;
  protected
    procedure Execute; override;
  public
    property Client: Byte read hClient write hClient;
  end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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