![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть OpenDialog в нужном месте экрана? Что-то я торможу. [D5, D6, Win95/98, Win2k, WinXP]
DVM © (2002-12-02 17:05:00)Как открыть OpenDialog в нужном месте экрана? Что-то я торможу. У него свойств Left и Тор нету.
Обычно открываю так:
if OpenDialog.Execute then...
DVM (2002-12-04 22:47:00) [1]GetParent не работает!:(
Вроде бы все правильно:
MoveWindow(GetParent(OpenDialog.Handle),1,1,500,400,true);
Попробовал еще так:
f:=findwindow(nil,"Обзор"); //"Обзор" - название окна-диалога
MoveWindow(f,1,1,500,400,true);
Прогресс: OpenDialog поменялся в размерах, но поменялся как то криво, только его часть что-ли изменила размер.
Как подвинуть этот гребаный ДИАЛОГ?????????????????
PVOzerski (2002-12-03 22:56:00) [2]Помню одну тонкость, которую нашел в свое время случайно: handle этого компонента - на самом деле не Handle собственно окна диалога, а некоего его дочернего контрола - так что истинный хэндл я вытаскивал через GetParent(Handle). А тогда и MoveWindow должен заработать.
DVM (2002-12-03 20:13:00) [3]Наследником от TDialog? Непонятно, почему Borland этого не сделал? Вроде бы может понадобится.
Song (2002-12-03 14:13:00) [4]Наследником.
DVM (2002-12-03 14:05:00) [5]Посмотрел в справке: у предка TDialog есть Position:TPoint,
Это как то можно "достать"?
DVM (2002-12-03 13:39:00) [6]А нормальный OpenDialog нельзя подвинуть? А то этот, "старого образца" (ofOldStyleDialog) не совсем подходит, да и некрасивый он какой то.
Винда сама то OpenDialog-и двигает:
Пуск - Выполнить - Обзор, например.
Как сделать так???
Skier (2002-12-03 12:52:00) [7]>DVM
1)
OpenDialog1.Options := OpenDialog1.Options + [ofOldStyleDialog]
2)
procedure TForm1.OpenDialog1Show(Sender: TObject);
begin
SetWindowPos(OpenDialog1.Handle, HWND_TOP, 10, 10, 0, 0, SWP_NOSIZE);
end;
DVM (2002-12-03 12:35:00) [8]Не работает :(
Писал в обработчике события OnShow OpenDialog-a:
1 вариант: Postmessage(OpenDialog.Handle, wm_move, 1, 1);
2 вариант: MoveWindow(OpenDialog.Handle, 1,1, 400,300, true);
(размеры 400х300 от балды)
3 вариант: SetWindowPos(OpenDialog.Handle, HWND_TOP,1,1,400,300,SWP_NOSIZE);
Ни один вариант не двигает OpenDialog в угол.
Может, я что не так делаю?
Marcus (2002-12-02 17:10:00) [9]Событие OnShow и пробовать MoveWindow(TForm(Sender).Handle, ...) или SetWindowPos