![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 22.11.2012
Сообщений: 6
|
![]()
Задание следующее: Между источником полезных ископаемых и хранилищем движутся грузовики. Около источника грузовики полностью загружаются, а около хранилища-разгружаются.
Распределенное приложение состоит из сервера и клиента, связанных удаленным объектом. Итак, всё сделано за исключением перерисовки около источника и хранилища. Загвоздка в следующем. Существует компонент csLorry, в котором хранится информация о грузовиках. Рисование грузовиков, то бишь OnPaint, находится в сервере. Чтобы перерисовать, нужно создать некую функцию в компоненте csLorry, которая бы содержала Invalidate(). Но это нереально, ибо OnPaint то в сервере. Может как-то иначе можно сделать? |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 22.11.2012
Сообщений: 6
|
![]()
Вот фрагмент сервера:
thread = new Thread(new ThreadStart(ThrPaint)); thread.Start(); HttpChannel httpChannel; try { httpChannel = new HttpChannel(8080); ChannelServices.RegisterChannel(htt pChannel); } catch (Exception e) { Console.WriteLine(e.Message); return; } RemotingServices.Marshal(remobj, "RemoteObject"); } private void ThrPaint() { while (life) { Invalidate(); Thread.Sleep(150); } } private void Finish() { life = false; thread.Join(); } protected override void OnClosed(EventArgs e) { base.OnClosed(e); lorryCont.RemoveAllLorries(); Finish(); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); IEnumerator inum = lorryCont.Components.GetEnumerator( ); while (inum.MoveNext()) { Lorry comp = (Lorry)inum.Current; e.Graphics.FillRectangle(new SolidBrush(Color.Blue),comp.Point.X-10, comp.Point.Y-10,20,20); e.Graphics.DrawString(comp.Number.T oString(), Font, new SolidBrush(Color.Black), comp.Point.X + 10, comp.Point.Y + 10); } } static void Main() { Application.Run(new LorryAndWarehouses()); } } } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент | RODNOC | Мультимедиа в Delphi | 17 | 03.10.2010 22:31 |
сервер+клиент+клиент на телефон | Razyiller | Работа с сетью в Delphi | 3 | 01.04.2010 20:10 |
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? | Demol | Работа с сетью в Delphi | 1 | 21.04.2009 16:18 |
Клиент-сервер-клиент | Кронос | Работа с сетью в Delphi | 3 | 24.08.2007 07:57 |