![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Програмное закрытие модального окна (диалог) [D6, Win95/98, WinME, Win2k, WinXP]
Александр В. © (2004-10-20 15:55:00)Здравствуйте!
Помогите решить такую проблему:
На принт диалог добавляю свою кнопку "Просмотр".
Необходимо чтобы при нажатии на неё принт диалог
реагировал так же как и на нажатие (его) кнопки "ОК".
Пробовал
SendMessage(PD.HWND,WM_Char,Ord(#13),0);
не помогает.
Заранее благодарен.
Александр В. (2004-10-20 17:44:00) [1]Необходимо на PrintDialog поместить свою кнопку
при нажатии на которую диалог закрывается, а контрол
TPrintDialog возвращал установленные пользователем
режимы, PrintRange и пр..
Как это сделал я:
кнопка "Просмотр" лежит на панели, которую собственно и
кидаем на PrintDialog, иначе, если кидать только батон,
то он отказывается обрабатывать события. Такая практика
почерапана из Dialogs.pas.
//Old_Wnd:THandle - переменная модуля
{ В обработчике события OnShow PrintDialog
кидаем панель с батоном на диалог
}
procedure TForm1.PDShow(Sender: TObject);
var
r:Trect;
begin
Old_Wnd:=Windows.SetParent(pnl_btn.Handle,PD.Handle);
Windows.GetClientRect(PD.Handle,r);
pnl_btn.Left:=13;pnl_btn.Top:=r.Bottom-pnl_btn.Height-12;
pnl_btn.Visible:=True;
end;
//а в обработчике события OnClose возвращаем на родину.
procedure TfRepMan.PDClose(Sender: TObject);
begin
pnl_btn.Visible:=False;
Windows.SetParent(pnl_btn.Handle,Self.Handle);
end;
//Так вот. В обработчике OnClick батона необходимо
procedure TfRepMan.Button1Click(Sender: TObject);
begin
{закрыть диалог и получить установленные пользоваетелм
настройки, PrintRange и пр.. Вся проблема в том, что
каким бы методом я ни пробовал закрывать эффект как от нажатия
клавиши "Отмена" или Esc. Может я чего не так делаю.
}
// Пробовал так:
keybd_event(VK_RETURN,0,0,0);
keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
// и так
SendMessage(Self.Handle,WM_CHAR,Word(#13),0);
//SendMessage(PD.Handle,WM_CLOSE,0,0);
end;
-=SS=- (2004-10-20 16:47:00) [2]В чём собственно проблема пподробней монжо ?