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

Slym

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

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

  • Посещение

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

    39

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

  1. type
      TOpenURLResponse=class(TURLResponse);
    procedure TForm3.FormCreate(Sender: TObject);
    var
      HTTPClient:THTTPClient;
      Response: IHTTPResponse;
    begin
      HTTPClient:=THTTPClient.Create;
      try
        Response:=HTTPClient.Get('https://telegram.org/dl/desktop/win');
        if (Response is TURLResponse) then
          Caption:=TOpenURLResponse(Response as TURLResponse).FRequest.URL.ToString;
      finally
        HTTPClient.Free;
      end;
    end;

     

  2. 1 час назад, Tumaso сказал:

    А причем тут твой фаервол? Вопрос совсем о другом, о принципиальной возможности  воспроизведения аудиопотока с указаного адреса/порта в FMX

    А при том что надо разделять транспорт, кодек и hal...
    я без проблем сделаю TCP/HTTP запрос, до что делать с данными? а может там udp? нужен декодер, и управлялка потоком
    декодер может и найду, но что делать с PCM данными... нужен компонент вывода звука
    вывод может найду...

    а если хотите кинуть батон и в продакшон... ищите сами :)

     

  3. Доступ ко многим protected методам можно получить через интерфейсы:
    ClientToScreen доступен через IControl, т.е. любой контрол (Ctrl as IControl).ClientToScreen
     

    про поиск TCommonCustomForm - у всех контролов есть Root - TCommonCustomForm(Ctrl.Root.GetObject) (незабываем проверять nil :) )
    еще есть Scene...

     

  4. вызывается виртуальный метод TObject.Destroy; виртуальный здесь ключевое! виртуальные методы хранятся в спецтабличке 
    Вы же разместили свой деструктор вне этой таблицы сделав его статичным.
    статичным он стал потому что нет правильного модификатора, по факту Вы написали destructor Destroy;пусто;
    модификатор overload - это из оперы несколько методов с одним названием.
    Destroy вызывается у всех типов в цепочке наследования кроме вашего типа, для вашего типа виртуальный Destroy не определен

  5.   hints: TDictionary<TDecodeHintType, TObject>;
      l: TList<TBarcodeFormat>;
    begin
        if not Assigned(FScanManager) then
        begin
          hints := TDictionary<TDecodeHintType, TObject>.Create();
          l:=TList<TBarcodeFormat>.Create;
          l.Add(TBarcodeFormat.QR_CODE);
          hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l);
          FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints);

    не тестил

  6. значит патченый FMX.Controls.pas не компилирует... полож его в папку проекта и явно добавь в проект

    кстати сам стиль надо искать так
    Style:=FMX.Types.FindStyleResource(StyleName);
    а далее
    TSwitchObject(Style).Fill....

  7. Мда...
    На такой случай мы патчим FMX.Controls.pas

    procedure TStyledControl.StyleDataChanged(const Index: string; const Value: TValue);
    var
      Obj: TObject;
      InstanceName, PropertyName: string;
      PropertyValue: TValue;
    begin
      PropertyName := Index;
      InstanceName := GetToken(PropertyName, '.');
    
      if SameText(InstanceName,'self') then
        Obj:=FResourceLink
      else
        Obj := FindStyleResource(InstanceName);
      if Obj <> nil then

    и тогда ReleSwitch.StylesData['self.Fill.Color']

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