Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Тимошенко Дмитрий
Статус: Студент
Рейтинг: 301
∙ повысить рейтинг >>
Сарумян
Статус: Студент
Рейтинг: 250
∙ повысить рейтинг >>
Влaдимир
Статус: Студент
Рейтинг: 181
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1399 от 27.06.2009, 15:35
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 558, экспертов - 186
В номере: вопросов - 1, ответов - 1

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 169730: Здравствуйте! Есть форма, на ней допустим кнопка! при нажатии на кнопку появляется другая форма! вопрос в том как позиционировать форму рядом с кнопкой! форма вызывается так: procedure button1Click(Sender: TObject); var f: TForm;


Вопрос № 169730:

Здравствуйте!
Есть форма, на ней допустим кнопка! при нажатии на кнопку появляется другая форма! вопрос в том как позиционировать форму рядом с кнопкой!

форма вызывается так:
procedure button1Click(Sender: TObject);
var f: TForm;
begin
f := TForm.Create(self);
f.ShowModal;
end;

попробовал в событии OnShow сделать следующее:

left := (Owner as TForm).ActiceComponent.left // что то типа того


на форме могут быть и другие компоненты посредством которых может вызвана форма.

Отправлен: 22.06.2009, 19:23
Вопрос задал: Дадаев Заур Мусаевич, Посетитель
Всего ответов: 1
Страница вопроса >>


Отвечает OlegD, 1-й класс :
Здравствуйте, Дадаев Заур Мусаевич.

Вот код который Вам может помочь

procedure TForm1.button1Click(Sender: TObject);
var f: TForm;
begin
f := TForm.Create(self);
//
f.Left := Form1.Left + button1.Left + button1.Width + GetSystemMetrics(SM_CXEDGE);
f.Top := Form1.Top + button1.Height + button1.Top + GetSystemMetrics(SM_CYEDGE) + GetSystemMetrics(SM_CYCAPTION);
//
f.ShowModal;
end;

В данном примере формы будет показана начиная с левого нижнего угла.
Для вычисления позиций используются следующие данные:
Form1.Left - позиция главной формы (которая вызывает другую) слево от края экрана
button1.Left - позиция нажатой кнопки от левого края формы
button1.Width - ширина кнопки.

Form1.Top - позиция главной формы (которая вызывает другую) сверху от края экрана
button1.Height - высота кнопки
button1.Top - позиция нажатой кнопки сверху от края клиентской части формы. Клиентская часть формы не включает строк у меню.

GetSystemMetrics(SM_CXEDGE) - возвращает значения системных переменных. В нашем случае используется (из Delphi Help - Win32 Developer's Reference (Windows SDK)):
SM_CXEDGE, SM_CYEDGE - Dimension in pixel of 3-D border
SM_CYCAPTION - Heigth in pixel of normal caption area (Высота заголовка окна)

В случае если у вас есть также и меню в главной форме, то необходимо также учитывать и его SM_CYMENU.

Ответ отправил: OlegD, 1-й класс
Ответ отправлен: 22.06.2009, 16:56

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251331 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.3 от 20.06.2009

    В избранное