![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли примеры графической консоли или как ее лючше написать?
bav123 © (2007-02-13 15:19:00)Есть потребность написать простую графическую консоль.
Которая должна вы выводить текстовую информацию + картинки. Короче что-то типа телнет эмулятора терминала с картинками. Или что-то типа VNC или RemoteDesctop, только проще.
Сам сервер стесьно есть, с сетевым взаимодействием и протоколом обмена тоже "ок", вопрос как лучше и при помощи чего написать клиентскую часть, которая будет отрисовывать саму картинку консоли ?
Есть ли примеры написания подобных приложений? Или может кто даст совет с помощью каких классов это можно реализовать.
Благодарю всех откликнувшихся.
PS
Если на форме Canvas' ом, то не оч красиво и шустро получиться рисовать.
bav123 (2007-02-16 12:55:00) [1]О да, то что надо. И скорость и ве остальное. Благодарю!!!
Сергей М. (2007-02-16 12:14:00) [2]
> Вот если б можно было рисовать по объекту TGraphic, и потом
> только его выводить, то это решенние.
Не надо по Graphic рисовать, он для другого предназначен.
Создавай TBitmap, рисуй на его канве все что вздумается, а потом копируй целиком канву битмапа на канву формы.
bav123 (2007-02-16 12:07:00) [3]Нужно выводить текст + картинки, т.е.
TextOut или TextRect + Draw. С сервера идут команды вывода символов + картинокв в нужную позицию.
Вот если б можно было рисовать по объекту TGraphic, и потом только его выводить, то это решенние. Но я подобным раньше не занимался. По этому и спрашиваю совета, как лучше решить поставленную задачу.
Сергей М. (2007-02-15 12:08:00) [4]А зачем тебе вызовы Rectangle и TextOut ?
Для твоей задачи достаточно вызова Draw
bav123 (2007-02-15 11:00:00) [5]В билдере правда делал, но разници большой нет...
вот код:
int wd = 10;
int hd = 10;
for (int k=1;k<10;k++)
{
Form1->Canvas->Lock();
for (int i = 1;i<100;i++)
{
// Form1->Canvas->Pen->Color = clRed;
for (int j = 1;j<100;j++)
{
R.Left = i*wd;
R.Right = (i*wd)+wd;
R.Top = j*hd;
R.Bottom = (j*hd)+hd;
//Form1->Canvas->FillRect(R);
Form1->Canvas->Rectangle(R.Left,R.Top,R.Right,R.Bottom);
Form1->Canvas->TextOutA(R.Left,R.Top,IntToStr(k));
}
}
Form1->Canvas->Unlock();
}
Может, подскажешь что не так. Буду оч благодарен.
Сергей М. (2007-02-15 10:35:00) [6]Значит неправильно выводил
bav123 (2007-02-14 18:02:00) [7]сделал простой тест, выводил квадратики 100 на 100 и в них буковку "A"
в цикле 10 раз.
Не шибко шустро работает, к сожалению.
Сергей М. (2007-02-14 08:14:00) [8]
> А не получиться это стрельба из пушки по воробьям ?
А в чем, по-твоему, заключается "неочкрасивость" и "нешустрость" в случае "рогатки" под названием Canvas ?
bav123 (2007-02-13 18:16:00) [9]А не получиться это стрельба из пушки по воробьям ??
Сергей М. (2007-02-13 15:24:00) [10]
> при помощи чего написать клиентскую часть, которая будет
> отрисовывать саму картинку консоли ?
> на форме Canvas' ом, то не оч красиво и шустро получиться
> рисовать.
Для "шустряков" придумана технология DirectDraw