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

Вниз

Консоль + Графика   Найти похожие ветки 

 
Domix ©   (2005-10-03 08:27) [0]

Доброе время суток подскажите пожалуста можеть кто сталквался как работать в консоли с графикой
Основные функции
Используемы модули
Палитра цветов

Зарание благодарен


 
Opuhshii   (2005-10-03 09:53) [1]


> в консоли с графикой

а вы шутник,..

http://www.delphimaster.ru/articles/console.html


 
XProger ©   (2005-10-04 03:27) [2]

ASCII ART! ;)


 
Domix ©   (2005-10-07 09:48) [3]

Блин НУ ведь нет же нечего невозможного


 
MBo ©   (2005-10-07 10:02) [4]

program Project1;
{$APPTYPE CONSOLE}
uses
 Windows, SysUtils;

var
 h,ff:THandle;
 dc:HDC;
begin
 h:=FindWindow(nil,PChar(ParamStr(0)));
 dc:=GetDC(h);
 Ellipse(dc,10,10,400,300);
 ff:=CreateFont(24,0,0,0,0,0,0,0,0,0,0,0,0,"Terminal");
 ff:=SelectObject(dc,ff);
 TextOut(dc,100,140,PChar("Ну и нафига это нужно?"),Length("Ну и нафига это нужно?"));
 DeleteObject(SelectObject(dc,ff));
 ReleaseDC(h,dc);
 Readln;
end.


 
Гриха ©   (2005-10-07 10:03) [5]

В консоли не бывает графики. Очевидно, ты спутал с TP 7.0. Можно создать форму, убрать Бордер, развернуть на весь экран, и на Canvas"е уже рисовать.


 
Гриха ©   (2005-10-07 10:05) [6]


> MBo ©   (07.10.05 10:02) [4]

Это что??? Что этот код делает?


 
Domix ©   (2005-10-07 10:32) [7]


> MBo ©   (07.10.05 10:02) [4]

ОГОМНЫЙ сенк вот это мне и нужно


 
Domix ©   (2005-10-07 10:35) [8]

А ктото говорил что я шутник

MBo подскажи еще плиз как с цветом работать


 
Leonid Troyanovsky ©   (2005-10-07 10:40) [9]


> MBo ©   (07.10.05 10:02) [4]

