![]() |
IStrings richtig verarbeiten(OLE/COM Server)
Liste der Anhänge anzeigen (Anzahl: 5)
Ich habe einen OLE Automation Server in Delphi geschrieben der soweit auch ganz gut funktioniert.
Der Server sieht so aus: Anhang 41477 Der Client so: Anhang 41478 SendText funktioniert ausgezeichnet. Bei GetText liegt das Problem. Ich bekomme folgende Fehlermeldung: Anhang 41479 Beim Server hab ich folgenden Code, um dem Client den Text des Server zu schicken:
Delphi-Quellcode:
Beim Client diesen, um das 'Geschickte' zu empfangen:
function TMyCom2.Get_Text() : IStrings;
begin GetOleStrings(unit1.Form1.Memo1.Lines, Result); end;
Delphi-Quellcode:
Ich wäre sehr froh, wenn jemand sich den Code oder sogar die beiden Projekte(Anhang) ansehen könnte und mir sagen könnte, wo der Fehler liegt.
procedure TForm1.Button1Click(Sender: TObject);
var aStrings : IStrings; begin aStrings.Add(Server.Get_Text); SetOleStrings(Memo1.Lines, aStrings); end; Danke schonmal im Voraus:-D |
AW: IStrings richtig verarbeiten(OLE/COM Server)
Wo kommt diese Fehlermeldung, am Server oder am Client? Passiert etwas bei der Gegenstelle?
|
AW: IStrings richtig verarbeiten(OLE/COM Server)
Also das hier
Delphi-Quellcode:
stinkt doch irgendwie.
procedure TForm1.Button1Click(Sender: TObject);
var aStrings : IStrings; begin aStrings.Add(Server.Get_Text); ... end;
Delphi-Quellcode:
zeigt irgendwo im Speicher hin. Das ist auf jeden Fall falsch.
aStrings
Mal so ein Schuss ins Blaue (habe mir nicht den Anhang angesehen)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aStrings : IStrings; begin aStrings := Server.Get_Text; SetOleStrings(Memo1.Lines, aStrings); end; |
AW: IStrings richtig verarbeiten(OLE/COM Server)
@mkinzler: Ehrlich gesagt weiss ich es nicht da ja beide Anwendungen gleichzeitig laufen.
@Sir Rufo: Hmm ich denke auch, dass der Fehler in diesen beiden Zeilen liegt, aber ich habe keine Ahnung wie ich es besser machen könnte. Deshalb frag ich ja...:? |
AW: IStrings richtig verarbeiten(OLE/COM Server)
Zitat:
Delphi-Quellcode:
definiert?
Server.Get_Text
(Sitze am Tablet und möchte jetzt nicht erst den Rechner starten, ist eh schon warm genug) So?
Delphi-Quellcode:
.
function Get_Text : IStrings;
Ok, habe es gerade gesehen :) - Lösung siehe mein vorheriger Beitrag |
AW: IStrings richtig verarbeiten(OLE/COM Server)
@Sir Rufo: Genau das habe ich als Erstes gemacht. Aber Delphi erkennt Get_Text nicht als IString sondern als OleVariant, also hab ich versucht das irgendwie umzumappen..
@Sir Rufo 2.: Ich bin am Smartphone:lol:(Hab den Code nicht vor mir)...nachher start ich dann den Rechner |
AW: IStrings richtig verarbeiten(OLE/COM Server)
nichts(Versehen)
|
AW: IStrings richtig verarbeiten(OLE/COM Server)
Ein OleObject ist wie ein aufgemotzter Variant und du kannst direkt auf Methoden und Property des enthaltenen Interfaces zugreifen.
(nur die Codevervollständigung weiß natürlich noch nicht, was da später mal drin sein wird) Wenn das IStrings.Add dieses Interface als Parameter versteht, dann darfst du das gerne "ummappen", aber in das aStrings solltest du vorher auch eine Instanz rein tun, von welcher du diese Methode dann aufrufen kannst. :roll: Oder du weist einfach dieses Result (OleVariant) der Interfacevariable zu, bzw. castest den OleVariant mit AS (wobei ich jetzt nicht genau weiß ob das wirklich geht). |
AW: IStrings richtig verarbeiten(OLE/COM Server)
Zitat:
|
AW: IStrings richtig verarbeiten(OLE/COM Server)
Ich hab das Ganze jetzt als BStr also WideString versucht. Das Resultat ist das gleiche:(, nur eine andere Fehlermeldung und etwas weniger Code:D
Fehlermeldung: Unzulässige Parameteranzahl Code:
Delphi-Quellcode:
Ich frage mich einfach.. Ich schaff es nicht eine einzige Zeile ohne Fehler zu schreiben:lol:
procedure TForm1.Button2Click(Sender: TObject);
begin Memo1.Lines.Add(Server.Get_Text()); end; Wäre echt froh, wenn jemand mir dabei helfen könnte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz