Delphi 10.4 не понимает class TClientSocket
Давно не программировал. Решил вспомнить, чтоб не отупеть. Установил Delphi 10.4, до этого была установлена Delphi XE Architect (в ней, раньше, на Win7 всё работало). Но при миграции она перестала открываться без ошибок и я решил обновить версию. Установил 10,4 и она тоже не работает со старыми проектами - клиент-серверными приложениями, выдаёт ошибку "class TClientSocket not found", разве эту систему в разработке клиент-серверного ПО упразднили? Сейчас иные технологии?
Вижу два пути решения:
- Не знаю как (сервера отключили) установить Delphi XE
- Каким-то образом заменить в проектах class TClientSocket, на более современный, если он устарел.
Подскажите, что можно и лучше сделать, чтобы вернуться к разработке\доработке старых проектов?
Ответы (2 шт):
Они есть, только не установлены по умолчанию - видимо, подразумевается пользование установленной библиотеки Indy
Components - Install packages
ищем ПапкаСтудии\bin\dclsocketsXXX.bpl
(у меня в D12 XXX=290, номер версии)
После установки смотрим на вкладке «Internet».
Indy тут ни при чем.
Этот компонент только убрали из палитры компонентов.
Создавать и пользоваться Win-сокетами, и клиент и сервер, можно создавая и уничтожая их самостоятельно в FormCreate
и FormDestroy
. Ну и обработчики событий у них самостоятельно придется навешать.
uses
System.Win.ScktComp;
var
socket: TClientSocket;
procedure TConnectionToServer.Connect(const address: string; port: Integer);
begin
if not Assigned(socket) then begin
socket := TClientSocket.Create(nil);
end;
if not socket.socket.Connected then begin
socket.address := address;
socket.port := port;
socket.OnConnect := listener.onServerConnect;
socket.OnRead := listener.onServerRead;
socket.OnError := listener.onSocketError;
socket.Active := True;
end;
end;
ну, или установить пакеты, как советовал предыдущий участник.