Перейти к содержанию
Fire Monkey от А до Я

FIL

Пользователи
  • Постов

    70
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Весь контент FIL

  1. В ХЕ8 при наличии ARC: - метод Free эквивалентен обнулению ссылки, т.е. уменьшает счетчик на 1 и обнуляет ссылку; - метод DisposeOf принудительно разрушает объект, но не освобождает память до обнуления всех ссылок на него, т.е. получается так называемый зомби-объект. По сравнению с объектом у компонентов и контролов добавляются такие понятия как Owner и Parent, что соответственно усложняет механизм подсчета ссылок.
  2. Хорошо. Отмечу лишь, что ListBox позволяет сделать все тоже самое и даже больше.
  3. Вариант с 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/
  4. 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;
  5. Для себя я ее решил переносом настроек в код, но сам баг никуда не делся.
  6. Я проверял на двух разных компах и на обоих ошибка воспроизводится даже на "чистых" проектах. Может еще кто отпишется, у кого ХЕ8.1, есть такой баг или нет?
  7. Конечно включил. На скрине видно - все эл-ты включены.
  8. В обычном режиме не отображается GlyphButton, а в режиме редактирования - Accessory и TextButton. Почему так происходит?
  9. Прозрачность почему-то применяется только если загружать картинку через редактор MultiResBitmap. Причем прозрачный цвет должен быть выбран до загрузки. Похоже на очередной косяк разработчиков.
  10. Win, OSX Это где? OnSaveState срабатывает перед уничтожением формы, а вот OnDeactivate, вроде как, худо-бедно можно использовать для моих целей.
  11. Данное событие даже не возникает при сворачивании.
  12. Неужели вообще вариантов никаких нет?
  13. Попробуй грузить картинки не с диска. Вряд ли их у тебя очень много.
  14. Идея тут следующая (если требуется именно StayOnTop): Форма создается как StayOnTop и прячется за пределы экрана. Приведенный мною код меняет значение соответствующего поля формы, не вызывая при этом реакции на изменение значения св-ва (пересоздание формы как Popup и т.п.). Т.е. форма остается StayOnTop, но когда дельфийский код принимает решение об ее активации и т.п. действиях, то он "видит" ее как Popup, т.к. FormStyle = Popup. Тестовый проект прилагаю (проверял на Win7 x64): NotActiveStayOnTopForm.zip
  15. Можно бросить на форму Layout, растянуть его на всю форму и использовать его соответствующие события события.
  16. Подскажите, возможно ли в FMX каким-либо образом обработать событие сворачивания формы? Например, вместо сворачивания формы, спрятать ее (Hide).
  17. Я решал аналогичную задачу таким способом: procedure TForm2.FormActivate(Sender: TObject); begin PFormStyle(@FormStyle)^ := TFormStyle.Popup; end;
  18. Всем привет. Сегодня открыл в ХЕ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
×
×
  • Создать...