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

Вниз

Эмулятор консоли или что-то вроде этого...   Найти похожие ветки 

 
Centronix   (2003-06-07 13:00) [0]

Привет.

Никто не знает где можно нарыть компонент для GUI приложения, который бы работал как стандартная ДОС-овская консоль ? Имеется ввиду визуально - чтоб можно было задать цвет текста/фона для отдельных символов, ввести какие-либо данные (с запрещением перемещения текстового курсора вне поля ввода) и т.п. и т.д.

ЗЫ: Сорри есле немного не в тему форума, но ИМХО в другие разделы оно еще больше не в тему.


 
Юрий Зотов ©   (2003-06-07 14:32) [1]

Компонентов таких не видел, но что мешает написать в программе соответствующий код? Например, такой:

procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
if AllocConsole then
try
SetConsoleTextAttribute(STD_OUTPUT_HANDLE,
FOREGROUND_BLUE or BACKGROUND_GREEN or BACKGROUND_RED or BACKGROUND_INTENSITY);
WriteLn("Hello, world!");
repeat
ReadLn(S);
Caption := S
until S = ""
finally
FreeConsole
end
end;

Все, что нужно для управления косолью можно найти в справке API, раздел Console functions.


 
Centronix   (2003-06-07 16:48) [2]

Мне нужно чтобы эта "псевдоконсоль" была в виде контрола на форме, а не отдельным окном...


 
Домарощинер ©   (2003-06-07 17:09) [3]

Ну так бери напиши свой компонент "в виде контрола на форме", который будет инкапсулировать это окно. Тем более, что и как он его будет инкапсулировать, тебе уже написали.
В чём проблема?

С Уважением, борец против общества потребителей.


 
Centronix   (2003-06-07 17:39) [4]


> как он его будет инкапсулировать, тебе уже написали.
> В чём проблема?

Во-первых, то что мне написали нельзя инкапсулировать "в виде контрола на форме" по определению (AllocConsole уже создает новое консольное окно).

Во-вторых, если бы я мог сам написать такой компонент, то я бы это сделал.


 
Иван Шихалев ©   (2003-06-07 17:53) [5]

См. API - Caret Functions etc. А уж как сделать свое окно внешне похожим на консоль - сам разберешься.


 
R4D][   (2003-06-08 13:40) [6]

А что если в OleContainer открыть WinExec("command.com", SW_SHOW)?


 
Spell Checker   (2003-06-08 15:14) [7]

procedure TConsole.Show(Sender: TObject);
var
S: string;
begin
if AllocConsole and not(csDesigning in ComponentState)then
try
SetConsoleTextAttribute(STD_OUTPUT_HANDLE,
FOREGROUND_BLUE or BACKGROUND_GREEN or BACKGROUND_RED or BACKGROUND_INTENSITY);
WriteLn("Hello, world!");
repeat
ReadLn(S);
Caption := S
until S = ""
finally
FreeConsole
end
end;

щас проверю в действии.
А вообще, я видел такой компонент в одном пакете для разработки игр...



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
3-83894
DreamDesire
2003-06-03 10:32
2003.06.26
Master-Details в TClientDataSet: касадное удаление


14-84738
killer
2003-06-06 00:54
2003.06.26
TBLODStream


3-83989
Екатерина
2003-05-29 12:54
2003.06.26
Утечка памяти при работе с DOA


1-84093
Doc
2003-06-10 14:21
2003.06.26
Имею C: path file.exe, надо получить C: path


14-84735
Дремучий
2003-06-05 18:54
2003.06.26
Кто из форумцев пользуется клиентом форума? Каким?