Startseite ¦  was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews ¦  sonstiges
kylix ¦  tutorials ¦  online shop ¦  fotos ¦  Add&Win Gewinnspiel


Willkommen Gast. Bitte einloggen oder registrieren.
21.05.2012, 12:15:10
Übersicht Hilfe Suche Einloggen Registrieren

+  SwissDelphiCenter Forum
|-+  German Forums
| |-+  Allgemeines Forum
| | |-+  Problem mit Forward-Deklaration
« vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Problem mit Forward-Deklaration  (Gelesen 2173 mal)
rGb
Newbie
*
Offline Offline

Beiträge: 25


66402621
WWW
« am: 05.03.2002, 21:45:47 »

Hi Jungs ;)

Folgende Situation bereitet mir Kopfzerbrechen:

--------------------------------------------------------------------------
unit NewClasses;

interface

uses
  Classes, Controls, Dialogs, ExtCtrls, Graphics, Types, SysUtils;

type
  TRootClass = class(TObject)
  private
    ObjectMoving: boolean;
    ObjectMoveStartPos: TPoint;
  public
    ClassID: integer;
    Graphic: TImage;
    InputAnchor, OutputAnchor: TRect;
    Input, Output: TLink;
    constructor Create; virtual;
    destructor Destroy; virtual;
    procedure Exec; virtual; abstract;
    function InRect(X, Y: integer; Rect: TRect): boolean; virtual;
    procedure GraphicMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); virtual;
    procedure GraphicMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
    procedure GraphicMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
  end;

  TLink = class(TObject);
  private
    Input, Output: TRootClass;
    StartPos, EndPos: TPoint;
    PenWidth: integer;
    Canvas: TCanvas;
  public
    constructor Create;
    destructor Destroy;
    procedure DrawLink(StartPos, EndPos: TPoint);
    procedure ReDrawLink;
    procedure DeleteLine;
    procedure Send(Sender: TRootClass; Msg: string);
    procedure SetCanvas(x: TCanvas);
    procedure SetInput(x: TRootClass);
    procedure SetOutput(x: TRootClass);
    function ReadInput: TRootClass;
    function ReadOutput: TRootClass;
  end;

implementation

[...]
--------------------------------------------------------------------------

Gibt es einen Weg, mittels dem ich das Objekt TLink in TRootClass verwenden kann, und umgekehrt (TRootClass in TLink)?
Bisher gibt der Compiler nur die Fehlermeldung "Undeclared identifiert: 'TLink'" aus.
Beide Klassen in verschiedene Units zu packen hat auch keine Abhilfe geschafft, dann kommt der wunderbare "Cross reference"-Fehler.
Gespeichert
Philipp Hug
Newbie
*
Offline Offline

Beiträge: 10



« Antworten #1 am: 05.03.2002, 21:55:08 »

Die Forward-Deklaration definierst du so:

type
 TLink = class; //Forward deklaration

  TRootClass = class(TObject)
    Input, Output: TLink ;
  ...
  end;

  TLink = class(TObject)
    Input, Output: TRootClass ;
   ...
   end;
Gespeichert

Philipp Hug
rGb
Newbie
*
Offline Offline

Beiträge: 25


66402621
WWW
« Antworten #2 am: 05.03.2002, 21:59:19 »

Klasse.. danke :)
Gespeichert
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS