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

Вниз

Консоль на форме в PageControl. Как задать координаты размещения?   Найти похожие ветки 

 
Arexander ©   (2007-06-03 00:19) [0]

Доброго дня.
Есть задача вывести консольное окно в определенный TabSheet компонента PageControl.
Выводе окна каждый раз происходит с новыми координатами ( окно пляшет на форме ).
В чем ошибка?

Код.
Сперва консоль.
procedure TForm1.FormShow(Sender: TObject);
begin
ShellExecute(Handle, "open", "c:\Windows\System32\cmd.exe", nil, nil, SW_SHOWNORMAL);
end;

Вывод окна.
hMain:= FindWindow(nil, PChar("c:\windows\system32\cmd.exe"));

if hMain<>0 then
begin
windows.GetClientRect(hMain, r);
FrameX:= GetSystemMetrics(SM_CXDLGFRAME);
FrameY:= GetSystemMetrics(SM_CYDLGFRAME);
CaptionH:= GetSystemMetrics(SM_CYCAPTION);
rg:= CreateRectRgn(
r.Left + FrameX +2, r.Top + CaptionH + FrameY + 1,
r.Right + FrameX*2, r.Bottom + CaptionH*2 - FrameY*4 - 1);
SetWindowRgn(hMain, rg, True);
windows.SetParent(hMain, Form1.PageControl1.ActivePage.Handle);
end;
end;


 
clickmaker ©   (2007-06-06 09:45) [1]


> Arexander ©   (03.06.07 00:19)

а в итоге-то чего надо добиться? почему таким странным способом?


 
Arexander ©   (2007-06-06 22:50) [2]

Хочется получить ДОС-окно на одной из закладок компонента PageControl.
В котором можно и пинг и телнет использовать.
Спасибо.


 
MBo ©   (2007-06-07 09:29) [3]

Используй перенаправление стандартного ввода-вавода консоли, например, в Memo

в MSDN в топике CreatePipe посмотри пример
Creating a Child Process with Redirected Input and Output.


 
Arexander ©   (2007-06-07 23:22) [4]

Попробовал.
Комбинация ctr-break и Alt-Enter априорно не обрабатываются, да и шрифт сложно подобрать чтоб на системный был похож. Еще есть варианты ?


 
clickmaker ©   (2007-06-08 10:46) [5]


> Комбинация ctr-break и Alt-Enter априорно не обрабатываются

то есть?

> шрифт сложно подобрать чтоб на системный был похож

Lucida Console, Fixed Sys ?


 
Arexander ©   (2007-06-08 22:46) [6]

Т.е. когда из этого примера перенаправления стандартного ввода-вавода консоли в Memo http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1057316445&n=15 запускается ping, остановить его невозможно.


 
clickmaker ©   (2007-06-09 09:54) [7]


>  [6] Arexander ©   (08.06.07 22:46)


if PeekMessage(Msg, 0, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE) then
begin
 if (Msg.message = WM_KEYDOWN) and (Msg.wParam = <желаемый код клавиши>) then
   Terminate;
end;
sleep(200);
PeekNamedPipe(ChildStdoutRd,nil,0,nil,@bytesRead,nil);



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1195849433
ton
2007-11-23 23:23
2007.12.23
как создать модуль объекта с возможностью выбора его параметров


2-1196404505
WestNik
2007-11-30 09:35
2007.12.23
Создание TabSheet динамически


15-1195910267
VladOil
2007-11-24 16:17
2007.12.23
Картинку в RichEdit


15-1196066490
AIK
2007-11-26 11:41
2007.12.23
Офигели блин


2-1196157691
BattleCruser
2007-11-27 13:01
2007.12.23
Обработка сообщений в невизуалных класах.