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

Вниз

Програмное закрытие модального окна (диалог)   Найти похожие ветки 

 
Александр В.   (2004-10-20 15:55) [0]

Здравствуйте!
Помогите решить такую проблему:
На принт диалог добавляю свою кнопку "Просмотр".
Необходимо чтобы при нажатии на неё принт диалог
реагировал так же как и на нажатие (его) кнопки "ОК".
Пробовал
  SendMessage(PD.HWND,WM_Char,Ord(#13),0);
не помогает.
Заранее благодарен.


 
-=SS=- ©   (2004-10-20 16:47) [1]

В чём собственно проблема пподробней монжо ?


 
Александр В.   (2004-10-20 17:44) [2]

Необходимо на 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;



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

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

Наверх




Память: 0.47 MB
Время: 0.045 c
3-1099803279
SergP
2004-11-07 07:54
2004.12.05
Как получить коментарий к полю?


1-1100865130
Zilog
2004-11-19 14:52
2004.12.05
исключение "недопустимый дескриптор окна"!?


3-1099735417
Black
2004-11-06 13:03
2004.12.05
Как передать названия таблиц с сервера на клиент?


1-1100689264
Balkon
2004-11-17 14:01
2004.12.05
Совместный доступ двух потоков к объекту TQueue


8-1094225585
AzIN
2004-09-03 19:33
2004.12.05
время