Форум: "Начинающим";
Текущий архив: 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.042 c