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

haword

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

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

  • Посещение

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

    19

Активность репутации

  1. Like
    haword получил реакцию от Rusland в Рендеринг "невидимых" плоскостей или как обуздать отсечение   
    главное найти от куда плясать и все. а что ты хотел то? fmx это такой зверь которые надо пилить и пилить, не зря наши делали. это как и наши машины, купил а потом напильником подгоняй что бы работало 
  2. Like
    haword получил реакцию от zairkz в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования   
    ну так хоть альфу показал бы
  3. Like
    haword получил реакцию от zairkz в Отображение в виде плиток   
    проблема не в том что битмапы не очищаются при очистке ListView, проблема при добавлении картинок в уже готовый список. Может конечно и дело в коде но код такой, при добавлении картинки если она не была загружена считываю картинку с БД, уменьшаю до маленького размера, делаю ListViewItem.Bitmap:=TBitmap.Create далее в него загружаю эту картинку и так далее. и при пролистывании около 100 картинок лезли глюки, даже если я не изменял количество итемов в ListView. Просто скролил вниз список. Было ощущение что где то лез out of memory и это вызывало глюки отображения. Пришлось ваять поток отдельный который будет бегать по списку добавленных ListViewItem и проверять видим ли он на экране, если нет то его Bitmap очищаю и из списка удаляю ListViewItem.
    Читал как это делается в андроиде, там классно сделали. При событии скрола есть параметры первый видимый итем, количество видимых, и общее количество итемов, а при изменении статуса скрола параметр указывающий на то что это, идет скролинг, начался или закончился. и от сюда куда удобнее получать видимость итемов и пихать в него картинки и удалять без бубнов . 
  4. Like
    haword получил реакцию от Равиль Зарипов (ZuBy) в Отображение в виде плиток   
    а вот обычный ListView в моей проге, с программой записи подлагивает без нее все летает плавно. ибо картинки кешируются на диск и как item пропадает из видимости картинка зачищается. как item становится видимым подргужается с диска. 
     
  5. Like
    haword получил реакцию от Равиль Зарипов (ZuBy) в Отображение в виде плиток   
    ну хотя бы вот  письками мериться не буду, телефон не топовый, средний, проц Snapdragon 410 
     
  6. Like
    haword получил реакцию от Brovin Yaroslav в Отображение в виде плиток   
    а вот обычный ListView в моей проге, с программой записи подлагивает без нее все летает плавно. ибо картинки кешируются на диск и как item пропадает из видимости картинка зачищается. как item становится видимым подргужается с диска. 
     
  7. Like
    haword получил реакцию от zairkz в Отображение в виде плиток   
    использовать плавающие панели с html текстом вместо прорисовки колонок это извращение. при этом хз как это все себя поведет при 500 панелей. ну и стоимость сего добра то же не малая. 
  8. Like
    haword получил реакцию от zairkz в 3D приложение   
    чем FMX будет в случае работы с API OpenGL отличаться от делфи? да ни чем. Я думаю можно сделать таку штуку и на FMX. 
    надеюсь не последует следующий стандартный вопрос в таких случаях - а есть исходный код похожей готовой программы 
  9. Like
    haword получил реакцию от Евгений Корепов в Снова про картинку на кнопке   
    лучше не пользуйся TImageList. у меня на моем телефоне нормально отображалась картинка на кнопке, на планшете нормально, а вот на Sony Xperia L, вместо картинки были различные черточки даже отдаленно не напоминающие картинку. кинул на кнопку обычный TImage и все заработало. 
  10. Like
    haword получил реакцию от Евгений Корепов в Возвращаясь к вопросу о подсчете высоты текста TListView   
    function GetTextHeight(text: string; width: single; wordwrap: boolean; font: tfont; HAlign, VAlign: TTextAlign; Trimming: TTextTrimming): single; begin if FTextLyout = nil then FTextLyout := TTextLayoutManager.DefaultTextLayout.Create; FTextLyout.BeginUpdate; try // Инициализируем текстовый слой для корректного вычисления // размеров отображаемого текста FTextLyout.Text := text; FTextLyout.MaxSize := TPointF.Create(Width, 10000); FTextLyout.WordWrap := WordWrap; FTextLyout.Font := Font; FTextLyout.Trimming:= Trimming; FTextLyout.HorizontalAlign := HAlign; FTextLyout.VerticalAlign := VAlign; finally FTextLyout.EndUpdate; end; Result:=FTextLyout.Height; end; procedure TMainForm.GroupLVUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var lvi: TListViewItem; t: Single; begin lvi:= TListView(Sender).Items[AItem.Index]; t:= GetTextHeight(lvi.Text, lvi.Objects.TextObject.Width, lvi.Objects.TextObject.WordWrap, lvi.Objects.TextObject.Font, TTExtAlign(lvi.Objects.TextObject.Align), TTExtAlign(lvi.Objects.TextObject.VertAlign) ); lvi.Height:= Round(t) + 30; end; у меня работает. 
  11. Like
    haword получил реакцию от HyperZen в Возвращаясь к вопросу о подсчете высоты текста TListView   
    function GetTextHeight(text: string; width: single; wordwrap: boolean; font: tfont; HAlign, VAlign: TTextAlign; Trimming: TTextTrimming): single; begin if FTextLyout = nil then FTextLyout := TTextLayoutManager.DefaultTextLayout.Create; FTextLyout.BeginUpdate; try // Инициализируем текстовый слой для корректного вычисления // размеров отображаемого текста FTextLyout.Text := text; FTextLyout.MaxSize := TPointF.Create(Width, 10000); FTextLyout.WordWrap := WordWrap; FTextLyout.Font := Font; FTextLyout.Trimming:= Trimming; FTextLyout.HorizontalAlign := HAlign; FTextLyout.VerticalAlign := VAlign; finally FTextLyout.EndUpdate; end; Result:=FTextLyout.Height; end; procedure TMainForm.GroupLVUpdateObjects(const Sender: TObject; const AItem: TListViewItem); var lvi: TListViewItem; t: Single; begin lvi:= TListView(Sender).Items[AItem.Index]; t:= GetTextHeight(lvi.Text, lvi.Objects.TextObject.Width, lvi.Objects.TextObject.WordWrap, lvi.Objects.TextObject.Font, TTExtAlign(lvi.Objects.TextObject.Align), TTExtAlign(lvi.Objects.TextObject.VertAlign) ); lvi.Height:= Round(t) + 30; end; у меня работает. 
  12. Like
    haword получил реакцию от #WAMACO в Berlin жутко тормозит   
    а че вы хотели то?  выпустили удачную версию, следующая удачной не может быть. так что или сервиспак или новая версия улучшит ситуацию  так что до осени осталось подождать
  13. Like
    haword получил реакцию от Евгений Корепов в Berlin жутко тормозит   
    а че вы хотели то?  выпустили удачную версию, следующая удачной не может быть. так что или сервиспак или новая версия улучшит ситуацию  так что до осени осталось подождать
  14. Like
    haword получил реакцию от Rusland в Чат со смайлами   
    свой компонент пишешь. выводишь последовательно на канве текст и картинки. рассчитываешь высоту текста и картинки и следующую строку рисуешь уже с учетом высоты картинки. и так далее.
     
    http://www.torry.net/vcl/edits/memos/chatedit.zip то что я говорил но реализация на с++
  15. Like
    haword получил реакцию от zairkz в RAD 11 на подходе?   
    размечтались  там же в статье написано с низу что только одни типы процессоров закапывают а 8х00 серию продолжают развивать. так что поделки на огнеобезьяне не всегда будут запускаться на интелах
  16. Like
    haword получил реакцию от CodeToad в поясните еще про шифрование БД SQLlite   
    ничего не надо. добавить юнит в проект и все. 
  17. Like
    haword получил реакцию от zairkz в RAD 11 на подходе?   
    только там ни одна ссылка не пашет
  18. Like
    haword получил реакцию от Rusland в ListViewItem Transpatent, как?   
    я сделал с помощью хелпера, ну вернее с инета спер и под 10 версию приспособил. 
     
    добавляем хелпер
     
      TListViewHelper = class helper for TListViewBase     procedure SetItemStyleFillAltColour(Colour : TAlphaColor);     procedure SetBackgroundItemStyleColor(Colour : TAlphaColor);     procedure SetBackgroundStyleColor(Colour : TAlphaColor);     procedure SetSelectionStyleColor(Colour : TAlphaColor);   end;   процедуры   procedure TListViewHelper.SetBackgroundItemStyleColor(Colour: TAlphaColor); begin   TListViewBase(self).FItemStyleFillColor := Colour; end;   procedure TListViewHelper.SetBackgroundStyleColor(Colour: TAlphaColor); begin   TListViewBase(self).FBackgroundStyleColor := Colour; end;   procedure TListViewHelper.SetItemStyleFillAltColour(Colour: TAlphaColor); begin   TListViewBase(self).FItemStyleFillAltColor := Colour; end;   procedure TListViewHelper.SetSelectionStyleColor(Colour: TAlphaColor); begin   TListViewBase(self).FSelectionStyleColor := Colour; end;   вызов   если в OnCreate формы       ВашЛистВью.ApplyStyleLookup; // загружаем стиль     ВашЛистВью.SetBackgroundItemStyleColor($20ffffff); // устанавливаем цвет, первые два байта альфаканал остальные цвет. можно так TAlphaColors.red  
  19. Like
    haword получил реакцию от Владимир в Потоки и процедуры   
    procedure potoc1
     begin
                  // выполняем действия связанные с визуальными компонентами
     end
     
     procedure potoc
     begin
            // выполняем загрузку файла из интернета;
           TThread.Synchronize(nil, potoc1);
    end;
     
    TTask.Run(potoc);
     
    так лучше? 
  20. Like
    haword получил реакцию от Kitty в [SSL] сертификаты   
    в юните FMX.WebBrowser.Android.pas
     
    procedure TAndroidWebBrowserService.TWebBrowserListener.onReceivedSslError(   P1: JWebView; P2: JSslErrorHandler; P3: JSslError); begin   FWBService.FailLoadingWithError; end;   если заменить FWBService.FailLoadingWithError; на что то типа P2.proceed; то должно сработать. Только вот сие надо правильно вызвать JSslErrorHandler.proceed
  21. Like
    haword отреагировална Rusland в Проблема при активации memo или edit программа зависает и закрывается.   
    Ответ со Stackoverflow действительно помог!
     
    Из папки source/fmx берем FMX.Platform.Android.pas кладем в папку с проектом.
    Меняем в нем следующие процедуры:
    procedure TPlatformAndroid.RunOnUIThread(Proc: TThreadProcedure); begin //MainActivity.runOnUiThread(TSimpleProcedureRunner.Create(Proc)); CallInUIThread( procedure() begin Proc; end); end; procedure TPlatformAndroid.SynchronizeOnUIThread(Proc: TThreadProcedure); //var // Runner: TSimpleProcedureRunner; begin // CallInUIThread( // procedure() // begin // Runner := TSimpleProcedureRunner.Create(Proc); // MainActivity.runOnUiThread(Runner); // Runner.Event.WaitFor; // end); CallInUIThreadAndWaitFinishing( procedure() begin Proc; end); end; procedure TPlatformAndroid.SetClipboard(Value: TValue); //var //  Setter: TClipboardSetter; //begin //  Setter := TClipboardSetter.Create(Value.ToString); //  TAndroidHelper.Activity.runOnUiThread(Setter); //  Setter.Done.WaitFor(INFINITE); var Setter: TClipboardSetter; begin Setter := TClipboardSetter.Create(Value.ToString); CallInUIThread( procedure() begin SharedActivity.runOnUiThread(Setter); end); Setter.Done.WaitFor(INFINITE); end; function TPlatformAndroid.GetClipboard: TValue; //var //  Getter: TClipboardGetter; //begin //  Getter := TClipboardGetter.Create; //  TAndroidHelper.Activity.runOnUiThread(Getter); //  Getter.Done.WaitFor(INFINITE); //  Result := Getter.Value; var Getter: TClipboardGetter; begin Getter := TClipboardGetter.Create; CallInUIThread( procedure() begin SharedActivity.runOnUiThread(Getter); end); Getter.Done.WaitFor(INFINITE); Result := Getter.Value; end; Запускаем и при нажатии на Edit или Memo клавиатура нормально появляется.
     
    PS. Надеюсь Embarcadero исправит эту проблему в новой версии.
     
     
     

    Да, помогло Видимо словить такой глюк могут аппараты Lenovo - что-то в их виртуальной клавиатуре не как у всех
     
    PS. Вопрос Бровину Ярославу:
    Будет ли исправлен Androidapi.Helpers.pas? Постоянно с ним какие-нибудь проблемы. В сервисах его даже подключать опасно, обязательно вылезают ошибки касающиеся TAndroidHelper.Activity
     
    С уважением, ... дата... подпись
  22. Like
    haword получил реакцию от Rusland в Проблема при активации memo или edit программа зависает и закрывается.   
    помогло? если да то надо будет у себя то же править что бы не словить такой глюк
  23. Like
    haword получил реакцию от zairkz в Как увеличить скорость отработки запроса SQL к базе SQLLite   
    табы лучше не использовать, вместо них использовать разные формы. табы жрут все время отрисовки ибо каждый элемент отрисовывается не зависимо от того активна влкдака или нет. 
  24. Like
    haword получил реакцию от masmat в Как увеличить скорость отработки запроса SQL к базе SQLLite   
    табы лучше не использовать, вместо них использовать разные формы. табы жрут все время отрисовки ибо каждый элемент отрисовывается не зависимо от того активна влкдака или нет. 
  25. Like
    haword получил реакцию от masmat в Как увеличить скорость отработки запроса SQL к базе SQLLite   
    ну и еще где то Ярослав говорил что при создании можно прогрузить с начало все стили а потом уже форма быстрее будет грузится. 
×
×
  • Создать...