Форум: "WinAPI";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизКонсоль на форме в 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c