' запускаем сервер и обнуляем список редактируемых
_machList={}
_prList={}
_edList={}
RPCServer.Start( 0x40000001, 1 )
theDialog=av.FindDialog("Dialog1")
theDialog.Open
av.DelayedRun( "ProjectList", nil, 3)
Например так начинаем сервер, регистрируем на нем имя машины, открытый проект, шейп-файлы. Заводим свои списки под все это дело. По ходу подключения новых клиентов проверяем по спискам (дабы не допустить двойного редактирования, и, естественно по убыванию клиента, закрытию проекта или шейп-файла удаляем его из списка, например так:
' если в списке нет этого объекта, то разрешаем редактирование и заносим его в список
'fbl=_machList.FindByValue (Self)
'if (fbl=-1) then
_machList.Add(Self)
return "true"
'else
' return "false"
'end
Далее все сводится к управлению этими списками. Единственной проблемой может стать обновление редактируемого шейпа на остальных клиентских машинах, использующих этот шейп. Собственно, тема интересная, по ней можно и пообщаться.
С Уважением, Савенко Альберт.