Ik heb het volgende stukje code:
Nou zit ik met het probleem dat wanneer ik de procedure GetHostName() aanroep vanuit ServerConnect het programma nooit aan WSocket1DnsLookupDone toe komt. Terwijl wanneer ik dezelfde procedure aanroep vanuit Button1Click() er niks aan de hand is. Kan iemand mij vertellen wat ik hier mogelijk fout doe?
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, wsocket, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; server: TIdTCPServer; procedure serverConnect(AThread: TIdPeerThread); procedure serverExecute(AThread: TIdPeerThread); procedure Button1Click(Sender: TObject); private { Private declarations } public procedure GetHostName(IP: string); procedure WSocket1DnsLookupDone(Sender: TObject; Error: Word); end; var Form1: TForm1; implementation {$R *.dfm} Procedure TForm1.WSocket1DnsLookupDone(Sender: TObject; Error: Word); begin if error = 0 then begin Label1.Caption := 'IP: ' + TWSocket(Sender).DnsResult; exit; end else Label1.Caption := 'IP: ' + inttostr(error); end; procedure TForm1.GetHostName(IP: string); var WSocket1: TWSocket; begin Wsocket1 := TWSocket.Create(form1); WSocket1.OnDnsLookupDone := Form1.WSocket1DnsLookupDone; Wsocket1.ReverseDnsLookup(IP); end; procedure TForm1.serverConnect(AThread: TIdPeerThread); begin GetHostName('127.0.0.1'); end; procedure TForm1.serverExecute(AThread: TIdPeerThread); begin form1.caption:=AThread.Connection.LocalName; end; procedure TForm1.Button1Click(Sender: TObject); begin GetHostName('127.0.0.1'); end; |
Nou zit ik met het probleem dat wanneer ik de procedure GetHostName() aanroep vanuit ServerConnect het programma nooit aan WSocket1DnsLookupDone toe komt. Terwijl wanneer ik dezelfde procedure aanroep vanuit Button1Click() er niks aan de hand is. Kan iemand mij vertellen wat ik hier mogelijk fout doe?