Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Консоль на форме в PageControl. Как задать координаты размещения? [D6, WinXP]


Arexander ©   (2007-06-03 00:19:00) 

Доброго дня.
Есть задача вывести консольное окно в определенный 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-09 09:54:00) [1]


>  [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);


Arexander   (2007-06-08 22:46:00) [2]

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


clickmaker   (2007-06-08 10:46:00) [3]


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

то есть?

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

Lucida Console, Fixed Sys ?


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

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


MBo   (2007-06-07 09:29:00) [5]

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

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


Arexander   (2007-06-06 22:50:00) [6]

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


clickmaker   (2007-06-06 09:45:00) [7]


> Arexander ©   (03.06.07 00:19)

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо