Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Interface in einer Klasse

  Alt 15. Feb 2006, 11:34
Kommando zurück, das habe ich schon so gehabt.

OK, konkret sieht es so aus: Ich habe die Typbibliothek JabberCOM_TLB.pas (siehe Anhang, Link zur Interface Dokumentation: http://jabbercom.sourceforge.net/jsession.php3). Dann habe ich da die Klasse:
Delphi-Quellcode:
type
  TOnConnect = procedure(Sender: TObject) of object;
  TOnAuthError = procedure(Sender: TObject) of object;

  TDWJabberSession = class(TObject)
  private
    FJabberSession: TJabberSession;
    FServer: WideString;
    FUser: WideString;
    FPW: WideString;
    FResource: WideString;
    FPort: Integer;
    FConnected: Boolean;
    procedure SetServer(AServer: WideString);
    procedure SetUser(AUser: WideString);
    procedure SetPassword(APW: WideString);
    procedure SetResource(AResource: WideString);
    procedure SetPort(APort: Integer);
    function GetConnected: Boolean;
  public
    constructor Create(AServer: WideString; AUser: WideString; APassword: WideString;
      AResource: WideString; APort: Integer); overload;
    constructor Create; overload;
    destructor Destroy; override;
    property Server: WideString write SetServer;
    property User: WideString write SetUser;
    property Password: WideString write SetPassword;
    property Resource: WideString write SetResource;
    property Port: Integer write SetPort;
    procedure Connect;
    property IsConnected: Boolean read GetConnected;
  end;
Die Connect Methode sieht so aus:
Delphi-Quellcode:
procedure TDWJabberSession.Connect;
begin
  ShowMessage(FUser); // ist nicht leer und stimmt
  FJabberSession.DoConnect(False, jatPlainText);
end;
Das Problem ist, dass ich einen Authentifizierungsfehler bekomme. Ich vermute mal, dass die erforderlichen Parameter an das Interface nicht weitergegeben werden, obwohl in der ShowMessage die Variable richtig ausgegeben wird. Komisch ist allerdings, dass wenn ich den Mauszeiger ober FJabberSession halte nur die Ereignisse von TJabberSession erscheinen, nicht aber die Felder.

Ohne die Typbibliothek in eine Klasse zu kapseln geht es ohne weiteres. Aber das ist mir zu unübersichtlich irgendwie.
Angehängte Dateien
Dateityp: pas jabbercom_tlb_199.pas (258,5 KB, 5x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat