Hallo...
Mein Problem ist folgendes:
Ich habe ein Stringgrid in dem in einer Spalte Domainnamen stehen die ich mit IdHttp überprüfen will. Würde das auch gerne mit mittels Threads tun.
Code:
URL := 'http://www.whois.net/whois_new.cgi?d='+Form1.StringGrid1.Cells[1, Form1.StringGrid1.Row];
Klar, die Spalte des Stringgrids müßte erstmal in eine Tstringlist umgewandelt werden.
Nur wie realisiere ich das Abfragen über die Threads?
Habe diese Beispiel gefunden und bin zur Zeit damit am rumprobieren.
Leider funktioniert überhaupt nichts, deshalb hier das gefundene Beispiel:
TBackgroundDownloaderUnit
Code:
unit TBackgroundDownloaderUnit;
interface
uses Classes, Windows,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
type
TReplyReceivedEvent = procedure (
URL, Reply: string) of object;
TBackgroundDownloader = class (TThread)
URL, Reply : string;
OnReplyReceived : TReplyReceivedEvent;
IdHTTP : TIdHTTP;
constructor Create (CreateSuspended: boolean);
procedure CallUserEvent;
procedure Execute; override;
end;
implementation
constructor TBackgroundDownloader.Create(CreateSuspended: boolean);
begin
inherited;
IdHTTP := TIdHTTP.Create(nil);
end;
procedure TBackgroundDownloader.CallUserEvent;
begin
if Assigned(OnReplyReceived) then
OnReplyReceived (
URL,Reply);
end;
procedure TBackgroundDownloader.Execute;
begin
Reply := IdHTTP.Get (
URL);
Synchronize (CallUserEvent);
IdHTTP.Free;
IdHTTP := nil;
end;
end.
Ein kleines Demo-Programm zum Testen:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure IrgendeinName(
URL,Reply: string);
end;
var
Form1: TForm1;
implementation
uses TBackgroundDownloaderUnit;
{$R *.DFM}
procedure TForm1.IrgendeinName(
URL,Reply: string);
begin
MessageDlg ('Von der
URL'#13#10+
URL+#13#10+'kam folgendes zurück:'#13#10#13#10+Reply, mtInformation, [mbOk], 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with TBackgroundDownloader.Create (true) do
begin
URL := 'http://www.quellcodes.de/';
OnReplyReceived := IrgendeinName;
Resume;
end;
end;
end.
Welche Möglichkeiten habe ich?
Grüße
Aaron