Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Есть ли примеры графической консоли или как ее лючше написать?   Найти похожие ветки 

 
bav123 ©   (2007-02-13 15:19) [0]

Есть потребность написать простую графическую консоль.
Которая должна вы выводить текстовую информацию + картинки. Короче что-то типа телнет эмулятора терминала с картинками. Или что-то типа VNC или RemoteDesctop, только проще.
Сам сервер стесьно есть, с сетевым взаимодействием и протоколом обмена тоже "ок", вопрос как лучше и при помощи чего написать клиентскую часть, которая будет отрисовывать саму картинку консоли ?

Есть ли примеры написания подобных приложений? Или может кто даст совет с помощью каких классов это можно реализовать.
Благодарю всех откликнувшихся.
PS
Если на форме Canvas" ом, то не оч красиво и шустро получиться рисовать.


 
Сергей М. ©   (2007-02-13 15:24) [1]


> при помощи чего написать клиентскую часть, которая будет
> отрисовывать саму картинку консоли ?


> на форме Canvas" ом, то не оч красиво и шустро получиться
> рисовать.


Для "шустряков" придумана технология DirectDraw


 
bav123 ©   (2007-02-13 18:16) [2]

А не получиться это стрельба из пушки по воробьям ??


 
Сергей М. ©   (2007-02-14 08:14) [3]


> А не получиться это стрельба из пушки по воробьям ?


А в чем, по-твоему, заключается "неочкрасивость" и "нешустрость" в случае "рогатки" под названием Canvas ?


 
bav123 ©   (2007-02-14 18:02) [4]

сделал простой тест, выводил квадратики 100 на 100 и в них буковку "A"
в цикле 10 раз.
Не шибко шустро работает, к сожалению.


 
Сергей М. ©   (2007-02-15 10:35) [5]

Значит неправильно выводил


 
bav123 ©   (2007-02-15 11:00) [6]

В билдере правда делал, но разници большой нет...
вот код:

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 12:08) [7]

А зачем тебе вызовы Rectangle и TextOut ?
Для твоей задачи достаточно вызова Draw


 
bav123 ©   (2007-02-16 12:07) [8]

Нужно выводить текст + картинки, т.е.
TextOut или TextRect + Draw. С сервера идут команды вывода символов + картинокв в нужную позицию.

Вот если б можно было рисовать по объекту TGraphic, и потом только его выводить, то это решенние. Но я подобным раньше не занимался. По этому и спрашиваю совета, как лучше решить поставленную задачу.


 
Сергей М. ©   (2007-02-16 12:14) [9]


> Вот если б можно было рисовать по объекту TGraphic, и потом
> только его выводить, то это решенние.


Не надо по Graphic рисовать, он для другого предназначен.

Создавай TBitmap, рисуй на его канве все что вздумается, а потом копируй целиком канву битмапа на канву формы.


 
bav123 ©   (2007-02-16 12:55) [10]

О да, то что надо. И скорость и ве остальное. Благодарю!!!



Страницы: 1 вся ветка

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1195943414
Бэтман
2007-11-25 01:30
2007.12.23
Вопрос по компоненту RadioGroup


2-1196339044
_Guest_
2007-11-29 15:24
2007.12.23
Замена текста в OpenOffice


2-1196057501
simon
2007-11-26 09:11
2007.12.23
Unicode в базе данных


15-1195572022
Kerk
2007-11-20 18:20
2007.12.23
Телефон чтоль порекомендуйте


2-1196152756
Ростик
2007-11-27 11:39
2007.12.23
Как правильно записывать числа типа флоат