i.r.khayrullin
-
Постов
16 -
Зарегистрирован
-
Посещение
Активность репутации
-
i.r.khayrullin получил реакцию от Kitty в OLE Automation (Excel) и FMX
Итак, выход нашелся.
Я просто подключил VCL пакеты к FMX приложению, и создал необходимые мне компоненты динамически.
Странно, что мне не пришло это в голову сразу.
-
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;
-
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
-
i.r.khayrullin отреагировална AliZairov в YouTubeApi VCL & FMX
Привет. Я сделал новую версию YouTubeApi компоненты. Поддерживаемые VCL & FMX + Mobile.
Никаких официальных YouTube Api компоненты. Только данные с парсинг. Пример доступен в архиве.
Новый
===
v1.4 - 25/02/2018
+ Устранение проблем
YouTubeApiDelphi
-
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 для автоматической сортировки в алфавитном порядке по тексту в айтемах.
-
i.r.khayrullin отреагировална krapotkin в Прочитать item'ы из listView
но лучше - не хранить данные в элементах интерфейса
-
i.r.khayrullin отреагировална Brovin Yaroslav в Слишком частый OOM в редакторе StyleBook
Проблему воспроизвел, багу завел. Спасибо Xenon54
-
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);