Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2009, 16:27   #1
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию Remote call в Delphi

Здравствуйте, друзья!
Предлагаю вашему вниманию модуль для реализации Remote Procedure Call в Delphi. Модуль содержит несколько классов, позволяющих легко на стороне клиента сделать вызов методов объекта на сервере.

Вместо долгих объяснений приведу небольшой пример:

Код:
var Client1 : TRPCClient;
procedure TForm8.FormCreate(Sender: TObject);
begin
   Client1 := TRPCClient.Create('127.0.0.1', 8021);
end;

procedure TForm8.FormDestroy(Sender: TObject);
begin
   Client1.Free;
end;

procedure TForm8.Button5Click(Sender: TObject);
var V1:Variant;
    N:integer;
    S:String;
begin
   V1 := Client1.GetChannel;    

   V1.IntProp := 456;
   N := V1.IntProp;

   V1.Test(1, 2, 3);
end;
Это пример создания клиента. Реализация сервера такая-же простая. Здесь V1.IntProp и V1.Test() - это свойство и метод объекта на сервере.

По-моему, неплохо получилось. В небольших проектах этих возможностей
достаточно.

Еще один интересный момент. Обычно при описании RTTI ограничиваются
рассмотрением свойств класса. В модуле есть функция для вызова методов класса по имени (с некоторыми ограничениями).

В архивах документация, исходники модуля и тестовые примеры.
Проверял в D7, D10. В младших версиях возможны проблемы из-за несовместимости типа Variant.

//На вопрос "зачем". Я в курсе что есть COM/OLE/ActiveX/...
//Эта реализация если не для использования, то хотя бы разобраться как
//устроено.
Вложения
Тип файла: rar rpc_doc.rar (20.4 Кб, 32 просмотров)
Тип файла: rar rpc_sources_and_tests.rar (420.5 Кб, 34 просмотров)
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется написать remote shell по ТЗ Dim4n Фриланс 2 06.06.2008 09:53
Only assignment, call . . . RIO Общие вопросы .NET 2 03.05.2008 16:55
Remote DataBase по HTTP Spandex БД в Delphi 0 18.04.2008 12:09
remote Farel БД в Delphi 2 07.09.2007 10:31
Remote Data Module Still_Learn БД в Delphi 0 30.05.2007 13:23