>  TextOut(dc,100,140,PChar("Ну и нафига это нужно?"),Length("Ну
> и нафига это нужно?"));


Уверен, что автор не в курсе.

--
Regards, LVT.


 
TUser ©   (2005-10-07 10:52) [10]

Ну, по большому счету никак. [4] не обрабатывает перерисовку окна, а значит все сотрется при сворачивании, например.


 
TUser ©   (2005-10-07 10:52) [11]

Вобщем - сделай отдельную форму и кидай на нее нужную тебе графику.


 
Domix ©   (2005-10-07 11:04) [12]


> Вобщем - сделай отдельную форму и кидай на нее нужную тебе
> графику.

Да я уже пробовал но проблема в взаимодействи консоли с визуал компонентами работает 1 из 2 либо консоль либо форма


 
Leonid Troyanovsky ©   (2005-10-07 11:04) [13]


> TUser ©   (07.10.05 10:52) [11]
> Вобщем - сделай отдельную форму и кидай на нее нужную тебе
> графику.


Нет ни одной причины, заставляющей делать графику в консоли.
Если очень хочется, можно сделать отдельное GUI приложение,
которое будет, например, управляться из консоли.

--
Regards, LVT.


 
Domix ©   (2005-10-07 11:07) [14]


> сделать отдельное GUI приложение,
> которое будет, например, управляться из консоли

Можно поподробнее??7


 
Leonid Troyanovsky ©   (2005-10-07 11:57) [15]


> Domix ©   (07.10.05 11:07) [14]

> > сделать отдельное GUI приложение,
> > которое будет, например, управляться из консоли
>
> Можно поподробнее??7


Например, см. Demos\IPCDemos.
Для взаимодействия с консолью можно применять и pipes,
даже anonymous, если консоль будет сама запускать
графическое приложение.
Ну, и можно смело смотреть в сторону COM application.

--
Regards, LVT.


 
TUser ©   (2005-10-07 12:10) [16]

> Да я уже пробовал но проблема в взаимодействи консоли с визуал компонентами работает 1 из 2 либо консоль либо форма

А я - волшебник изумрудного города. В смысле у меня работало.


 
Domix ©   (2005-10-07 12:43) [17]


> волшебник изумрудного города

Поделись секретом


 
Leonid Troyanovsky ©   (2005-10-07 12:58) [18]


> Domix ©   (07.10.05 12:43) [17]
>
> > волшебник изумрудного города
>
> Поделись секретом


Зачем тебе еще один Страшила?

--
Regards, LVT.


 
TUser ©   (2005-10-07 13:03) [19]

> Поделись секретом

Создаешь юнит с формой как и в VCL приложении. Прописываешь его в uses. Где надо пишешь например Form1:=TForm1.Create() и работаешь с ней. Никаких особенностей там нет.

Напиши, что конкретно у тебя не работает.


 
Чапаев ©   (2005-10-07 13:06) [20]

Хм. Я предпочитаю создавать GUI-приложение, а в нём уже AllocConsole() делать.


 
Leonid Troyanovsky ©   (2005-10-07 13:14) [21]


> Чапаев ©   (07.10.05 13:06) [20]
> Хм. Я предпочитаю создавать GUI-приложение, а в нём уже
> AllocConsole() делать.


Что сову о пень, что пнем о сову - все равно - не жить сове.

--
Regards, LVT.


 
Domix ©   (2005-10-07 15:15) [22]


> TUser ©   (07.10.05 13:03) [19]
> > Поделись секретом
>
> Создаешь юнит с формой как и в VCL приложении. Прописываешь
> его в uses. Где надо пишешь например Form1:=TForm1.Create()
> и работаешь с ней. Никаких особенностей там нет.
>
> Напиши, что конкретно у тебя не работает.

также содаю форму открываю ее с помощю Show она сразуумерает Открываю ее спомощю ShowModal она работает все нормально но консоль ждет завершение работы формы


 
Domix ©   (2005-10-07 15:18) [23]

А мне необходимо чтобы консоль и форма работали паралельно


 
Anatoly Podgoretsky ©   (2005-10-07 20:14) [24]

Что значит паралельно?


 
palva ©   (2005-10-07 22:58) [25]

Domix ©   (07.10.05 15:18) [23]
> А мне необходимо чтобы консоль и форма работали паралельно
Для работы с консолью надо создать отдельный Tread


 
palva ©   (2005-10-07 23:04) [26]

Leonid Troyanovsky ©   (07.10.05 11:04) [13]
> Нет ни одной причины, заставляющей делать графику в консоли.

Одна из причин: приложение должно воспринимать перенаправленный ввод/вывод, скажем, запускаться из консоли следующей командой:

C:\>dir | Prog | sort

а для этого приложение Prog должно быть консольным.


 
Anatoly Podgoretsky ©   (2005-10-08 00:07) [27]

Это да, но причем тут графика


 
palva ©   (2005-10-08 00:31) [28]

Anatoly Podgoretsky ©   (08.10.05 00:07) [27]
Автор хочет из консоли рисовать в окне. Но автора хотят склонить к созданию GUI приложения с консолью: "нет ни одной причины, заставляющей делать графику в консоли". Я описал случай, когда такая причина есть.


 
GuAV ©   (2005-10-08 00:48) [29]

Если прописать в обычном приложении с формами {$APPTYPE CONSOLE}, то будут и форма и консоль.


 
Германн ©   (2005-10-08 02:42) [30]

Один из двух вопросов автора сабжа нужно удалить и/или объеденить с другим.
Хотя всё равно много "непонятков" :(


 
palva ©   (2005-10-08 09:26) [31]

GuAV ©   (08.10.05 00:48) [29]
> Если прописать в обычном приложении с формами {$APPTYPE CONSOLE}, то будут и форма и консоль.

Основная трудность, что будет работать что-то одно. Например, окно будет реагировать, а консоль просто будет висеть. Нужно чтобы циклы обработки сообщений оконных событий и работы с консолью находились в разных тредах, чтобы процессор доставался тому и другому циклу. Тут можно идти разными путями, но нужно чтобы автор ответил, настаивает ли он на том, чтобы приложение было консольным.


 
Domix ©   (2005-10-09 09:36) [32]


> но нужно чтобы автор ответил, настаивает ли он на том, чтобы
> приложение было консольным

Да настайваю
у меня уже есть готовая консольная программка (Зарание предупреждаю переделовать на VCL Не собираюсь не за что) мне нужно чтобы моя программа рисовала изоброжение не важно где и чтоб из моей пограммы можно было с ним работать


 
Anatoly Podgoretsky ©   (2005-10-09 13:42) [33]

Консоль работает в текстовом режиме и может эмулироваться в окне при нажатии Ctrl+Enter


 
Leonid Troyanovsky ©   (2005-10-10 08:51) [34]


> palva ©   (07.10.05 23:04) [26]

> Одна из причин: приложение должно воспринимать перенаправленный
> ввод/вывод, скажем, запускаться из консоли следующей командой:

> C:\>dir | Prog | sort
>
> а для этого приложение Prog должно быть консольным.


Вовсе нет. Если GUI приложение запущено консольным,
то первое может прочитать из пайпа после GetStdHandle
( до создания окна, насколько я помню).
Но, это все извращения, бо обсуждаемая форма естественна
лишь для консолей.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-10-10 09:01) [35]


> palva ©   (08.10.05 00:31) [28]
> Anatoly Podgoretsky ©   (08.10.05 00:07) [27]
> Автор хочет из консоли рисовать в окне. Но автора хотят
> склонить к созданию GUI приложения с консолью: "нет ни одной


Если имелась ввиду моя позиция, то она гораздо проще:
делаются два приложения: GUI и консоль, которые взаимодействуют
между собой любым естественным путем.

А гуисольным гибридам место в кунсткамере.

--
Regards, LVT.


 
Domix ©   (2005-10-10 14:29) [36]


> GUI и консоль, которые взаимодействуют
> между собой любым естественным путем.

Можно пример??? По конкретней Плиз


 
Leonid Troyanovsky ©   (2005-10-10 14:54) [37]


> Domix ©   (10.10.05 14:29) [36]
>
> > GUI и консоль, которые взаимодействуют
> > между собой любым естественным путем.
>
> Можно пример??? По конкретней Плиз


Я называл пример, IPCDemos.
Какие возникли трудности в его понимании?

Единственная особенность консоли в том, что  методы подобные
UpdateStatusBar реализуются не посылкой сообщений, а, например,
writeln внутри блока, защищенного мьютексом
(примеры подобной синхронизации есть и в IPCDemos).

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-10-10 15:02) [38]


> Domix ©   (10.10.05 14:29) [36]

> Можно пример??? По конкретней Плиз


Кста, если консоль используется лишь для отсылки команд to GUI application,
то самое простой способ - это послать ему (хендлу окна главной формы)
SendMessage(AppMainFormHandle, WM_COPYDATA,..).

--
Regards, LVT.


 
Domix ©   (2005-10-13 08:44) [39]


> (примеры подобной синхронизации есть и в IPCDemos).

CУпер куллл ОГРОМНЫЙ Сенк



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

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

Наверх




Память: 0.56 MB
Время: 0.056 c
14-1129192588
Ne vajno
2005-10-13 12:36
2005.11.06
Антивирус


3-1127475493
~viper~
2005-09-23 15:38
2005.11.06
Поиск


14-1129638502
Германн
2005-10-18 16:28
2005.11.06
Ну почему для самого важного всегда используют самое ненужное?


3-1127472404
Top
2005-09-23 14:46
2005.11.06
Offline работа


1-1129286094
Sergey_R
2005-10-14 14:34
2005.11.06
Завершение потока