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

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

Форму в нижний правый угол [D7, Win2k]


Developerr ©   (2005-12-04 20:56:00) 

Доброгое время суток!
Ув. мастера, подскажите, пожалуйста,

как сделать чтобы форма открывалась всегда в нижнем правом углу десктопа независимо от размеров формы и разрешения экрана?

Спасибо.


Fay   (2005-12-05 15:40:00) [1]

2 begin...end ©   (05.12.05 12:29) [10]
А если есть желание использовать для других объектов? 8)


Saimon   (2005-12-05 15:21:00) [2]


> Anatoly Podgoretsky ©   (05.12.05 11:54) [8]


Вы меня не совсем правильно поняли.
Это чтобы при открытии формы (т.е. типа " Visible:= true" когда ставится, проще говоря когда она появляется на экране) она ставала в правый-нижний угол. А когда форма теряет фокус, а потом снова его получает (без закрытия) OnActive не срабатывает, поэтому это будет действовать только при открытии. Лично у меня в дельфи 6 и 7 OnActive работает так... Или такого быть не должно??

Например, я часто использую в OnActive код центрирования формы относительно  родительской, для форм "Options" и "About...". Может быть я в чем-то не прав, но это мое мнение...


begin...end   (2005-12-05 12:29:00) [3]

> Fay ©   (05.12.05 12:23) [9]

Не так вот что: незачем усложнять код и использовать Sender, когда в методе того же объекта находимся.


Fay   (2005-12-05 12:23:00) [4]

2 begin...end ©   (04.12.05 21:25) [4]
> Совсем крыша поехала...
А что не так?


Anatoly Podgoretsky   (2005-12-05 11:54:00) [5]

Saimon   (05.12.05 11:28) [7]
Ни в коем случае, зачем нужна форма, которая будет прыгать обратно после перемещения и срабатывания OnActivATe.
Использование формы измеряется не в разах, а в интервале.


Saimon   (2005-12-05 11:28:00) [6]


> begin...end ©   (04.12.05 21:25) [4]


Вариант отличный, пользуюсь давно им.
Но порекомендовал-бы этот код пихать в OnActive той формы, которую надо по правому-нижнему краю ровнять.

В чем фишка??
А если ты форму используешь несколько раз??? Т.е. это не главная форма?
Тогда OnCreate сработает только один раз! А OnActive будет работать всегда.


Developerr   (2005-12-04 21:29:00) [7]

begin...end ©

Твой вариант самый рульный. И [3] и [4] работает.
Спасибо.


Developerr   (2005-12-04 21:26:00) [8]

Спасибо всем огромное


begin...end   (2005-12-04 21:25:00) [9]

Ой, сорри... [3] следует читать так:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Top := Screen.WorkAreaHeight - Height;
  Left := Screen.WorkAreaWidth - Width;
end

Совсем крыша поехала...


begin...end   (2005-12-04 21:23:00) [10]

procedure TForm1.FormCreate(Sender: TObject);
begin
 with (Sender as TControl) do
 begin
   Top := Screen.WorkAreaHeight - Height;
   Left := Screen.WorkAreaWidth - Width;
 end
end


Virgo_Style   (2005-12-04 21:20:00) [11]

Top  := Screen.Height - Height;
Left := Screen.Width  - Width;


Palladin   (2005-12-04 21:17:00) [12]

Есть глобальная переменная Screen:TScreen (надеюсь в D7 она осталась)
Назначаешь форме
Top:=Screen.Height-Selft.Height-3;
Left:=Screen.Width-Selft.Width-3;


Наверх

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