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

hippocamus

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

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

  • Посещение

Сообщения, опубликованные hippocamus

  1. В 25.07.2019 в 17:34, qz5 сказал:

    начиная с версии 10.3.1 - это рабочий код и он работает

    что очень удобно, жалко только подсветка ругается

    По-моему уже с 10.2 это работает.
    Но как по мне - удобно больше в циклах, особенно в for ... in ... do

  2. Помогите, пожалуйста - есть TPanel, в неё программно добавляются компоненты - TLabel многострочный, TCheckBox возможно другие.
    Всем им выставляется Position.Y := 1000 и Align := TAlignLayout.Top

    Как узнать реальную высоту этих контролов (надо, чтобы подогнать TPanel под размер)? TLabel.Height и AbsoluteHeight возвращают всегда одно и то же значение - 17...

  3. В общем, ошибка эта возникает из-за наличия на форме контрола WebBrowser.

    К тому же - сегодня ошибка уже другая - Priveleged instruction.

    Удаление и добавление контрола заново проблему не решило. В новом чистом проекте браузер не крашит программу.

    Придётся переносить компоненты из одного проекта в другой поштучно. Неприятно, но что поделать...

  4. Поставил 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".

    И обычно подобная гадость случается при попытке повторного освобождения памяти.

    Что же такое может происходить между этими двумя событиями? (Удалял и один обработчик и второй, перекидывал инструкции между ними как угодно - всё равно эта же ошибка).

     

  5. Не могу найти настроек размера и цвета шрифта - ни в свойствах компонента, ни в стиле.
    Если он наследует его от родительского компонента - то от какого? Ни в Form, ни в MultiView, ни в TabControl, ни в Panel нет настроек шрифта!

    Раньше менял через Scale - но отказался от этого способа из-за некорректной отрисовки - появлялись различные лишние полоски на форме.

  6. Добавляю ран-тайм в 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.

    Решал удалением родительского компонента и созданием его заново каждый раз. Но хочется нормального решения.

  7. В 24.04.2018 в 01:09, Akad сказал:

    Как ведёт себя браузер от TMS?

    Так же точно. Единственно - на него всё-таки устанавливается фокус при старте программы. Программно же установить тоже невозможно. Также не даёт поверх себя MultiView рисовать и не обновляется по Repaint.

  8. 24 минуты назад, Akad сказал:

    Обработка ява-скрипт команды занимает некоторое время и происходит асинхронно. Поэтому если сразу сделать репаинт - ничего не изменится.

    P.S. Что за ОС? Как ведёт себя браузер от TMS? Вообще если статический html и якоря, то на дельфе лучше richedit какой-нибудь сторонний использовать... Ну это так, к слову.
     

    Windows 7x64 (но собирал под x32). А так прога с прицелом и на Android тоже.
    TMS браузер не пробовал, в чём собственно его преимущество?
    RichEdit от TMS пробовал - очень сильно медленно работает, а у меня около 700k чистого текста. И кроме того - в html легко сделать мягкие переносы, выравнивание по обоим краям, колонки через табличную вёрстку и подгонка высоты и ширины колонок через встроенный javascript - так что richedit-ы для меня использовать не вариант.
    А браузер не перерисовывается не потому, что команда не успевает сработать, а не обновляется вообще, и через минуту, если не дёрнешь. Так вот - как можно программно это "дёрганье" сэмулировать?

  9. Хм, что-то получилось.

    Вот таким костылём, но меня вполне устраивает:

      WebBrowser1.EvaluateJavaScript('document.location.href=''#z10'';');

    Только одно "но" - браузер не обновляется автоматически, только когда начнёшь скроллить происходит реальное отображение новой позиции.

    WebBrowser.Repaint и   Application.ProcessMessages не дают нужного эффекта.

     

  10. Есть динамически создаваемая страница, на ней размечены опорные точки <a name="zXXX"></a>
      WebBrowser1.LoadFromStrings(GenerateHtml, '');
    Есть TreeView, нажатие на пункты которого должно скроллить браузер к этим якорям.

    Вот так: не получается...

      WebBrowser1.Navigate('#z10');

    Как это можно сделать? Может, есть какое-то внутреннее имя у страницы, чтобы указать в Navigate?
    В LoadFromStrings в качестве 2-го параметра задавал имя, допустим 'test', в Navigate указывал 'test#z10' - не работает.
    Подскажите кто знает...

     

  11. Тоже столкнулся с этим уже на 10.2 Tokyo, релиз 2017-го года.
    MultiView прячется под WebBrowser.
    Решил костыльно - обернул WebBrowser в TabControl с 2 TabItem - в одном браузер, другой - пустой.
    И при всплытии/прятании MultiView переключаю эти табы.

    Brovin Yaroslav советует делать скриншот содержимого браузера и отображать его под MultiView - мне тоже такое решение пришло в голову, только не знаю, как это сделать. Как получить картинку содержимого рабочей области WebBrowser?

×
×
  • Создать...