Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Methode wird vom Automatisierungsobjekt nicht unterstützt (https://www.delphipraxis.net/63292-methode-wird-vom-automatisierungsobjekt-nicht-unterstuetzt.html)

Luckie 16. Feb 2006 22:20

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du musst die Com-Server registrieren und dann die Typbibliothek importieren bzw. du kannst auch gleich meine Unit nehmen. Und zum Testen wäre natürlich ein Jabber Server nicht schlecht und eine schon halbwegs funktionierende Demo. Das wirst du aber nicht haben und den Code, den ich bisher habe kann ich nicht rausgeben, der ist für die Firma.

TKC 17. Feb 2006 00:09

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Ich habe ja echt keinen Bock das ganze nachzucoden ... somit ist meine Hilfe leider stark eingeschränkt..

teste doch mal ob das hier funktioniert.

Delphi-Quellcode:
procedure TForm1.JabberSession1Message(ASender: TObject; const Msg: IJabberMsg; const Tag: IXMLTag);
var
  myMsg                      : TJabberMsg;

begin
  IUnknown(Msg).QueryInterface(IJabberMsg, myMsg);
  ShowMessage(myMsg.FromJID);
end;

Luckie 17. Feb 2006 06:52

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Zitat:

Zitat von ACE-ppc
Ich habe ja echt keinen Bock das ganze nachzucoden

Ja, ist verständlich. Da habe ich ja auch einen ganzen Tag drangesessen. ;)

Zitat:

... somit ist meine Hilfe leider stark eingeschränkt..
Aber trotzdem besten Dank für deine Mühe.

Zitat:

teste doch mal ob das hier funktioniert.

Delphi-Quellcode:
procedure TForm1.JabberSession1Message(ASender: TObject; const Msg: IJabberMsg; const Tag: IXMLTag);
var
  myMsg                      : TJabberMsg;

begin
  IUnknown(Msg).QueryInterface(IJabberMsg, myMsg);
  ShowMessage(myMsg.FromJID);
end;

Werde ich gleich mal im Büro versuchen.

WinJab ist übrigens ein Client, der die den Com-Server benutzt (Ist der gleiche Autor. ;) ). Da habe ich schon mal in die Sourcen reingeguckt, aber die machen es eigentlich genauso, wie ich auch. :gruebel: Einzigeste Unterschied, er hat Delphi 5 benutzt und ich benutze Delphi 6 Professional.

Aus dem WinJab Code:
Delphi-Quellcode:
procedure JabberMessage(Sender: TObject; var Msg, Tag: OleVariant);

...;
...;
...;

{---------------------------------------}
procedure TfrmJabber.JabberMessage(Sender: TObject; var Msg,
  Tag: OleVariant);
var
    FromJID: string;
    Subject: string;
    Body: string;
    MsgType: JabberMsgType;
    ...;
begin
    // handle messages
    // search for this user in the roster
    FromJID := Msg.FromJID;
    Subject := Msg.Subject;
    Body := Msg.Body;
    ...;

Luckie 17. Feb 2006 08:04

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
So, da sind wir wieder.

Die gute Nachricht: Es läßt sich kompilieren und es kommt kein Fehler beim Ausführen. Die schlechte: myMsg ist immer nil. :(

Luckie 17. Feb 2006 12:30

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe das ganze jezuz ohne Klasse gemacht und ich habe immer noch den selben Fehler, dabei sollte mein Code jetzt identisch mit dem von WinJab sein. Sie dazu Jabber1.pas aus dem Anhang Zeile 2881.

Ich verstehe es einfach nicht. :wall:

TKC 17. Feb 2006 14:27

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Irgendwie sieht meine TLB etwas anders aus als deine ... ich hänge sie mal an ..
kannste ja mal testweise austauschen.

Ist den Msg auch nil ???

Luckie 17. Feb 2006 14:34

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Aha. Jetzt stimmen die parmeter von den Ereignissen nicht mehr:
Delphi-Quellcode:
    procedure OnJabberConnect(Sender: TObject);
    procedure OnJabberCommError(Sender: TObject; var ErrorText: OleVariant);
    procedure OnJabberAuthError(Sender: Tobject; var ErrorText: OleVariant);
    procedure OnJabberDisConnect(Sender: TObject);
    procedure OnJabberRosterItem(Sender: TObject; var Item: OleVariant);
    procedure OnJabberRosterStart(Sender: TObject);
    procedure OnJabberRosterEnd(Sender: TObject);
    procedure OnJabberMessage(Sender: TObject; var Msg: OleVariant; var Tag: OleVariant);
Delphi-Quellcode:
  { Event handlers }
  with JabberSession do
  begin
    OnConnect := OnJabberConnect;
    OnCommError := OnJabberCommError;
    OnAuthError := OnJabberAuthError;
    OnDisconnect := OnJabberDisConnect;
    OnRosterItem := OnJabberRosterItem;
    OnRosterStart := OnJabberRosterStart;
    OnRosterEnd := OnJabberRosterEnd;
    OnMessage := OnJabberMessage;
  end;
Zitat:

[Fehler] Main.pas(105): Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'
Bei dir:
Delphi-Quellcode:
TJabberSessionOnCommError = procedure(ASender: TObject; const ErrorText: WideString) of object;
Bei mir:
Delphi-Quellcode:
TJabberSessionOnCommError = procedure(Sender: TObject; var ErrorText: OleVariant) of object;

Luckie 17. Feb 2006 14:40

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
JA! :bouncing4: :firejump: :bounce1: :bounce2: :dancer2: :witch: :hello: :roteyes: Es geht.

Mit welcher Delphi Version hast du die Typbibliothek erzeugt? Meine wurde mit Delphi 6 Professional erzeugt. :roll:

TKC 17. Feb 2006 14:42

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
gibts doch gar nicht ...

Habs mit D2006 gemacht .

Schön das ich dir helfen konnte .

Luckie 17. Feb 2006 14:44

Re: Methode wird vom Automatisierungsobjekt nicht unterstütz
 
Du bist klasse. Besten, besten herzlichen Dank. :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 2 von 3     12 3      

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