Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.05.2014, 12:57
iem00 iem00 вне форума
Прохожий
 
Регистрация: 16.12.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию FireMonkey - положение динамически созданных объектов

Доброго времени суток.
1. Определяю разрешение экрана при создании формы. Результат в (Resolution_Size)
2. Создаю динамический объект.

Код:
Label_Logo:= TLabel.Create(Sender as TForm);
  Label_Logo.Text:= 'LOGO ';
  Label_Logo.Position.X:= (Resolution_Size.x / 2 ) - ( Label_Logo.Width / 2);
  Label_Logo.Position.Y:= (Resolution_Size.y / 3 ) - ( Label_Logo.height / 2);
  Label_Logo.Parent:= Sender as TForm;
  Label_Logo.AutoSize:= true;
  Label_Logo.Visible:= true;
  Label_Logo.BringToFront;
  Label_Logo.Repaint;

Объект рисуется где-то в центре, но немного правее чем должен.

3. При OnResize формы (поворот смартфона):

Код:
 Label_Logo.Position.X:= (Resolution_Size.x / 2 ) - ( Label_Logo.Width / 2);
  Label_Logo.Position.Y:= (Resolution_Size.y / 3 ) - ( Label_Logo.height / 2);
  Label_Logo.Repaint;

Все начинает рисовать ровно в центре.

Проверял через ShowMessage. И в первом случае, и во втором разрешение экрана такое же.

Где косяк?
Ответить с цитированием
  #2  
Старый 04.05.2014, 20:53
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Мне кажется, что сначала надо включать AutoSize, а потом уже делать вычисления с Width и Height.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #3  
Старый 04.05.2014, 21:12
iem00 iem00 вне форума
Прохожий
 
Регистрация: 16.12.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Пробовал. Ничего! Решил через таймер перерисовать все. Тупо, но работает.
Ответить с цитированием
  #4  
Старый 05.05.2014, 00:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

а штрока не мешает при определении разрешения экрана?
Ответить с цитированием
  #5  
Старый 05.05.2014, 06:55
iem00 iem00 вне форума
Прохожий
 
Регистрация: 16.12.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Что за шторка?
Ответить с цитированием
  #6  
Старый 05.05.2014, 10:21
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Служебная область, которая выдвигается...
Ответить с цитированием
  #7  
Старый 05.05.2014, 10:33
iem00 iem00 вне форума
Прохожий
 
Регистрация: 16.12.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Нет. Не мешает. Но явно где-то косяк в коде, так как по такому принципу рисуется все кроме кнопок. Кнопки выводятся нормально сразу. Может и правда, что-то с автосайз?! Приду домой еще раз проверю.
Ответить с цитированием
  #8  
Старый 05.05.2014, 10:35
iem00 iem00 вне форума
Прохожий
 
Регистрация: 16.12.2013
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Но я пробовал убирать автосайз и писал конкретную ширину лейбла, и всеранво при создании результат выполнения
Код:
Label_Logo.Position.X:= (Resolution_Size.x / 2 ) - ( Label_Logo.Width / 2);
не совпадает с этой же формулой, но после Resize формы.
Ответить с цитированием
  #9  
Старый 06.05.2014, 00:17
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от iem00
не совпадает с этой же формулой, но после Resize формы.
А если сначала Parent устанавливать, а уже потом размеры?
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:37.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter