Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 20:54   #1
sokolik-117845
Пользователь
 
Регистрация: 10.07.2011
Сообщений: 14
По умолчанию Delphi forms

C формы главной программы открываю вторую
Код:
procedure TForm1.EffectButton6Click(Sender: TObject);
begin
  form2.show;
end;
У form2 в настройках Position ставлю PoMainFormCenter, чтобы при открытии она была точно по верх form1. Это работает только при первом открытии form2, а после закрытия form2 и повторного открытия не выравнивается по координатам form1.

Закрываю форм2 просто close; может из-за этого при новом открытии не накладывается на форму1? Подскажите кто знает!
sokolik-117845 вне форума Ответить с цитированием
Старый 02.09.2011, 21:01   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Никакого "открытия формы" в коде и в помине нет.
Есть визуализация до этого ранее некогда созданной формы. А позиция формы определяется именно при создании.
mss вне форума Ответить с цитированием
Старый 02.09.2011, 21:07   #3
sokolik-117845
Пользователь
 
Регистрация: 10.07.2011
Сообщений: 14
По умолчанию

Тогда вопрос как ранее созданную форму показать с такими же параметрами позиции как у формы из которой вызывается визуализация?
sokolik-117845 вне форума Ответить с цитированием
Старый 02.09.2011, 21:22   #4
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Либо пересоздать вторую форму либо в обработчике события 2-й формы OnShow установить ее св-ва Left и Top таким образом, чтобы она оказалась по центру 1й формы
mss вне форума Ответить с цитированием
Старый 02.09.2011, 21:29   #5
sokolik-117845
Пользователь
 
Регистрация: 10.07.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Либо пересоздать вторую форму либо в обработчике события 2-й формы OnShow установить ее св-ва Left и Top таким образом, чтобы она оказалась по центру 1й формы
Спасибо за помощь!
Код:
  form2.Top:=form1.Top;
  form2.Left:=form1.Left;
sokolik-117845 вне форума Ответить с цитированием
Старый 02.09.2011, 21:35   #6
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Код:
begin
  Form2.Show;
  MoveWindow(Form2.Handle, Form1.Left, Form1.Top, Form1.Width, Form1.Height, true);
end;
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Старый 02.09.2011, 21:39   #7
BlackFishSQL
Форумчанин
 
Аватар для BlackFishSQL
 
Регистрация: 02.04.2011
Сообщений: 136
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
FORM2.SHOW;
FORM2.POSITION:=PoMainFormCenter;
end;
ТАК ПРОЩЕ И ЛЕГЧЕ!)
BlackFishSQL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Forms Dimarik Общие вопросы .NET 3 07.05.2010 21:26
Turbo Delphi 2006.vcl forms application zajigalka7772009 Помощь студентам 0 19.03.2010 11:41
::FORMS:: doniyor Общие вопросы Delphi 4 05.02.2009 15:03
MDI FOrms SunKnight Общие вопросы Delphi 8 16.12.2007 11:17