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

Вниз

Вызыв консольного окна из своей программы   Найти похожие ветки 

 
SergeyV   (2004-03-22 10:07) [0]

Стоит следующая задача. Окно куда вводятся определенные команды которые затем обрабатываются так или иначе. Самое простое это сделать консольное приложение. Однако делать отдельный exe вызываемый из основной программы не хочется.

Можно ли каким-то образом создать окно подобное консольному в своей программе.


 
PVOzerski ©   (2004-03-22 10:25) [1]

Достаточно добавить {$APPTYPE CONSOLE} в файле .dpr. Это даже проще, чем вызывать AllocConsole из GUI-приложения (тогда придется еще колдовать с файлами input и output или делать все I/O-операции с консолью через API). Разница будет при запуске проги из другой консольной (скажем, из far"а): в 1-м случае мы "унаследуем" консоль этой проги, во 2-м получим новое окошко.


 
SergeyV   (2004-03-22 10:35) [2]

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


 
PVOzerski ©   (2004-03-22 10:45) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
 x:integer;
begin
allocconsole;
reset(input);
rewrite(output);
writeln ("Enter any digit until 0");
repeat
 readln(x);
until x=0;
FreeConsole;
system.Close(input);
system.Close(output);
end;


 
PVOzerski ©   (2004-03-22 10:49) [4]

BTW, если не обязательно, чтобы окошко возникало именно при нажатии на кнопку, остается в силе 1-й вариант тоже.


 
SergeyV   (2004-03-22 11:37) [5]

Огромное спасибо, PVOzerski !
Проблем никаких, очень удобно обрабатывать команды.

Еще один касметический вопросик, а как задать положение и размеры открываемого окна?


 
SergeyV   (2004-03-22 11:47) [6]

О вот что заметил, если открыта основная форма и я вызываю консольное окно, то если щелкнуть крестик у этого окна то закрывается и главная форма (вырубается все приложение целиком).
Как это можно обойти?


 
Cobalt ©   (2004-03-22 12:06) [7]

На сколько я знаю - никак :(


 
SergeyV   (2004-03-22 12:53) [8]

Cobalt, никак относилось к положению и размерам окна или к закрытию основного приложения ?



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

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

Наверх




Память: 0.48 MB
Время: 0.068 c
4-1072452903
Aleksandr
2003-12-26 18:35
2004.04.11
Как найти приложение, запущенное в другой сессии Терминала?


4-1079765987
Iks
2004-03-20 09:59
2004.04.11
Я научился создовать окна на WinAPI,


14-1082021325
Stas
2004-04-15 13:28
2004.04.11
QNX система работающая в реальном времени


14-1082191608
lehich
2004-04-17 12:46
2004.04.11
помогу с сайтом


1-1082210213
alsov1234
2004-04-17 17:56
2004.04.11
Медленный скролинг в гриде