Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Mihalish
40 / 8 / 0
Регистрация: 17.05.2011
Сообщений: 123
1

Вторая форма по центру первой

11.08.2016, 19:42. Просмотров 330. Ответов 8
Метки нет (Все метки)

Всем привет. Такой вопрос, есть две формы, первая (главная) и вторая, которая открывается при клике на кнопку, расположенную на первой форме. Значение Position второй формы установлено в poMainFormCenter. Оно как бы все работает, вторая форма открывается по центру первой до тех пор, пока я не передвину первую форму. Как только я передвину первую форму в другое месть, вторая форма открывается на предыдущем месте первой формы, а не по центру. Подскажите как это исправить.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2016, 19:42
Ответы с готовыми решениями:

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

Как правильно сделать чтобы вторая форма открывалась в первой
У меня есть главная форма и мне надо набить код чтобы когда я компилирую мне...

Вторая форма
---Сразу говорю админам что та прога которую я делал, была просто шуткой:sorry:...

Вторая форма главная?
как сделать вторую форму главной? чтоб при компиляции программы, открывалась...

Вторая форма поверх всех окон
Здравствуйте. Есть две формы Form1 и Form2. Нужно сделать чтобы при нажатии на...

8
BOGG ART
577 / 445 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
11.08.2016, 19:50 2
Показывайте/рассказывайте как открываете/закрываете.
0
Mihalish
40 / 8 / 0
Регистрация: 17.05.2011
Сообщений: 123
11.08.2016, 19:54  [ТС] 3
Открытие второй формы
Delphi
1
2
3
4
procedure TForm1.H1Click(Sender: TObject);
begin
  Form3.ShowModal;
end;
Закрываю крестиком
0
BOGG ART
577 / 445 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
11.08.2016, 20:02 4
Вот и нашлась проблема. Крестик не закрывает. А только делает невидимой. Хотя по-хорошему разработчики должны были это учесть.
Придётся или вручную выставлять в OnShow() или создавать дочернюю динамически и закрывать уже насовсем.
Есть важные данные на форме, которые надо бы хранить?
0
Mihalish
40 / 8 / 0
Регистрация: 17.05.2011
Сообщений: 123
11.08.2016, 20:04  [ТС] 5
Решил проблему следующим образом, после Form3.ShowModal добавил Form3.Position := poMainFormCenter,
Delphi
1
2
3
4
5
procedure TForm1.H1Click(Sender: TObject);
begin
  Form3.ShowModal;
  Form3.Position := poMainFormCenter;
end;
0
BOGG ART
577 / 445 / 146
Регистрация: 09.12.2013
Сообщений: 2,384
Записей в блоге: 2
11.08.2016, 20:06 6
Отбой, попробуйте так вот:
Delphi
1
2
Form3.Position:=poMainFormCenter;
Form3.ShowModal();
Добавлено через 41 секунду
Попоздал)
1
NIKOLAYY
820 / 718 / 339
Регистрация: 22.09.2012
Сообщений: 4,995
12.08.2016, 17:57 7
Цитата Сообщение от Mihalish Посмотреть сообщение
Оно как бы все работает, вторая форма открывается по центру первой до тех пор, пока я не передвину первую форму.
Запрети перетаскивание! Выставь BorderStyle в bsNone и форму не за что будет двигать!
0
Mihalish
40 / 8 / 0
Регистрация: 17.05.2011
Сообщений: 123
12.08.2016, 19:09  [ТС] 8
Запрети перетаскивание! Выставь BorderStyle в bsNone и форму не за что будет двигать!
Это не вариант, не красиво тогда получается, чисто визуально не красиво.
0
Novoros
10 / 10 / 4
Регистрация: 25.05.2015
Сообщений: 52
12.08.2016, 23:57 9
Запретить перемещение формы.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
...
implementation
 
 procedure Form1.WMSysCommand(var Msg: TWMSysCommand);
 begin
   if ((Msg.CmdType and $FFF0) = SC_MOVE) then
   begin
     Msg.Result := 0;
     Exit;
   end;
   inherited;
 end;
0
12.08.2016, 23:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.08.2016, 23:57

Что бы вначале появлялась вторая форма
У меня есть главная форма и вторая форма для запроса фамилии и имя и мне надо...

Необходимо приостановить выполнение кода первой формы, пока открыта вторая
необходимо приостановить выполнение кода первой формы, пока открыта вторая как...

Как сделать что бы по щелчку кнопки открывалась вторая форма?
как сделать что бы по щелчку кнопки открывалась вторая форма?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru