Режим роботи в мережі для "LogVHF Regular"
Вирішив відпрацювати режим роботи в мережі у програмі "LogVHF Regular". Чи потрібен цей режим у програмі для звичайних QSO ? Треба подумати. Хіба що на випадок роботи у експедіції чи спеціальним позивним з декількох робочих місць. Але у будь якому разі - такий режим, мабуть, не завадить. Трохи переробив форму установок, яка з'являлася для встановлення порту при імпорті QSO. Тепер на ній присутні дві області - установки для імпорту QSO і установки для роботи в мережі. По імпорту залишився вибір порту, а для роботи у мережі присутні такі елементи. По перше, це вібір ролі при роботі у мережі. Це може бути або Клієнт, або Сервер. При запуску програми лога їй автоматично присвоюється роль Клієнта. Для цього статусу потрібно встановити робочий порт і IP-адресу програми-сервера. Потрібно, щоб вони співпадали з данними Серверу. При виборі ролі Серверу треба встановити тільки робочий порт. IP-адресу не треба встановлювати, вона автоматично визначеється і прописується в поле IP адреси серверу. У статусі Сервер редагування цього поля не доступно і цю адресу слід прописати у програмах-клієнтах. Звичайно, що при роботі у мережі, сервером може бути тільки одна програма. Клієнтами - решта програм. Роботи по відпрацюванню цього режиму тривають.
Щодо автоматичного визначення IP-адреси компьютера, на якому працює програма-сервер. Витратив деякий час для вирішення цього питання. Після випробування деяких варіантів з безліччу рядків коду і використання декількох компонентів, зупинився на варіанті, де використовується тільки один компонент і один рядок коду 😆
Для тих, кому цікаво і хто програмує у Delphi, наводжу приклад коду. По-перше, треба обрати з бібліотеки "Indy Misc" компонент IdIPWatch і додати на форму програми. А по-друге, додати IdIPWatch у uses форми. Далі - використати у потрібній процедурі програми. Нижче наводжу приклад використання, де по кліку кнопки з'являється інформаційне вікно з IP-адресою (IPv4):
begin
ShowMessage('Your IP-address is ' + IdIPWatch1.LocalIP);
end;
І візуалізація цього прикладу:
Гарного дня і мирного неба над головою! 73!
p.s. Скріншоти наводжу з інтерфейсами англійскою мовою для іноземних відвідувачив блогу. Тому як текст ще можна перевести, а написи на картинках ні )))
Немає коментарів:
Дописати коментар