|
Тема |
Re: Проблем с " ShowModal " [re: el_niqui] |
|
Автор | Dark Dirk (Нерегистриран) | |
Публикувано | 13.07.09 13:38 |
|
|
Пробвай да викнеш Application.ProcessMessages точно преди MyForm.ShowModal. Това при мен помага. Проблема изниква когато има някакво забавяне в главния thread преди изобразяването на формата. След това тя се изобразява отдолу и не е модална. Незнайно за защо за мен, но Appication.ProcessMessages помага. Ако някой има повече инфо нека сподели.
За диалози не ползвай ShowMessage, а windows-кото API.
function MessageDlgEx(WindowHandle: HWND; Msg: String; DlgType: TMsgDlgType;
Buttons: Cardinal; Cap: String = '';
DefButton: Cardinal = MB_DEFBUTTON1): Word;
var
DlgParams: Cardinal;
begin
DlgParams := Buttons OR DefButton OR MB_TASKMODAL;
case DlgType of
mtWarning: begin
DlgParams := DlgParams OR MB_ICONWARNING;
end;
mtError: begin
DlgParams := DlgParams OR MB_ICONERROR;
end;
mtInformation: begin
DlgParams := DlgParams OR MB_ICONINFORMATION;
end;
mtConfirmation: begin
DlgParams := DlgParams OR MB_ICONQUESTION;
end;
mtCustom: begin
end;
end;// case DlgType
if Cap = '' then
Cap := Application.Title;
Result := Windows.MessageBox(WindowHandle, PChar(Msg), PChar(Cap), DlgParams);
end;
пример:
MessageDlgEx(Self.Handle, 'Hello', mtInformation, MB_OK);
|
| |
|
|
|