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

dnekrasov

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

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

  • Посещение

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

    52

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

  1. Like
    dnekrasov получил реакцию от sulion в Помогите начать работу с Oracle   
    Для того, чтобы это работало нужна FireDACOracleDriver25(6)0.bpl. Не факт что она идёт вместе с Trial (в Community её точно нет).
  2. Like
    dnekrasov отреагировална Tumaso в Не получается скачать файл по https   
    Используй TNetHTTPClient вместо инди, проблема с ssl уйдет.
    При использовании инди и указании https в URL например в виндах требуется две дополнительные dll-ки (libeay32.dll / ssleay32.dll), для андроида libcrypto.so / libssl.so и т.д. Поэтому проще перейти на TNetHTTPClient
  3. Thanks
    dnekrasov получил реакцию от Android в Кто-нибудь щупал TMS Web Core?   
    Пробовал я и TMS Web Core и UniGUI, но как по мне - лучше чем Thinfinity VirtualUI нет.  И да, реально на всех получаются неплохие веб-приложения на Delphi без знания всех этих новомодных фреймворков.
  4. Like
    dnekrasov получил реакцию от #WAMACO в HTML парсер для Firemonkey   
    как-то так
    uses System.RegularExpressions; ... const AHREF = '<a href="([^"]*)"[^>]*>([^<]*)</a>'; var Match: TMatch; s: String; begin Match := TRegEx.Match(ваша HTML строка, AHREF); while Match.Success do begin // здесь что-то делаем //<a href"...>...</a> в Match.Value //Match.Groups[1] - адрес ссылки //Match.Groups[2] - отображаемый текст ссылки Match := Match.NextMatch; end; end  
  5. Like
    dnekrasov получил реакцию от Alisson R Oliveira в HTML парсер для Firemonkey   
    как-то так
    uses System.RegularExpressions; ... const AHREF = '<a href="([^"]*)"[^>]*>([^<]*)</a>'; var Match: TMatch; s: String; begin Match := TRegEx.Match(ваша HTML строка, AHREF); while Match.Success do begin // здесь что-то делаем //<a href"...>...</a> в Match.Value //Match.Groups[1] - адрес ссылки //Match.Groups[2] - отображаемый текст ссылки Match := Match.NextMatch; end; end  
  6. Like
    dnekrasov получил реакцию от Barbanel в HTML парсер для Firemonkey   
    как-то так
    uses System.RegularExpressions; ... const AHREF = '<a href="([^"]*)"[^>]*>([^<]*)</a>'; var Match: TMatch; s: String; begin Match := TRegEx.Match(ваша HTML строка, AHREF); while Match.Success do begin // здесь что-то делаем //<a href"...>...</a> в Match.Value //Match.Groups[1] - адрес ссылки //Match.Groups[2] - отображаемый текст ссылки Match := Match.NextMatch; end; end  
  7. Like
    dnekrasov получил реакцию от Ingalime в HTML парсер для Firemonkey   
    как-то так
    uses System.RegularExpressions; ... const AHREF = '<a href="([^"]*)"[^>]*>([^<]*)</a>'; var Match: TMatch; s: String; begin Match := TRegEx.Match(ваша HTML строка, AHREF); while Match.Success do begin // здесь что-то делаем //<a href"...>...</a> в Match.Value //Match.Groups[1] - адрес ссылки //Match.Groups[2] - отображаемый текст ссылки Match := Match.NextMatch; end; end  
  8. Like
    dnekrasov отреагировална Slym в Расположение нажатого элемента управления по отношению к экрану   
    Доступ ко многим protected методам можно получить через интерфейсы:
    ClientToScreen доступен через IControl, т.е. любой контрол (Ctrl as IControl).ClientToScreen
     
    про поиск TCommonCustomForm - у всех контролов есть Root - TCommonCustomForm(Ctrl.Root.GetObject) (незабываем проверять nil :) )
    еще есть Scene...
     
  9. Like
    dnekrasov отреагировална slav_z в Symbol 'Release' is deprecated   
    Release уже давно объявлен как deprecated.
    Release позволяет выполнить отложенное удаления объекта (удалить, но не прям сейчас). Если это вам действительно нужно (иногда позволяет избежать некоторых ошибок), то просто повторите его код. Но пока его окончательно не убрали, лучше пользоваться существующим методом. Ругается и ругается - бог с ним. Если надо просто удалить объект, то Free, если с обнулением ссылки то FreeAndNil или Free + присвоить nil в коде (как у вас).

  10. Like
    dnekrasov отреагировална slav_z в Разработка кросплатформенных приложений в одном проекте   
    ну как так то? условная компиляция! посмотрите в исходных кодах дельфи... там куча примеров...  КУЧА!!!

     
  11. Like
    dnekrasov отреагировална slav_z в Rio 10.3. Выделение текста в TText   
    минимальный код:
    unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.UIConsts, System.Classes, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Objects, FMX.TextLayout; type TForm1 = class(TForm) Text1: TText; procedure Text1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure Text1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); procedure Text1Painting(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); procedure FormCreate(Sender: TObject); private Range: TTextRange; function TextLayout: TTextLayout; public function GetSelectedText: string; end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormCreate(Sender: TObject); begin Text1.AutoCapture:=True; end; type TTextAccess = class(TText); function TForm1.TextLayout: TTextLayout; begin Result:=TTextAccess(Text1).Layout; end; function TForm1.GetSelectedText: string; begin Result:=Text1.Text.Substring(Range.Pos,Range.Length); end; procedure TForm1.Text1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Range.Pos:=TextLayout.PositionAtPoint(PointF(X,Y)); Range.Length:=0; Text1.Repaint; end; procedure TForm1.Text1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if Text1.Pressed then begin Range.Length:=TextLayout.PositionAtPoint(PointF(X,Y))-Range.Pos; Text1.Repaint; end; end; procedure TForm1.Text1Painting(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin Canvas.Fill.Color:=claSilver; Canvas.Fill.Kind:=TBrushKind.Solid; for var R in TextLayout.RegionForRange(Range,False) do Canvas.FillRect(R,0,0,AllCorners,1); end; end.  
    textselected.zip
  12. Like
    dnekrasov получил реакцию от Ingalime в компонент – Индикатор("лампочка")   
    Лучше TPaintBox или TShape
    вообще лучше не делать - размер холста задаётся автоматом в зависимости от размеров контрола
    переопределите функцию    GetDefaultSize: TSizeF
    Вы контрол рисуете полностью сами, значит inherited тут не надо
    А вообще - посмотрите исходники TCircle-TEllipse-TShape - всё станет намного понятнее.
  13. Like
    dnekrasov получил реакцию от Ingalime в Посоветуйте компонент-контейнер   
    TScrollBox?
  14. Like
    dnekrasov получил реакцию от Илья Ненашев в GlowEffect на кнопке   
    Зачем? Ведь стиль для того и создается, чтобы не заморачиваться над UI. 
    В редакторе стилей у GlowEffect поставить Enabled=False и в триггере выбрать IsPressed=True - и наслаждайтесь
  15. Like
    dnekrasov получил реакцию от Ingalime в TSpinBox   
    От себя добавлю - для сравнения есть чудесная функция System.Math.CompareValue
    Ещё гляньте System.Math.Vectors.TEpsilon - там есть полезные константы
  16. Like
    dnekrasov получил реакцию от Ingalime в Задать стиль текста в RunTime   
    Посмотрите TFont.StyleExt
  17. Like
    dnekrasov получил реакцию от Edward Tarasov в Error: E0776 error: exportArchive: No 'teamID' specified and no team ID found in the archive   
    c:\Program Files (x86)\Embarcadero\Studio\20.0\bin\CodeGear.Deployment.Targets - в нём найдите параметр NotarizeAppAdditionalParams В нём пропишите NotarizeAppAdditionalParams="-itc_provider [TeamID]" TeamID можно узнать здесь https://developer.apple.com/account/#/welcome
  18. Like
    dnekrasov отреагировална OnePeople в не работает в Андроид TTabTransition.Slide   
    SetActiveTabWithTransitionAsync
  19. Like
    dnekrasov отреагировална krapotkin в Material design shadow   
    Столкнулся с необходимостью генерировать тень в соответствии с material design guide 
    дополнительное условие - тень нужна не привязанная к контролу,  т.е. просто прицепить TShadowEffect нельзя
    интернет сказал мне, что одной тени недостаточно, стал ставить эксперименты с двумя.
    эмпирически подобрал алгоритм и параметры, которые дают довольно близкий к гайду результат
    1. https://material.io/design/environment/light-shadows.html#shadows

    2. мой скриншот

    положил сюда https://bitbucket.org/vkrapotkin/vkshadowgenerator
    Механизм работы понятен из приложенного примера.
    В принципе можно применять те же параметры и к обычным TShadowEffect
     
  20. Like
    dnekrasov отреагировална Dmitry_4501 в BlurBehind Control   
    BlurBehind Control. 
     
    Компонент позволяет использовать размытие, по типу, которое реализовано в WIndows 10, т.е компонент позволяет "размыть" то, что находится под ним.
     
    Пусть и увидел это непосредственно в самой студии на стартовой странице (Welcome Page), но все-таки подумал скинуть ссылку сюда.

    Исходники: https://github.com/grijjy/CodeRage2019/tree/master/BlurBehind
    Видео:

     
  21. Like
    dnekrasov отреагировална Eric Myval в Unable to create process   
    Результат следующий 
    Мой проект корректно работает под
    1) Windows 32/64
    2) Android 32/64
    3) iOS 32/64 (обязательно настроить сертификаты, которые можно создать и прикрепить в Xcode + настроить их в Rad Studio в разделе Project-Deployment-Provisioning, выбрать там ключи как вы их настроили на вашем маке + ОБЯЗАТЕЛЬНО в version info удалить текст в CFBundleIdentifier, должно быть пусто)
    4) MacOS 32/64 
    5) iOS 32/64 simulator - не работает!!!
  22. Like
    dnekrasov получил реакцию от Ingalime в Unable to create process   
    http://docwiki.embarcadero.com/RADStudio/Rio/en/MacOS_Notarization
    Делал как здесь описано - всё получилось.
  23. Like
    dnekrasov получил реакцию от Andrey Efimov в Unable to create process   
    http://docwiki.embarcadero.com/RADStudio/Rio/en/MacOS_Notarization
    Делал как здесь описано - всё получилось.
  24. Like
    dnekrasov отреагировална Losev Andrei в Деплой приложения на iOS (Delphi 10.3.3 в связке с macOS Catalina)   
    Проблема была в правах доступа на МАКе. Выяснилось случайно, когда попробовал делоить тот же проект под МАК и IDE выдала явную ошибку о невозможности создать файл во вложенной в /Users/macuser/PAServer директории. Вылечилось раздачей прав Read & Wtite для ролей staff/everyone для папки PAServer и вложенных директорий (Apply to enclosed items).
    На quality.embarcadero.com есть по крайней мере две заявки на эту тему, почему-то закрытые: RSP-25526 и RSP-26093
    В первой автор откатился на Mojave, во второй стоит «Resolution: Cannot Reproduce». Так что описанная проблема спорадический возникает.
    Всем успехов и поменьше граблей на пустом месте :)
  25. Like
    dnekrasov получил реакцию от Павел Блажеев в Как сделать координатную сетку ?   
    Посмотрите компонент TPlotGrid. Может поможет чем
×
×
  • Создать...