Einzelnen Beitrag anzeigen

magicshadow

Registriert seit: 28. Apr 2003
85 Beiträge
 
#7
  Alt 9. Jun 2003, 12:58
Zu früh gefreut
leider funst das mit dem @ doch nciht richtig, da dann nichts als sender übertragen wird.

meine deklarationen:
Delphi-Quellcode:
interface

uses
  Windows, {Messages,} SysUtils, Classes,
  WSocket;
type
  TMSWSocket = class(TWSocket)
  private
    rcvtext : Ansistring;
  end;
  
  function GetURL(URL:Ansistring):ansistring;
  procedure WSDataAvailable(Sender: TObject; Error: Word);

implementation


procedure WSDataAvailable(Sender: TObject; Error: Word);
var a:AnsiString;
    ws1:TMSWSocket;
begin
ws1:=TMSWSocket(Pointer(sender));
a:=ws1.ReceiveStr;
if a<>'then ws1.rcvtext:=ws1.rcvtext+a;
end;

function GetURL(URL:Ansistring):ansistring;
var WS:TMSWSocket;
    a:integer;
    ServerAddr:string;
begin
     if lowercase(copy(url,1,7))='http://then delete(url,1,7);
     if pos('/',url)=0 then exit;
     serveraddr:=copy(URL,1,pos('/',URL)-1);
     delete(url,1,pos('/',url)-1);
     ws:=TMSWSocket.Create(nil);
     ws.port:='80';
     ws.Addr:=serveraddr;
     @ws.OnDataAvailable:=@WSDataAvailable;
     ws.Connect;
     a:=gettickcount;
     while (a+2000>gettickcount) and (ws.State<>wsconnected) do begin
           ws.ProcessMessages;
           sleep(1);
     end;
     ws.ProcessMessages;
     if ws.State=wsconnected then begin
        a:=gettickcount;
        while (a+2000>gettickcount) and (ws.State=wsconnected) do begin
              ws.ProcessMessages;
              sleep(1);
        end;
        result:=ws.rcvtext;
     end;
ws.free;
end;

end.
Das ganze soll später multithreat werden!
Hoffe es kann mir einer ne Hilfe geben.

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat