![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток.
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
|
||||
|
||||
|
Мне кажется, что сначала надо включать AutoSize, а потом уже делать вычисления с Width и Height.
|
|
#3
|
|||
|
|||
|
Пробовал. Ничего! Решил через таймер перерисовать все. Тупо, но работает.
|
|
#4
|
|||
|
|||
|
а штрока не мешает при определении разрешения экрана?
|
|
#5
|
|||
|
|||
|
Что за шторка?
|
|
#6
|
|||
|
|||
|
Служебная область, которая выдвигается...
|
|
#7
|
|||
|
|||
|
Нет. Не мешает. Но явно где-то косяк в коде, так как по такому принципу рисуется все кроме кнопок. Кнопки выводятся нормально сразу. Может и правда, что-то с автосайз?! Приду домой еще раз проверю.
|
|
#8
|
|||
|
|||
|
Но я пробовал убирать автосайз и писал конкретную ширину лейбла, и всеранво при создании результат выполнения
Код:
Label_Logo.Position.X:= (Resolution_Size.x / 2 ) - ( Label_Logo.Width / 2); |
|
#9
|
||||
|
||||
|
Цитата:
|