![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Форму в нижний правый угол [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;