FIL
Пользователи-
Постов
70 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Весь контент FIL
-
Для получения характеристик экрана есть интерфейс IFMXDeviceMetricsService
- 9 ответов
-
- Физические размеры
- Размер экрана
-
(и ещё 2 )
C тегом:
-
В ХЕ8 при наличии ARC: - метод Free эквивалентен обнулению ссылки, т.е. уменьшает счетчик на 1 и обнуляет ссылку; - метод DisposeOf принудительно разрушает объект, но не освобождает память до обнуления всех ссылок на него, т.е. получается так называемый зомби-объект. По сравнению с объектом у компонентов и контролов добавляются такие понятия как Owner и Parent, что соответственно усложняет механизм подсчета ссылок.
-
Хорошо. Отмечу лишь, что ListBox позволяет сделать все тоже самое и даже больше.
-
Вариант с ListBox: var Form1: TForm1; Popup: TPopup; ListBox: TListBox; ... procedure TForm1.FormCreate(Sender: TObject); begin Popup := TPopup.Create(nil); with Popup do begin PlacementTarget := Button1; Placement := TPlacement.Bottom; Width := Button1.Width; Parent := Button1; end; ListBox := TListBox.Create(nil); with ListBox do begin Align := TAlignLayout.Client; Items.DelimitedText := 'Item1, Item2, Item3, Item4, Item5'; OnItemClick := ListBoxItemClick; Parent := Popup; Popup.Height := ListItems[0].Height * Items.Count + BorderHeight; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin ListBox := nil; Popup := nil; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox.ItemIndex := -1; Popup.IsOpen := True; end; procedure TForm1.ListBoxItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); begin Popup.IsOpen := False; ShowMessage(Item.Text); end; Ну а при желании можно сделать что-то вроде этого: http://yaroslavbrovin.ru/new-approach-of-development-of-firemonkey-control-control-model-presentation-part-2-tedit-with-autocomplete-ru/
-
TPopup - это "заготовка" для создания соответствующих компонентов. PopupMenu можно вызвать так: procedure TForm1.Button1Click(Sender: TObject); var P: TPointF; begin P := (Button1 as IControl).LocalToScreen(Button1.LocalRect.TopLeft); PopupMenu1.PopupComponent := Button1; PopupMenu1.Popup(P.X, P.Y + Button1.Height); end;
-
Для себя я ее решил переносом настроек в код, но сам баг никуда не делся.
-
Я проверял на двух разных компах и на обоих ошибка воспроизводится даже на "чистых" проектах. Может еще кто отпишется, у кого ХЕ8.1, есть такой баг или нет?
-
Конечно включил. На скрине видно - все эл-ты включены.
-
В обычном режиме не отображается GlyphButton, а в режиме редактирования - Accessory и TextButton. Почему так происходит?
-
Прозрачность почему-то применяется только если загружать картинку через редактор MultiResBitmap. Причем прозрачный цвет должен быть выбран до загрузки. Похоже на очередной косяк разработчиков.
-
ZuBy, спасибо, посмотрю.
-
Win, OSX Это где? OnSaveState срабатывает перед уничтожением формы, а вот OnDeactivate, вроде как, худо-бедно можно использовать для моих целей.
-
Данное событие даже не возникает при сворачивании.
-
Неужели вообще вариантов никаких нет?
-
Попробуй грузить картинки не с диска. Вряд ли их у тебя очень много.
-
Идея тут следующая (если требуется именно StayOnTop): Форма создается как StayOnTop и прячется за пределы экрана. Приведенный мною код меняет значение соответствующего поля формы, не вызывая при этом реакции на изменение значения св-ва (пересоздание формы как Popup и т.п.). Т.е. форма остается StayOnTop, но когда дельфийский код принимает решение об ее активации и т.п. действиях, то он "видит" ее как Popup, т.к. FormStyle = Popup. Тестовый проект прилагаю (проверял на Win7 x64): NotActiveStayOnTopForm.zip
-
Можно бросить на форму Layout, растянуть его на всю форму и использовать его соответствующие события события.
-
Подскажите, возможно ли в FMX каким-либо образом обработать событие сворачивания формы? Например, вместо сворачивания формы, спрятать ее (Hide).
-
Я решал аналогичную задачу таким способом: procedure TForm2.FormActivate(Sender: TObject); begin PFormStyle(@FormStyle)^ := TFormStyle.Popup; end;
-
Всем привет. Сегодня открыл в ХЕ8.1 приложение, написанное в ХЕ7 и нормально работающее и получил два окошка с загадочным сообщением: "Cannot create a swap chain for 'TCanvasD2D'". Методом тыка удалось установить, что для воспроизведения сего замечательного эффекта необходимо выполнения 2-х условий (в настройках формы): - FormStyle = StayOnTop - Visible = True В Embarcadero о проблеме как бы знают, но исправлять не торопятся http://qc.embarcadero.com/wc/qcmain.aspx?d=127435