О Synapse можно почитать вот здесь.
Скачать модуль можно здесь (ссылка на zip).
IDE Lazarus скачать можно здесь.
Модуль Synapse (как и большую часть модулей) вполне реально установить только для текущего проекта, не засоряя при этом среду разработки.
Надо только скачать архив с модулем и распаковать в каталог с проектом папку lib (пылится в директории source). Для удобства папку lib можно переименовать в synapse.
Теперь переходим в параметры проекта и подключаем папку с модулем:
После этого можно смело добавлять отдельные pas-файлы модуля в блок uses.
К примеру, чтобы реализовать логическую функцию пинга с помощью pingsend.pas вполне достаточно вот такого кода:
uses ..., pingsend;
// Событие на создание формы и возвращение ответа в Label1
procedure Ttest_form.FormCreate(Sender: TObject);
var
ping: TPingSend;
begin
ping := TPINGSend.Create;
try
ping.Timeout := 2000;
if ping.Ping('ngdream.ru') = True then
begin
label1.Caption := 'IP адрес: ' + ping.ReplyFrom
+ #13 +
'Ответ составил: ' + IntToStr(ping.PingTime) + ' мс';
end
else
begin
label1.Caption := 'Ошибка: ' + ping.ReplyErrorDesc;
end;
finally
ping.Free;
end;
end;
До использования pingsend.pas я пинговал хосты с помощью PowerShell (Test-Connection) и ожидал ответа от консоли с помощью (примерно) вот такой процедуры:
uses ..., Process;
procedure pingpowershell (hostname: string);
var
ping: string;
pingrun: TProcess;
output_ping: Tstringlist;
answer: string;
begin
try
ping:='test-connection -Count 1 -computer '+hostname+' -quiet';
pingrun:=TProcess.Create(nil);
pingrun.Executable:='powershell.exe';
pingrun.Parameters.Add(ping);
pingrun.Options:=pingrun.Options+[poNoConsole, poUsePipes, poWaitOnExit];
pingrun.Execute;
output_ping:=TSTringList.Create;
output_ping.LoadFromStream(pingrun.Output);
answer:=output_ping.Text;
answer:=Trim(answer);
pingrun.Free;
output_ping.Free;
if answer='False' then ShowMessage('Хост '+hostname+' не доступен');
if answer='True' then
begin
ShowMessage('Хост '+hostname+' доступен');
end;
except
end;
end;
// Вызвать процедуру в коде можно вот так:
pingpowershell ('ngdream.ru');
Такой метод меня частенько выручал, когда ничего другого под рукой просто не было. Само собой, такой приём крайне громоздкий и не информативный, работает только в ОС Windows.
С pingsend.pas работать намного приятнее и существенно меньше кода.
Немного оффтопа: раз уж затронул параметры проекта в IDE Lazarus…
Если убрать галочку с функции генерирования отладочной информации — скомпилированное приложение знатно «схуднёт».
Настройка доступна здесь:
Здесь я выложил логические функции для пинга удалённого хоста.

