Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.031 c
4-1126063936
Strech
2005-09-07 07:32
2005.11.06
Заголовочные файлы от Setupapi. lib/dll


2-1129321721
fmcoder
2005-10-15 00:28
2005.11.06
Сделать часы, прибавляющие секунды равномерно


14-1128783117
ReStudent
2005-10-08 18:51
2005.11.06
Бинарное дерево


2-1129468114
AlexLines
2005-10-16 17:08
2005.11.06
Работа со строками


14-1129320856
Сергей А.
2005-10-15 00:14
2005.11.06
Есть ли альтернатва userGate?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский