AGB  ·  Datenschutz  ·  Impressum  







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

Interfacedeklaration, brauche Hilfe!

Ein Thema von hennes80 · begonnen am 20. Nov 2006 · letzter Beitrag vom 20. Nov 2006
Antwort Antwort
hennes80

Registriert seit: 17. Nov 2006
8 Beiträge
 
#1

Interfacedeklaration, brauche Hilfe!

  Alt 20. Nov 2006, 10:38
Hallo ich habe ein Problem bei der Deklaration von folgenden Interface:
Delphi-Quellcode:
 TSession = class(TTypedComObject, ISession)
  private
    FSession :TSession;
    FstrType :string;
    //FFolders :TFolders;
    FParent : TApp;
    strSessionID :string;
    MyToolbox : TToolbox;
    MyWininet : TWininet;
    MyURLInfo : TURLInfo;
  protected
    function Logoff: HResult; stdcall;
    function Logon(Username, Password: OleVariant): HResult; stdcall;
    function setIP(Value: OleVariant): HResult; stdcall;
    constructor Create;
    destructor Destroy;
    {ISession-Methoden hier deklarieren}
  public
    //TODO: properties implementieren, methoden implementieren(GetDefaultFolder)

    //property Folders: TFolders read FFolders write FFolders;
    property Parent: TApp read FParent write FParent;
    property Session: TSession read FSession write FSession;
    property _type: string read FstrType write FstrType;
  end;

  TApp = class(TTypedComObject, IApp)
  private
    FApplication :TApp;
    FSession :TSession;
    FName :string;
    FVersion :string;
  protected
   {IApp-Methoden hier deklarieren}
  public
    property Application: TApp read FApplication write FApplication;
    property Session : TSession read FSession write FSession;
    property Name : string read FName write FName;
    property Version : string read FVersion write FVersion;
  end;
Die Zeile " FParent : TApp;" schmeisst die Compilermeldung "undefinierter Bezeichner", da TApp erst später deklariert wird. Wie kann ich das umgehen, OHNE TApp voher zu definieren?(Da TApp ebenfalls TSession nutzt, bleibt das Problem bestehen). Vielen Dank schonmal.

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Interfacedeklaration, brauche Hilfe!

  Alt 20. Nov 2006, 10:53
Moinsen,

versuch es mal so...

Delphi-Quellcode:
type
  TApp = class;

  TSession = class(TTypedComObject, ISession)
  private
    FSession: TSession;
    FParent: TApp;
    ...
  end;

   TApp = class(TTypedComObject, IApp)
   private
     ...
   end;
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
hennes80

Registriert seit: 17. Nov 2006
8 Beiträge
 
#3

Re: Interfacedeklaration, brauche Hilfe!

  Alt 20. Nov 2006, 10:59
Vielen Dank, scheint zu funktionieren
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Interfacedeklaration, brauche Hilfe!

  Alt 20. Nov 2006, 12:19
Zitat von hennes80:
Vielen Dank, scheint zu funktionieren
HI,
wird zwar funktionieren, aber ist imho eine unschöne Lösung. Das Problem dass du hier hast ist die gegenseitige Abhängigkeit von TApp und TSession. Da ist es dann aber gerade sauber, wenn du hier die wirklich benötigte Funktionalität in einem Interface festlegst und dann sowas hast wie:

Delphi-Quellcode:
TSession = class(TTypedComObject, ISession)
  private
    FSession: ISession;
    FParent: IApp;
....

TApp = class(TTypedComObject, IApp)
  private
    FApplication :IApp;
    FSession :ISession;
Dann kannst du auch mit einem TApp und einer beliebigen ISession arbeiten.

Gruß Der Unwissende
  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 19:33 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