Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата R.i.m.s.k.y.:
подскажите, пожалуйста, есть ли способ узнать в инно есть ли интернет или нет »
Цитата Лександер:
Вручную тоже можно, есть примеры, но криво дюже они в инно работают... »
В инно работают все, кривыми их уже мелкомягкие сделали, но не все. В ПМ мне уже задавали подобный вопрос, вот цитата:
Цитата:
Единственно правильный вариант - послать запрос и получить ответ. Вариантов несколько, попробуйте такой:
читать дальше »

Код: Выделить весь код
type
  WSADATA = record
    wVersion: WORD;
    wHighVersion: WORD;
    szDescription: array [0..256] of char;
    szSystemStatus: array [0..128] of char;
    iMaxSockets: SmallInt;
    iMaxUdpDg: SmallInt;
    lpVendorInfo: Longint;
  end;

function WSAStartup(wVersionRequested: WORD; var lpWSAData: WSADATA): Integer; external 'WSAStartup@ws2_32.dll stdcall';
function gethostbyname(const name: String): DWORD; external 'gethostbyname@ws2_32.dll stdcall';
function WSACleanup(): Integer; external 'WSACleanup@ws2_32.dll stdcall';

function IsInternetActive(sURL: String): Boolean;
var
    wsa: WSADATA;
begin
    WSAStartup($101, wsa);
    Result := gethostbyname(sUrl) <> 0;
    WSACleanup();
end;

//результат TRUE - есть инет, False - нет, в качестве аргумента URL железобетонно работающего сайта
if IsInternetActive('www.microsoft.com') then
  MsgBox('on', mbInformation, MB_OK)
else
  MsgBox('off', mbInformation, MB_OK);

Конечно, есть варианты покороче с использованием других WinAPI-функций InternetGetConnectedState, InternetCheckConnection, IsNetworkAlive, но врут они в определенных ситуациях.
Цитата R.i.m.s.k.y.:
Сам я заткнулся уже на объявлении array of string в 20 строк и 5 столбцов »
Цитата R.i.m.s.k.y.:
И соответсвенно как правильно заполнить в инно этот array »
Код: Выделить весь код
var
  i, j: Byte;
  arr: array [0..19] of array [0..4] of String;
...
arr[0][0] := 'test';
...
for i := 0 to 19 do for j := 0 to 4 do
begin
  MsgBox(arr[i][j], mbInformation, MB_OK);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:36, 13-02-2012 | #814