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

haword

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

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

  • Посещение

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

    19

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

  1. 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;

    у меня работает. 

  2. в принципе при сравнении исходников fmx не большие отличия в берлине и сиетле. можно сравнить папки чем то типа арахисом или винмердже и проверить где что поменяли и соответственно вернуть на родину или хотя бы развилку сделать для ХР. 

  3. trojanhost как и сказали выше, fmx сам все рисует, без участия системы, в vcl все рисует винда, и стили и сами контролы. плюс fmx оптимизирован хреново. вернее оптимизирован под кросплатформенность а из-за этого куча лишних вызовов. я уперся в это когда грид делал на подобие vcl-кого. отрисовка одного полного экрана грида с надписями занимало полсекунды. при этом vcl летал. 

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

      GlobalUseDX:=false;
      GlobalUseDXSoftware:=false;
      GlobalUseDirect2D:=false;
      GlobalUseDXInDX9Mode:=false;
      GlobalUseGPUCanvas:=False;
      GlobalUseGDIPlusClearType:= True;
     

  4. кстати, да была такая проблема. с фотика шла картинка которая не могла загружаться в битмап из за своих размеров. НО! при этом другие программы ее спокойно показывали и работали с этой картинкой. интеерсно почему на яве программы могли с ней работать а огнеобезьяна упирается в ограничения. 

  5. проблема в том что на интелах программа написанная на делфи работает через эмулятор. от сюда и различные баги. пока нативной сборки под x86 нет и в этом году не планировалось делать вроде как.

    после снятия галочек Deployment'e пользователи не arm устройств  по идее не должны будут увидеть в маркете это приложение, а если и увидят то будет надпись насчет несовместимости. вернее так оно задумывалось а как реально будет я не проверял. 

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