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

hippocamus

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

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

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. По-моему уже с 10.2 это работает. Но как по мне - удобно больше в циклах, особенно в for ... in ... do
  2. Решение найдено - после добавления TLabel в панель нужно вызывать TLabel.RecalcSize.
  3. Помогите, пожалуйста - есть TPanel, в неё программно добавляются компоненты - TLabel многострочный, TCheckBox возможно другие. Всем им выставляется Position.Y := 1000 и Align := TAlignLayout.Top Как узнать реальную высоту этих контролов (надо, чтобы подогнать TPanel под размер)? TLabel.Height и AbsoluteHeight возвращают всегда одно и то же значение - 17...
  4. Даже нет. Просто создаю контрол программно. А вот с перекрытием нативных компонентов всё так же плохо (((
  5. В общем, ошибка эта возникает из-за наличия на форме контрола WebBrowser. К тому же - сегодня ошибка уже другая - Priveleged instruction. Удаление и добавление контрола заново проблему не решило. В новом чистом проекте браузер не крашит программу. Придётся переносить компоненты из одного проекта в другой поштучно. Неприятно, но что поделать...
  6. Поставил Delphi 10.3 Rio, так как в нём, вроде бы, наконец исправили очень важный для меня момент - Z-Order для нативных контролов. При запуске проекта - вылет с указанной ошибкой после выполнения всех инструкций FormCreate и до выполнения первой команды FormShow. Не думаю, что это связано со сменой среды, так как давно не запускал основной проект на 10.2.3, а теперь проверить не получится, т.к. предыдущую версию снёс. Нашёл, что C000001D - это STATUS_ILLEGAL_INSTRUCTION. В MSDN про нее написано - "Attempting to execute an instruction code not defined by the processor". И обычно подобная гадость случается при попытке повторного освобождения памяти. Что же такое может происходить между этими двумя событиями? (Удалял и один обработчик и второй, перекидывал инструкции между ними как угодно - всё равно эта же ошибка).
  7. Благодарю, действительно. Я не понял сначала, что стиль нужно менять не совственно комбобоксовский.
  8. К сожалению, стиль ComboBox не предполагает компонента text (( Пришлось растягивать Content через Scale...
  9. Не могу найти настроек размера и цвета шрифта - ни в свойствах компонента, ни в стиле. Если он наследует его от родительского компонента - то от какого? Ни в Form, ни в MultiView, ни в TabControl, ни в Panel нет настроек шрифта! Раньше менял через Scale - но отказался от этого способа из-за некорректной отрисовки - появлялись различные лишние полоски на форме.
  10. Добавляю ран-тайм в TVertScrollBox компоненты TLabel со свойством Align = Top В первый раз всё в порядке, а после очистки контейнера и заливки новых TLabel порядок изменён: если сначала было 1 2 3 4 5 6 7 8, то начиная со второго раза лейблы идут в таком порядке: 1 8 7 6 5 4 3 2. Причём в TVertScrollBox.Content.Children они содержатся в правильном порядке. Не важно, добавляю ли я их через AddObject или через InsertObject. Та же беда с добавлением чекбоксов в TExplorer. Решал удалением родительского компонента и созданием его заново каждый раз. Но хочется нормального решения.
  11. Так же точно. Единственно - на него всё-таки устанавливается фокус при старте программы. Программно же установить тоже невозможно. Также не даёт поверх себя MultiView рисовать и не обновляется по Repaint.
  12. Windows 7x64 (но собирал под x32). А так прога с прицелом и на Android тоже. TMS браузер не пробовал, в чём собственно его преимущество? RichEdit от TMS пробовал - очень сильно медленно работает, а у меня около 700k чистого текста. И кроме того - в html легко сделать мягкие переносы, выравнивание по обоим краям, колонки через табличную вёрстку и подгонка высоты и ширины колонок через встроенный javascript - так что richedit-ы для меня использовать не вариант. А браузер не перерисовывается не потому, что команда не успевает сработать, а не обновляется вообще, и через минуту, если не дёрнешь. Так вот - как можно программно это "дёрганье" сэмулировать?
  13. Хм, что-то получилось. Вот таким костылём, но меня вполне устраивает: WebBrowser1.EvaluateJavaScript('document.location.href=''#z10'';'); Только одно "но" - браузер не обновляется автоматически, только когда начнёшь скроллить происходит реальное отображение новой позиции. WebBrowser.Repaint и Application.ProcessMessages не дают нужного эффекта.
  14. Есть динамически создаваемая страница, на ней размечены опорные точки <a name="zXXX"></a> WebBrowser1.LoadFromStrings(GenerateHtml, ''); Есть TreeView, нажатие на пункты которого должно скроллить браузер к этим якорям. Вот так: не получается... WebBrowser1.Navigate('#z10'); Как это можно сделать? Может, есть какое-то внутреннее имя у страницы, чтобы указать в Navigate? В LoadFromStrings в качестве 2-го параметра задавал имя, допустим 'test', в Navigate указывал 'test#z10' - не работает. Подскажите кто знает...
  15. Тоже столкнулся с этим уже на 10.2 Tokyo, релиз 2017-го года. MultiView прячется под WebBrowser. Решил костыльно - обернул WebBrowser в TabControl с 2 TabItem - в одном браузер, другой - пустой. И при всплытии/прятании MultiView переключаю эти табы. Brovin Yaroslav советует делать скриншот содержимого браузера и отображать его под MultiView - мне тоже такое решение пришло в голову, только не знаю, как это сделать. Как получить картинку содержимого рабочей области WebBrowser?
×
×
  • Создать...