Доброго дня мастера. Вот неполучается выполнить пример WebSnap на Delphi2007 и Indy 10.1.5. Пример делал по книге "Delphi 6 Руководство разработчика".
Все началось с того, что после создания мастером "New WebSnap Application" компилятор много раз ругался на "модуль ххх откомпилирован с другой версией ууу " или что-то попдобное... Пришлось требуемые модули скопировать в директорию своего приложения. Затем, нужно было внести изменения в модули SockApp, SockAppNotify, IndySockTransport... так как версии Indy разные.
В модуле IndySockTransport нужно было вместо
FSocket.ReadBuffer(Sig, Sizeof(Sig));
писать
FSocket.IOHandler.ReadBytes(Buf, SizeOf(Sig));
BytesToRaw(Buf, Sig, SizeOf(Sig));
где Buf -
TIdBytes;
затем в модуле SockApp нужно было исправлять
перекрытый метод
OnExecute(AContext: TIdContext)
(а было там
OnExecute(AThread: TIdPeerThread);
)
И есче один момент, пришлось переставить местами строки в конструкторе constructor TWebRequestListener.Create; модуля SockApp:
было
FConnection.Active := True;
FConnection.OnExecute := ServerExecute;
поменял
FConnection.OnExecute := ServerExecute;
FConnection.Active := True;
Почему разработчики так сделали - незнаю, но по старому коду вылетала ошибка EIdTCPNoOnExecute!!!!
После всех исправлений, запускаю WebAppDebuger -- и в списке COM-серверов выбираю свой (WSTest) -нажимаю кнопку <Go> - и... стартовая страничка не грузиться...
Если кто-то делал WebSnap (а на Delphi 2007 - есче лучше) - поделитесь опытом.
PS.
забыл. В том же модуле SockApp в методе ServerExecute поменял строки
with AThread do
на
with AContext do