понеділок, 20 березня 2023 р.

Режим роботи в мережі для "LogVHF Regular"



   Вирішив відпрацювати режим роботи в мережі у програмі "LogVHF Regular". Чи потрібен цей режим у програмі для звичайних QSO ? Треба подумати. Хіба що на випадок роботи у експедіції чи спеціальним позивним з декількох робочих місць. Але у будь якому разі - такий режим, мабуть, не завадить. Трохи переробив форму установок, яка з'являлася для встановлення порту при імпорті QSO. Тепер на ній присутні дві області - установки для імпорту QSO і установки для роботи в мережі. По імпорту залишився вибір порту, а для роботи у мережі присутні такі елементи. По перше, це вібір ролі при роботі у мережі. Це може бути або Клієнт, або Сервер. При запуску програми лога їй автоматично присвоюється роль Клієнта. Для цього статусу потрібно встановити робочий порт і IP-адресу програми-сервера. Потрібно, щоб вони співпадали з данними Серверу. При виборі ролі Серверу треба встановити тільки робочий порт. IP-адресу не треба встановлювати, вона автоматично визначеється і прописується в поле IP адреси серверу. У статусі Сервер редагування цього поля не доступно і цю адресу слід прописати у програмах-клієнтах. Звичайно, що при роботі у мережі, сервером може бути тільки одна програма. Клієнтами - решта програм. Роботи по відпрацюванню цього режиму тривають.

  Щодо автоматичного визначення IP-адреси компьютера, на якому працює програма-сервер. Витратив деякий час для вирішення цього питання. Після випробування деяких варіантів з безліччу рядків коду і використання декількох компонентів, зупинився на варіанті, де використовується тільки один компонент і один рядок коду 😆

  Для тих, кому цікаво і хто програмує у Delphi, наводжу приклад коду. По-перше, треба обрати з бібліотеки "Indy Misc" компонент IdIPWatch і додати на форму програми. А по-друге, додати IdIPWatch у uses форми. Далі - використати у потрібній процедурі програми. Нижче наводжу приклад використання, де по кліку кнопки з'являється інформаційне вікно з IP-адресою (IPv4):

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Your IP-address is ' + IdIPWatch1.LocalIP);
end;

І візуалізація цього прикладу:


Гарного дня і мирного неба над головою! 73!

p.s. Скріншоти наводжу з інтерфейсами англійскою мовою для іноземних відвідувачив блогу. Тому як текст ще можна перевести, а написи на картинках ні )))

Немає коментарів:

Дописати коментар