AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language innerhalb TThread: Problem mit IXMLHTTPRequest bzw. CoXMLHTTP
Thema durchsuchen
Ansicht
Themen-Optionen

innerhalb TThread: Problem mit IXMLHTTPRequest bzw. CoXMLHTTP

Ein Thema von Rob09 · begonnen am 9. Aug 2011 · letzter Beitrag vom 9. Aug 2011
 
Rob09

Registriert seit: 14. Aug 2007
58 Beiträge
 
Delphi 6 Personal
 
#1

innerhalb TThread: Problem mit IXMLHTTPRequest bzw. CoXMLHTTP

  Alt 9. Aug 2011, 16:51
Delphi-Version: 5
Hi!

Ich möchte gerne Informationen von Webseiten innerhalb eines TThread-Objekts abrufen (quasi im Hintergrund), damit währenddessen der User ohne Beeinträchtigung mit dem Programm arbeiten kann. Ich benutze dazu die unit MSXML2_TLB. An der Stelle, wo
Code:
req := CoXMLHTTP.Create;
steht (req ist vom Typ IXMLHTTPRequest), bekomme ich - wenn der Code ausgeführt werden soll - die folgende Fehlermeldung:

Project ... raised exception class EOleSysError with message 'CoInitialize wurde nicht aufgerufen'. Process stopped. Use Step or Run to continue.

Es wäre sehr nett, wenn mir jemand weiterhelfen könnte, denn das sagt mir überhaupt nichts. Wie gesat, meine Absicht ist nur, dass im Hintergrund eine Website abgerufen wird. Hier ein minimales Code-Beispiel, wo der Fehler auftritt:

Delphi-Quellcode:
unit Unit1;

...
type

  TForm1 = class(TForm)
  ...
  private
    Fred: TFred;
  ...
  end;

...

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Fred := TFred.Create(True);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False;
  Fred.Resume;
end;

end.
Delphi-Quellcode:
unit uTFred;

...

type
  TFred = class(TThread)
  private
    FSeite: String;
    procedure HoleSeite;
  protected
    procedure Execute; override;
  end;

implementation

uses
  MSXML2_TLB, OleCtrls;

procedure TFred.Execute;
begin
  HoleSeite;
end;

procedure TFred.HoleSeite;
var
  req: IXMLHTTPRequest;
begin

  // FEHLER AN DIESER STELLE:
  req := CoXMLHTTP.Create;
  // exakte Stelle innerhalb der Create-Methode s. nächster Code-Block...

  req.open('GET', 'http://www.delphipraxis.net/', False, {Username} EmptyParam, {Passwort} EmptyParam);
  req.send(EmptyParam);
  FSeite := req.responseText;
end;

end.
Der Fehler tritt dabei exakt an folgender Stelle auf:

Delphi-Quellcode:
unit MSXML2_TLB;

...

implementation

...

class function CoXMLHTTP.Create: IXMLHTTPRequest;
begin
  Result := CreateComObject(CLASS_XMLHTTP) as IXMLHTTPRequest;
end;
Wo liegt das Problem? Bitte um Nachsicht, habe bisher weder mit Threads noch mit WWW-Funktionen gearbeitet.

Beste Grüße!
Robert

PS:
Ich benutze Delphi 6.
  Mit Zitat antworten Zitat
 


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 03:56 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 by Thomas Breitkreuz