AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi IStrings richtig verarbeiten(OLE/COM Server)
Thema durchsuchen
Ansicht
Themen-Optionen

IStrings richtig verarbeiten(OLE/COM Server)

Ein Thema von TTF · begonnen am 18. Jul 2014 · letzter Beitrag vom 21. Jul 2014
Antwort Antwort
Benutzerbild von TTF
TTF

Registriert seit: 19. Mai 2013
70 Beiträge
 
Delphi XE4 Enterprise
 
#1

IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 16:36
Ich habe einen OLE Automation Server in Delphi geschrieben der soweit auch ganz gut funktioniert.
Der Server sieht so aus:
Server.png

Der Client so:

Client.png

SendText funktioniert ausgezeichnet. Bei GetText liegt das Problem. Ich bekomme folgende Fehlermeldung:

Error.png

Beim Server hab ich folgenden Code, um dem Client den Text des Server zu schicken:

Delphi-Quellcode:
function TMyCom2.Get_Text() : IStrings;
begin
   GetOleStrings(unit1.Form1.Memo1.Lines, Result);
end;
Beim Client diesen, um das 'Geschickte' zu empfangen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  aStrings : IStrings;
begin
  aStrings.Add(Server.Get_Text);
  SetOleStrings(Memo1.Lines, aStrings);
end;
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.

Danke schonmal im Voraus
Angehängte Dateien
Dateityp: zip ComServer.zip (1,98 MB, 5x aufgerufen)
Dateityp: zip ComClient.zip (2,01 MB, 6x aufgerufen)
Quidquid id est, timeo perfossores machinae computatoriae et dona ferentes...

Geändert von TTF (18. Jul 2014 um 16:38 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 16:42
Wo kommt diese Fehlermeldung, am Server oder am Client? Passiert etwas bei der Gegenstelle?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 17:10
Also das hier
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  aStrings : IStrings;
begin
  aStrings.Add(Server.Get_Text);
  ...
end;
stinkt doch irgendwie. aStrings zeigt irgendwo im Speicher hin. Das ist auf jeden Fall falsch.

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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (18. Jul 2014 um 17:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TTF
TTF

Registriert seit: 19. Mai 2013
70 Beiträge
 
Delphi XE4 Enterprise
 
#4

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 17:16
@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...
Quidquid id est, timeo perfossores machinae computatoriae et dona ferentes...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 17:18
@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...
Wie ist denn das Server.Get_Text definiert?
(Sitze am Tablet und möchte jetzt nicht erst den Rechner starten, ist eh schon warm genug)

So?
function Get_Text : IStrings; .

Ok, habe es gerade gesehen - Lösung siehe mein vorheriger Beitrag
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (18. Jul 2014 um 17:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TTF
TTF

Registriert seit: 19. Mai 2013
70 Beiträge
 
Delphi XE4 Enterprise
 
#6

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 17:22
@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(Hab den Code nicht vor mir)...nachher start ich dann den Rechner
Quidquid id est, timeo perfossores machinae computatoriae et dona ferentes...
  Mit Zitat antworten Zitat
Benutzerbild von TTF
TTF

Registriert seit: 19. Mai 2013
70 Beiträge
 
Delphi XE4 Enterprise
 
#7

AW: IStrings richtig verarbeiten(OLE/COM Server)

  Alt 18. Jul 2014, 17:56
nichts(Versehen)
Quidquid id est, timeo perfossores machinae computatoriae et dona ferentes...

Geändert von TTF (19. Jul 2014 um 11:28 Uhr)
  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 07:35 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