Главная страница
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.028 c
1-1082637756
killer
2004-04-22 16:42
2004.04.11
Столбцы в StringGrid


1-1082354460
Viktor
2004-04-19 10:01
2004.04.11
html


14-1079824599
GetIt
2004-03-21 02:16
2004.04.11
ADOConnection


3-1079436147
Ткаченко Сергей
2004-03-16 14:22
2004.04.11
QuickReport. Несколько страниц в одном отчете???


1-1082645647
alienserg
2004-04-22 18:54
2004.04.11
Кнопка динамической формы на панели задач.