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

i.r.khayrullin

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

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

  • Посещение

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

  1. Like
    i.r.khayrullin получил реакцию от Kitty в OLE Automation (Excel) и FMX   
    Итак, выход нашелся.
    Я просто подключил VCL пакеты к FMX приложению, и создал необходимые мне компоненты динамически.
    Странно, что мне не пришло это в голову сразу.
  2. Like
    i.r.khayrullin отреагировална FIL в Как вывести (отрисовать) текст по произвольной дуге   
    Набросал пример отрисовки текста по дуге:
    procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); const S: String = 'Пример отрисовки текста по заданной траектории (дуга)'; var i: Integer; A, Ao, R, TextLen: Single; Rect: TRectF; M1, M2: TMatrix; // uses System.Math.Vectors begin // if Canvas.BeginScene then begin Randomize; R := 400; Ao := DegToRad(150); // uses System.Math A := (Pi - Ao) / 2; Canvas.Font.Size := 32; Canvas.Stroke.Kind := TBrushKind.Solid; Canvas.StrokeThickness := 3; Canvas.Fill.Color := TAlphaColors.Palegreen xor $80000000; Canvas.FillEllipse(TRectF.Create(0, 0, 2 * R, 2 * R), 1); TextLen := Canvas.TextWidth(S); if TextLen > R * Ao then Caption := 'АХТУНГ!'; // длина текста больше выделенной под него дуги (будет наложение букв) for i := 1 to S.Length do begin Rect.Left := 0; Rect.Top := R; Rect.Width := Canvas.TextWidth(S[i]); Rect.Height := Canvas.TextHeight(S[i]); A := A + Ao / (S.Length - 1); M1 := TMatrix.CreateTranslation(- Rect.CenterPoint.X, - Rect.CenterPoint.Y) * TMatrix.CreateRotation(A - A - Pi / 2) * TMatrix.CreateTranslation(Rect.CenterPoint.X, Rect.CenterPoint.Y); M2 := TMatrix.CreateTranslation(-R, -R) * TMatrix.CreateRotation(A) * TMatrix.CreateTranslation(R, R); Canvas.SetMatrix(M1 * M2); Canvas.Fill.Color := TAlphaColor(Random(MaxInt) or $FF000000); Canvas.FillText(Rect, S[i], False, 1, [{TFillTextFlag.RightToLeft}], TTextAlign.Leading, TTextAlign.Center); end; // Canvas.EndScene; end; end;
  3. Like
    i.r.khayrullin отреагировална dnekrasov в Распространение ПО для OSX   
    1. Получить на сайте сертификаты (Developer ID Application и 3rd Party Mac Developer Installer).
    2. Установить их на Маке.
    3. Прописать их в Delphi (Tools->Options->Provisioning)
    4. Сделать Deploy с конфигурацией AppStore
     
    После этого на Маке появится [ваше приложение].pkg, на который уже не ругается OSX
  4. Like
    i.r.khayrullin отреагировална AliZairov в YouTubeApi VCL & FMX   
    Привет. Я сделал новую версию YouTubeApi компоненты. Поддерживаемые VCL & FMX + Mobile.
    Никаких официальных YouTube Api компоненты. Только данные с парсинг. Пример доступен в архиве.
     
    Новый
    ===
    v1.4 - 25/02/2018
      + Устранение проблем
    YouTubeApiDelphi
  5. Like
    i.r.khayrullin отреагировална enatechno в Сортировка с использованием функции TTreeView.Sort   
    По приложенному примеру:
    в MySortTree нужно TTreeViewItem вместо TListBoxItem. при работе с TListBox и TTreeVew (заполнение и пр.) рекомендую использовать .BeginUpdate и .EndUpdate. По проблеме:
    Так вроде показывает без фантомов:
    procedure TForm1.SortTreeItemsClick(Sender: TObject); begin TreeView1.BeginUpdate; try TreeView1.Sort(MySortTree); TreeView1.ExpandAll; finally TreeView1.EndUpdate; end; end; P.S. А Вы используете какое-то особое правило сортировки? Если нет, рекомендую просто использовать TreeView1.Sorted := true для автоматической сортировки в алфавитном порядке по тексту в айтемах.
  6. Like
    i.r.khayrullin отреагировална krapotkin в Прочитать item'ы из listView   
    но лучше - не хранить данные в элементах интерфейса
  7. Like
    i.r.khayrullin отреагировална Brovin Yaroslav в Слишком частый OOM в редакторе StyleBook   
    Проблему воспроизвел, багу завел. Спасибо Xenon54
  8. Like
    i.r.khayrullin отреагировална Brovin Yaroslav в TEdit.SelSelText (вставка текста)   
    У TEdit, есть специальный метод по замене выделенного текста новой строкой:
    procedure Replace(const AStartPos: Integer; const ALength: Integer; const AStr: string); Поэтому в вашем случае замена будет выглядить так:
    Edit.Replace(Edit.SelStart, Edit.SelLength, NewString);
×
×
  • Создать...