Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Inkompatible Typen THTTPClient und Pointer (https://www.delphipraxis.net/199178-inkompatible-typen-thttpclient-und-pointer.html)

ximexehey 2. Jan 2019 12:18


Inkompatible Typen THTTPClient und Pointer
 
Hallo,

nachdem ich von Delphi XE6 auf 10.3 upgedated habe gibt es beim einfachen Zuweisen der Events zur Laufzeit Fehler, ohne das was am Code geändert wurde.

Delphi-Quellcode:
HTTPRIO1.HTTPWebNode.OnBeforePost:=HTTPRIO1HTTPWebNode1BeforePost;
Code:
Fehler: E2010 Inkompatible Typen: 'THTTPClient' und 'Pointer'.
Das hatte ich nicht in eine Klasse gepackt. Deswegen ein Test:

Delphi-Quellcode:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  SOAPHTTPClient, SOAPHTTPTrans;

type
  TSoapRio = class(THTTPRIO)
  public
    procedure HTTPWebNodeBeforePost(const HTTPReqResp: THTTPReqResp;
      Data: Pointer);
  end;


type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  HTTPRIO1 : TSoapRio;
begin
  HTTPRIO1:=TSoapRio.Create(self);
  HTTPRIO1.HTTPWebNode.OnBeforePost:=HTTPRIO1.HTTPWebNodeBeforePost; // <-- Fehler
  // ...
end;

procedure TSoapRio.HTTPWebNodeBeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
begin
  // ...
end;
Es bleibt jedoch beim Fehler mit Delphi 10.3 RIO. Kann das jemand mit der Version bestätigen?

Wie macht man das dann richtig?

TiGü 3. Jan 2019 08:28

AW: Inkompatible Typen THTTPClient und Pointer
 
In Delphi Tokyo - also die Version davor - kompiliert dein Beispiel. Prüfe doch mal, ob sich was an der Definition von TBeforePostEvent in Soap.SOAPHTTPTrans geändert hat.

Klaus01 3. Jan 2019 08:35

AW: Inkompatible Typen THTTPClient und Pointer
 
Liste der Anhänge anzeigen (Anzahl: 1)
ein onBeforePost gibt es für THttpRio in 10.3 nicht.
nicht richtig geschaut.

Grüße
Klaus

Schokohase 3. Jan 2019 08:51

AW: Inkompatible Typen THTTPClient und Pointer
 
Zitat:

Zitat von Klaus01 (Beitrag 1422516)
ein onBeforePost gibt es für THttpRio in 10.3 nicht.

Es geht ja auch um http://docwiki.embarcadero.com/Libra...p.OnBeforePost

Klaus01 3. Jan 2019 08:57

AW: Inkompatible Typen THTTPClient und Pointer
 
Zitat:

Zitat von Schokohase (Beitrag 1422517)
Zitat:

Zitat von Klaus01 (Beitrag 1422516)
ein onBeforePost gibt es für THttpRio in 10.3 nicht.

Es geht ja auch um http://docwiki.embarcadero.com/Libra...p.OnBeforePost

dann ist das so declariert:
Delphi-Quellcode:
TBeforePostEvent = procedure(const HTTPReqResp: THTTPReqResp; Client: THTTPClient) of object;
---

in XE7 so:
Delphi-Quellcode:
TBeforePostEvent = procedure(const HTTPReqResp: THTTPReqResp; Data: Pointer) of object;
Grüße
Klaus

ximexehey 3. Jan 2019 09:28

AW: Inkompatible Typen THTTPClient und Pointer
 
Das war es auch schon. Es stellt sich gerade raus, dass sich mehr geändert hat als erwartet.

Soap.Rio
Winapi.WinINet

schon im ersten Projekt was ich geöffnet habe. Dann muss ich da wohl richtig ran.

Danke euch allen.

ximexehey 4. Jan 2019 06:40

AW: Inkompatible Typen THTTPClient und Pointer
 
Vielleicht gehe ich doch noch mal auf Delphi Tokyo zurück zum Vergleichen...

Die Definitionsänderung von oben war dann kein Problem mehr. Ich habe aber Fehlermeldungen zu Funktionen in der SOAP WSDL die nicht gefunden werden können, obwohl man direkt hinspringen kann und ich die WSDL neu importiert hatte. Auffällig ist dabei, dass in der Fehlermeldung dann auch noch der letzte Buchstabe des Funktionsnamens fehlt.

Mit Tokyo geht alles inklusive der WSDL Funktionen. Ich hatte gar nichts gelesen, dass in Rio was an SOAP gemacht wurde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:15 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