Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
11-1181925062
sghpunk
2007-06-15 20:31
2007.12.23
Как использовать невизуальный VCL компонент в KOL пректе?


2-1195984219
m-kirill-2003
2007-11-25 12:50
2007.12.23
функция ord()


2-1196192581
t-t
2007-11-27 22:43
2007.12.23
обращение к ф-ии


15-1196144491
chem
2007-11-27 09:21
2007.12.23
Экспертная система (Химия)


4-1180950245
TCrash
2007-06-04 13:44
2007.12.23
Сообщение WM_USER_PREPARE_TO_CLOSE




   Наверх