![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему вылазеет ошибка? [D5, Win95/98]
Serega 1 © (2002-04-25 07:08:00)У меня работает, а вот у моего дргана - нет.
На каждое событие Timer1Timer вылезает ошибка Access violation...
Вот кусочек моей проги:
function GetLocalIP: String;
type
PPInAddr = ^PInAddr;
var
wsaData: TWSAData;
HostInfo: PHostEnt;
HostName: Array[0..255] of Char;
Addr: PPInAddr;
begin
Result := "";
if WSAStartup($0102, wsaData) <> 0 then exit;
try
If gethostname(HostName, SizeOf(HostName)) <> 0 then exit;
HostInfo := gethostbyname(HostName);
If HostInfo = nil then exit;
Addr := Pointer(HostInfo^.h_addr_list);
If (Addr = nil) or (Addr^ = nil) then exit;
Result := StrPas(inet_ntoa(Addr^^));
inc(Addr);
while Addr^ <> nil do
begin
Result := Result + ^M^J + StrPas(inet_ntoa(Addr^^));
inc(Addr);
end;
finally
WSACleanup;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If (GetLocalIp<>"127.0.0.1") and (GetLocalIp<>"") and (Form1.Client.Active<>true) then begin
with Form1.Client do begin
try
Open;
except
Free;
end;
end;
end;
end;
Anatoly Podgoretsky (2002-04-25 09:47:00) [1]Ух ты какой мощный источник для ошибок
Song (2002-04-25 08:58:00) [2]А что такое Client? Вы сами его создаёте?
Я так думаю в except надо Close писать.