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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2010, 12:29   #1
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию Местоположение формы

Всем доброго времени суток.

Видимо запрограммировался, но не могу решить простую задачу.

Есть Главная и второстепенная формы.
Нужно при нажатии на кнопку показать второстепенную форму.

Причем координаты у этой формы должны быть такие

Код:
left:=form1.left+form1.width-width;
top:=form1.Top+((form1.width-width) div 2);
Тоесть форма должна появляться как бы посередине основной формы.


И еще вопрос, как правильно использовать "/" вместо div в данном случае.
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.08.2010, 12:32   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)Form2.Top:=...
в чем проблема?
2)вам нужно целочисленное деление полюбому(integer нужен, а / даст real)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 12:33   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А выставить для нее Position:=poMainFormCenter не пробовал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.08.2010, 12:35   #4
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
1)Form2.Top:=...
в чем проблема?
2)вам нужно целочисленное деление полюбому(integer нужен, а / даст real)
Ну я решил задачу вот так
Код:
   left:=form1.left+form1.width-width;
   top:=form1.Top+((form1.width-form2.width) div 2);
Но при показе второстепенной формы, она не совсем посередине находится, а почему чет не могу вьехать
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.08.2010, 12:36   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

width не учитывает толщину рамки
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 12:36   #6
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А выставить для нее Position:=poMainFormCenter не пробовал?
Пробовал, но мне нужен этот код еще для так скажем "таскания формы", тоесть когда мы передвигаем основную, то двигается и второстепенная.

Пепел Феникса, ну я в принципе так и думал) в свое время напоролся на е же грабли, только там был таск бар))

Подскажите, если знаете, как вычислить толщину рамки/заголовка?
Moonquake

Последний раз редактировалось Stilet; 26.08.2010 в 12:46.
phphel вне форума Ответить с цитированием
Старый 26.08.2010, 12:44   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почитайте о GetSystemMetrics
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.08.2010, 12:50   #8
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Пепел Феникса, благодарю, решил вопрос вот так
Код:
top:=form1.Top+((form1.width-form2.width+
GetSystemMetrics(SM_CYCAPTION)) div 2);
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.08.2010, 13:57   #9
phphel
Форумчанин
 
Аватар для phphel
 
Регистрация: 12.07.2010
Сообщений: 249
По умолчанию

Так, вопрос снова открыт, видимо неверный код у меня, щас изменил форму, и она перестала правильно показываться...
Moonquake
phphel вне форума Ответить с цитированием
Старый 26.08.2010, 13:58   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

заголовок+рамка нужно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из DBGrid одной формы отразить в ListBox на другой формы VenZell БД в Delphi 2 28.05.2010 07:27
Заголовок Child формы имеет цвет неактивной формы, хотя форма активна? PrimaryPro Общие вопросы Delphi 0 12.03.2010 11:12
как привязать размеры содержимого формы к размерам самой формы acid_bmstu Общие вопросы Delphi 4 05.02.2010 05:02
Обращение из формы в dll к элементу главной формы (delphi) a_n_n_a Помощь студентам 3 10.05.2009 04:00
TRichViewEdit - местоположение курсора? Алексей_C Общие вопросы Delphi 2 30.10.2007 20:55