Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как открыть 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо