Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem mit TIdHTTP (https://www.delphipraxis.net/31506-problem-mit-tidhttp.html)

CG2003 10. Okt 2004 14:51


Problem mit TIdHTTP
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Freunde, ich habe folgenden Code im OnCreate Ereignis meines Formulars:
Delphi-Quellcode:
HTTPO := TIdHTTP.Create(Nil);
HTTPO.OnWork := HTTPOPacketRecvd;
(Wobei HTTPO eine IDHTTP-Komponente ist).

Hier die dementsprechende Prozedur:
Delphi-Quellcode:
procedure TMainServer.HTTPOPacketRecvd(Sender: TObject);
var HPacket : TPacketHead;
begin
       Case TIdHTTP(Sender).Tag of
        9 : LoadMasterList(HPacket,QueryMain.FUTSList(HTTPO.ResponseText))
        else LoadTigerList(QueryMain.FCSTiger(HTTPO.ResponseText))
        end
 end;
Wenn ich das ganze nun kompiliere, erhalte ich vom Compiler folgende Fehlermeldung:
"Inkompatible Typen, Liste der Parameter ist unterschiedlich"

Ich kann so aber keinen Fehler feststellen, und hoffe Ihr könnt mir vielleicht weiterhelfen?

Alternativ habe ich das Projekt, welches ein Game-Server-Browser war/ist an dem ich arbeite (Mit freundlicher Genehmigung des Autors!) beigefügt! Vielleicht könnt Ihr was entdecken! Ich saß schon die ganze Nacht dran und fand' nix! Der Autor hat leider auch keine Ahnung?! Bei ihm sollte es aber mit den Fastnet-Kompos funktioniert haben. Ich habe das auf Indy umgestellt. Tja, und nun geht nix mehr!

Vielen Dank schon mal!

[edit=sakura] [delphi]Tags Mfg, sakura[/edit]

scp 10. Okt 2004 15:08

Re: Problem mit TIdHTTP
 
Das Ereignis OnWork hat ein paar mehr Parameter, die auch deklariert werden müssen:
Delphi-Quellcode:
type
  TMainServer = class(TIrgendwas)
    procedure HTTPOPacketRecvd(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
  private
    //...
  end;

//...

implementation

//...

procedure TMainServer.HTTPOPacketRecvd(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  //...
end;

CG2003 10. Okt 2004 15:43

Re: Problem mit TIdHTTP
 
Ersteinmal vielen Dank! :dp:

Jetzt konnte ich es zwar compilieren, aber irgendwie funktioniert das Programm nicht mehr! Es macht keine Server-Abfragen mehr. Eigentlich nichts, was mit dem Internet zu tun hat. Und ich dachte die Umstellung von Fastnet auf Indy wäre leicht :wall:

Hmm, ich finde auch keinen Fehler...
Wenn jemand Lust hat, kann er ja mal in den Source schauen, ich glaub' ich brauch' ne Pause... :gruebel:

Falls einer was findet kann er mir vielleicht bescheid geben? Ich trink' jetzt erstmal 'nen Kaffee und dann schau' ich mal weiter... :freak:

scp 10. Okt 2004 16:50

Re: Problem mit TIdHTTP
 
Ich habe mal den Code geöffnet und kompiliert, musste aber zuviel ändern, weil ich wohl ne andere Indy-Version, habe 9.0.4 von daher klappt das noch nicht so, irgendwas mit InputStream und OutputStream nicht definiert.

CG2003 10. Okt 2004 19:01

Re: Problem mit TIdHTTP
 
Hmmm, mal sehen... Vielleicht bekommst Du das ja hin, ich hab's immer noch nicht raus...

scp 10. Okt 2004 21:06

Re: Problem mit TIdHTTP
 
Hast du eventuell einen Denkfehler bei der Verwendung von IdHTTP?
Du verarbeitest ja im OnWork den HTTPO.ResponseText, dieser gibt aber nur den Status (z.B. "HTTP/1.1 200 OK") zurück. Wenn du den HTML-Quelltext bzw. den Inhalt der heruntergeladenen Dastei in einem String haben willst, dann geht das z.B. so:
Delphi-Quellcode:
procedure TMainServer.SBSearchClick(Sender: TObject);
var
  HPacket : TPacketHead;
  ContentStr : String; //Hier
begin
        if not Initialize then exit;

        SetFilters;
        DisplayRules;

        Case CBEGames.ItemIndex of
     0..8 : LoadMasterList(HPacket,nil);
    9..11 : begin
             HTTPO.Tag := CBEGames.ItemIndex;
             ContentStr := HTTPO.Get(MasterFilter.QueryMaster); //Und hier
             Case HTTPO.Tag of
               9 : LoadMasterList(HPacket,QueryMain.FUTSList(ContentStr))
               else LoadTigerList(QueryMain.FCSTiger(ContentStr))
             end;
            end
        end
end;

CG2003 10. Okt 2004 22:34

Re: Problem mit TIdHTTP
 
Hallo und erstmal vielen Dank für die schnellen Lösungsansätze! :dp:

Hmm, Denkfehler können natürlich sein... :wall: :wall: :wall:
Will ich ja nicht ausschliessen. :cry:

Also, ich habe den letzten Lösungsvorschlag mal versucht, aber das funktioniert so leider auch nicht... Sorry, aber ich hoffe wir suchen gemeinsam weiter und werden eine Lösung finden... Den Source habt Ihr ja. Den dürft Ihr auch (laut Autor) verwenden in der Hoffnung das es irgendwann
funktioniert... :coder:


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