Главная страница
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.026 c
1-84420
Maks Realov
2003-06-09 16:01
2003.06.26
Асинхронное выполнение процедур в своей программе.


1-84253
Gogol
2003-06-13 19:01
2003.06.26
Общая процедура OnChange на MyEdit: Array [0..n] of TEdit,


4-84814
1g0r
2003-04-22 13:53
2003.06.26
глубина цвета в HBITMAP, созданной CreateCompatibleBitmap()


9-83835
ko@ndrew
2002-05-16 16:18
2003.06.26
DirectPlay8


14-84515
Карлсон
2003-06-04 14:43
2003.06.26
руки поотрывать мало....