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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2012, 17:06   #1
SheShe
 
Регистрация: 22.11.2012
Сообщений: 6
По умолчанию Клиент-сервер на C#

Задание следующее: Между источником полезных ископаемых и хранилищем движутся грузовики. Около источника грузовики полностью загружаются, а около хранилища-разгружаются.
Распределенное приложение состоит из сервера и клиента, связанных удаленным объектом.
Итак, всё сделано за исключением перерисовки около источника и хранилища. Загвоздка в следующем. Существует компонент csLorry, в котором хранится информация о грузовиках. Рисование грузовиков, то бишь OnPaint, находится в сервере. Чтобы перерисовать, нужно создать некую функцию в компоненте csLorry, которая бы содержала Invalidate(). Но это нереально, ибо OnPaint то в сервере. Может как-то иначе можно сделать?
SheShe вне форума Ответить с цитированием
Старый 22.11.2012, 17:20   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Рисование грузовиков, то бишь OnPaint, находится в сервере.
Эт-то к-как? Все картинки смотрит администратор сервера, что ли?
Abstraction вне форума Ответить с цитированием
Старый 22.11.2012, 17:31   #3
SheShe
 
Регистрация: 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());
}
}
}
SheShe вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент 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