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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      7

    • Постов

      2 124


  2. UniSoft

    UniSoft

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


    • Баллы

      3

    • Постов

      2


  3. XXXXXX

    XXXXXX

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


    • Баллы

      2

    • Постов

      46


  4. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      1

    • Постов

      2 517


Популярный контент

Показан контент с высокой репутацией 09.07.2015 во всех областях

  1. Так, я посмотрел. Сохраняем себе такую процедуру: procedure PreloadContent(const Control: TControl); var I: Integer; begin if Control is TStyledControl then TStyledControl(Control).ApplyStyleLookup; for I := 0 to Control.ControlsCount - 1 do PreloadContent(Control.Controls[I]); end; Она форсирует загрузку стилей. Задержка при появлении TMutliView заключается в том, что стиль загружается не сразу у любого контрола, а только по мере появления контрола. Обычно это происходит при первой отрисовки. Это правило касается всех контролов. Поэтому, в этом случае, вам нужно форсировать загрузку стилей. Это можно сделать при помощи моей процедуру PreloadContent. Добавьте в TForm.OnCreate и это решит задержку при первом появлении: PreloadContent(MultiView1);
    3 балла
  2. По идеи если вы хотите, чтобы у вас тулбар распологался сверху относительно всего остального, то TMultiView и TargetControl должны лежат в отдельном контейнере. Например так: Потому что TMultiView в режиме Drawer распологается в ручную относительно своего родителя. На моем примере Drawer будет вытянут по высоте Layout1. Если же TMultiView лежит на форме, то он будет растягиваться по высоте формы.
    2 балла
  3. Проблема в инициализации модулей, точнее в последовательности их инициализации. FMX.Types.pas initialization ... // <<< тут проблема, // на момент вызова этого конструктора, инициализация модуля System.Rtti.pas // еще не выполнялась... // т.е. модуль System.Rtti.pas инициализируется после FMX.Types.pas SharedContext := TRttiContext.Create; ... System.Rtti.pas class function TRttiContext.Create: TRttiContext; begin EnsurePoolToken(@Result.FContextToken); end; constructor TPoolToken.Create; begin TMonitor.Enter(PoolLock); // вот тут то и падение, модуль еще не инициализирован и PoolLock = nil try if Pool = nil then begin Pool := TRttiPool.Create; PoolRefCount := 1; end else Inc(PoolRefCount); finally TMonitor.Exit(PoolLock); end; end; procedure EnsurePoolToken(TokenRef: PInterface); var sample: Pointer; procedure DoCreate; var tok: IInterface; begin tok := TRttiContext.FGlobalContextToken; if tok = nil then tok := TPoolToken.Create; if AtomicCmpExchange(PPointer(TokenRef)^, Pointer(tok), sample) = sample then begin // We won the race to initialize the TokenRef location, so // zero-out interface reference without decrementing reference count. PPointer(@tok)^ := nil; end; end; begin sample := PPointer(TokenRef)^; if sample <> nil then Exit; DoCreate; end; initialization ... PoolLock := TObject.Create; Есть еще один нюанс, инициализация System.Rtti.pas зачем-то выполняется два раза, к краху это не приведет, но небольшой (не накопительный) memleak будет. Проблема в библиотеках, и похоже только Win32 ЗЫ. к стилям никакого отношения не имеет... достаточно одной строчки: void __fastcall TForm1::FormCreate(TObject *Sender) { TValue::From<String>("test"); }
    2 балла
  4. Приступил к созданию компонента по отображению текста с поддержкой форматирования для настольной версии клиента, чтобы отображать HTML разметку постов. На текущий момент уже поддерживаются следующие возможности: Параграфы и просто блоки текста (<p>, <span>) Изменение цвета для любого текста (color) Изменение параметров шрифта (размер, название, стиль) (font-size, font-style, font-weight, font-family, <b>, <strong>) Разрыв строки (<br/>)
    1 балл
  5. TListView хорош для отображения большого объема данных. Но он с точки зрения добавления отдельных полей внутрь итемов, требует дополнительных знаний. ПОэтому если данных не много, то для этих вещей хорошо подходит TListBox, с которым проще работать. Поэтому нужно смотреть по ситуации. Много итемов и мобильные платформы -> TListView Мало итемов или настольные платформы -> TListBox
    1 балл
  6. XXXXXX

    GCM

    Всем большое спасибо, нашёл решение. при создании TStringStream добавил TStringStream.Create('', TEncoding.UTF8);
    1 балл
  7. XXXXXX

    XE8 и хинты

    Если не будет другого выхода, можете нарисовать Хинт вручную и показывать его при ивенте OnMouseEnter
    1 балл
  8. ну исходники библиотек то одни... а вот в x64 не проявляется... да и еще этот баг там не единственный, понизив приоритет инициализатора все запускается нормально, но падает уже при закрытии и в каком-то другом модуле. патч fmx.lib и cw32mt.lib решают проблему... http://rghost.net/6rNpG5LlC но я бы не рекомендовал это использовать, высока вероятность, что может начать конфликтовать с какими либо другими модулями. как устроена инициализация, и о каких приоритетах идет речь, можно посмотреть тут: функция _init_exit_proc() C:\Program Files (x86)\Embarcadero\Studio\16.0\source\cpprtl\Source\startup\initexit.c C:\Program Files (x86)\Embarcadero\Studio\16.0\source\cpprtl\rtlinc\_startup.h по хорошему, нужно бы отправить баг-репорт, ведь баг то критический, но у меня нет EDN аккаунта.
    1 балл
  9. Для анимации переходов точно TTabControl, но не лепить все на одной форме
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...