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

Rusland

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

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

  • Посещение

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

    26

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

  1. Like
    Rusland отреагировална POV в 2D объекты на 3D объектах   
    А чего же нельзя.. размещаешь TLayer3D на объекте и на него компонентики накидываешь.
    Положение слоя делаешь такое, чтобы он не оказался внутри объекта.

  2. Like
    Rusland отреагировална SerhioUser в Z-Order для 3D-объектов с ZWrite=false   
    Так. Сорцекопание выявило, что за сортировку 3d-объектов отвечает класс TRenderingCompare и код находится в методе TCustomForm3D.RebuildRenderingList.
    procedure TCustomForm3D.RebuildRenderingList; var   I: Integer;   CompareFunc: TRenderingCompare; begin   if Assigned(Children) and (Children.Count > 0) and (FUpdating = 0) then   begin     if Not Assigned(FRenderingList) then       FRenderingList := TList<TControl3D>.Create;     FRenderingList.Clear;     for I := 0 to Children.Count - 1 do       if (Children[i] is TControl3D) then         FRenderingList.Add(Children[I] as TControl3D);     CompareFunc := TRenderingCompare.Create;     try       FRenderingList.Sort(CompareFunc);     finally       CompareFunc.Free;     end;   end; end; Никаких условий - просто сортировка без вариантов.
    А вот код, собственно, проверки для сортировки:
    function TRenderingCompare.Compare(const Left, Right: TControl3D): Integer; var V1, V2: TPoint3D; begin Result := Integer(Left.GetMaterialForSorting) - Integer(Right.GetMaterialForSorting); if (Result = 0) and Left.ZWrite and Right.ZWrite then begin if (Left.Opacity < 1) and (Right.Opacity >= 1) then Result := 1 else if (Left.Opacity >= 1) and (Right.Opacity < 1) then Result := -1 else if (Left.Context <> nil) and (Right.Context <> nil) then begin V1 := TPoint3D(Left.AbsolutePosition) - TPoint3D(Left.Context.CurrentCameraMatrix.M[3]); V2 := TPoint3D(Right.AbsolutePosition) - TPoint3D(Left.Context.CurrentCameraMatrix.M[3]); Result := Trunc(V2.Length - V1.Length); end; end; end; Как видно если ZWrite = false, 3D-объекты НЕ СОРТИРУЮТСЯ и находятся в порядке создания на форме. Список находится в приватной переменной FRenderingList, к которой мы не можем получить доступ даже сделав наследника от TForm3D.
    Ладно. FRenderingList заполняется из списка TFmxChildrenList.Children, до которого мы можем достучаться. Но его массив Items[] доступен только на чтение. Посему повлиять на его порядок мы тоже не можем.
    Пока что единственный выход, который я нашел - подключать к проекту копию исходника "FMX.Forms3D.pas" и корректировать его под свои нужды. (Под Mac OS X такой финт не работает - берется стандартный "FMX.Forms3D.pas")
    А ведь достаточно было бы сделать RebuildRenderingList виртуальной и хотя-бы в protected секции.
    Ну а лучше, думаю, было бы кустомизировать TRenderingCompare класс.
    Может кто знает лучший вариант?
  3. Like
    Rusland получил реакцию от Kitty в C++Builder 10.1 Upd1 и автоматическое изменение высоты TListBoxItem   
    У меня используется такой код на Паскале (немного отличается от вашего):
    procedure TFrmMain.CalculateItemHeight(Sender: TObject); var ListItem: TListBoxItem; d: integer; begin if Sender is TListBoxItem then begin ListItem := Sender as TListBoxItem; FTextLayout.BeginUpdate; try // Инициализируем текстовый слой для корректного вычисления // размеров отображаемого текста FTextLayout.Font.Assign(ListItem.Font); FTextLayout.VerticalAlign := ListItem.VertTextAlign; FTextLayout.HorizontalAlign := ListItem.TextAlign; FTextLayout.WordWrap := ListItem.WordWrap; FTextLayout.MaxSize := TPointF.Create(ListItem.Width, TTextLayout.MaxLayoutSize.Y); FTextLayout.RightToLeft := false; FTextLayout.Text := ListItem.Text; finally FTextLayout.EndUpdate; end; d:=Round(FTextLayout.Height); try FTextLayout.Text:='m'; finally FTextLayout.EndUpdate; end; d:=d+Round(FTextLayout.Height); ListItem.Height:=d; end; end; Попробуйте поставить процедуру CalculateItemHeight на OnApplyStyleLookup
  4. Like
    Rusland отреагировална krapotkin в Вопрос Администратору! Какие планы на Россию?   
    Если честно, IDE в Qt по мне так отстой
    И система сигналов вместо простых обработчиков, оно может и нужно кому-то, но я за много лет не почуял, что мне не хватает ее...
    В результате никакого RAD. В коде все обработчики устанавливать. Мне не нравится.
    Это как в Andoird JAVA but = FindObjectByID(R.button1) ; but.SetText('12341234') вместо привычного but.Text := '1234123';
  5. Like
    Rusland отреагировална krapotkin в Файлы созданные в Delphi программе на планшете не видны на компьютере   
    AirDroid - замечательная программка must have
  6. Like
    Rusland получил реакцию от AngryOwl в Проблема в работоспособности приложения под андроид   
    Да, на андроиде оно у меня тоже как картинка. Но откомпилированное не позволяет помочь разобраться в проблеме.
  7. Like
    Rusland получил реакцию от Kitty в Проблема в работоспособности приложения под андроид   
    Вряд ли тут дело в версии. Скорее всего поверх стоит какой-нибудь layout. Лучше попробовать повторить на тестовом примере и если повторится, то выложить сюда код примера для разбора
  8. Like
    Rusland получил реакцию от sviat9440 в Проблема в работоспособности приложения под андроид   
    Вряд ли тут дело в версии. Скорее всего поверх стоит какой-нибудь layout. Лучше попробовать повторить на тестовом примере и если повторится, то выложить сюда код примера для разбора
  9. Like
    Rusland отреагировална Brovin Yaroslav в [iOS] [iOS10] Приложение падает при использовании камеры в iOS 10 64 bit   
    Taking Pictures Using FireMonkey Interfaces
  10. Like
    Rusland отреагировална Pax Beach в Simple BLE Beacon telemetry — работа с TBeacon   
    Возникла задача обработки телеметрии BLE маячков для построения пространственной карты.
    За пару дней собрал приложение для «ловли» маячков.
    Производится сбор всей телеметрии с маячков, которую обрабатывает компонент TBeacon. Данные можно передать в виде текста в другое приложение или отправить вложением по почте.
     
    Сейчас приложение Можно скачать в Google Play.
    Для платформ Windows качать здесь (SimpleBeaconTelemetry.exe.zip).
     
    Просьба протестировать у себя на устройствах.
    Код элементарный, если кому-то нужен, могу выложить сюда (SimpleBeaconTelemetry.zip).
     
  11. Like
    Rusland получил реакцию от Kitty в Проиграть звук   
    Должно быть нужно удалить модули, которые добавились после добавления TMediaPlayer
    Попробуй удалить FMX.Media 
  12. Like
    Rusland отреагировална netlink в Вылетает приложение для Андроид   
    оказалось полная чушь.
    одна форма зацеплена с другой через биндинг. На грид тянется некая инфа из датасета.
    И оказалось что поля нет в этом датасете.
    И приложение тупо умирало.
    Жесть. Причём под виндой работало нормально.
    Среда сама ещё глючит. Постоянно какие-то AV.
     
     
  13. Like
  14. Like
    Rusland отреагировална enatechno в Как сохранить пропорции у ScaledLayout ?   
    Если хотите пропорционального изменять размеры  ScaledLayout:
    1). Используйте для него выравнивание по одному краю (например: Top, Left ... );
    2). При запуске программы фиксируйте TScaledLayout.OriginalWidth и TScaledLayout.OriginalHeight;
    3). Т.к. в зависимости от выравнивания у Вас будет изменятся один из параметров (при выравнивании Top - Width, при Left - Height), то будьте готовы в OnResize изменять пропорционально второй параметр. Например так:
     
    aRatio := ScaledLayout1.Width / ScaledLayout1.OriginalWidth; ScaledLayout1.Height := ScaledLayout1.OriginalHeight * aRatio;  
    tstScaledLayout.zip
  15. Like
    Rusland получил реакцию от Brovin Yaroslav в Проверить наличие интернета   
    Вроде бы у ZuBy в модуле DeviceInfo в коде есть проверка интернета. Посмотрите
  16. Like
    Rusland получил реакцию от zairkz в Google Play Реклама в виде видеороликов   
    http://fire-monkey.ru/topic/2987-статьяadmob-добавляем-рекламный-блок-в-приложение/#comment-19680
  17. Like
    Rusland получил реакцию от zairkz в Проверить наличие интернета   
    Вроде бы у ZuBy в модуле DeviceInfo в коде есть проверка интернета. Посмотрите
  18. Like
    Rusland получил реакцию от Равиль Зарипов (ZuBy) в Google Play Реклама в виде видеороликов   
    http://fire-monkey.ru/topic/2987-статьяadmob-добавляем-рекламный-блок-в-приложение/#comment-19680
  19. Like
    Rusland отреагировална HyperZen в Как реализовать такое-же окно  как на картинке ?   
    begin TDialogServiceAsync.InputQuery('Adv Options', ['Discover Targets at'], [''], procedure(const AResult: TModalResult; const AValues: array of string) begin case AResult of mrOk: begin // необходимые действия end; mrCancel: begin Exit; end; end; end );  
  20. Like
    Rusland получил реакцию от Kitty в Проверить наличие интернета   
    Вроде бы у ZuBy в модуле DeviceInfo в коде есть проверка интернета. Посмотрите
  21. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в [iOS] [iOS10] Приложение падает при использовании камеры в iOS 10 64 bit   
    нет, симулятор только
  22. Like
    Rusland отреагировална Сергей Пьянков в "ЯКупил" - мобильный список покупок   
    Опубликована статья, посвящённая работе с БД в этом приложении. Она может оказаться полезной тем, кто в данный момент выбирает СУБД для своего проекта.
  23. Like
    Rusland отреагировална kami в CreateCellControl в Grid (Berlin)   
    Добрый день всем!
    В Seattle у TColumn была возможность создать свой контрол для редактирования содержимого, перекрыв CreateCellControl.
    TStringColumn = class(FMX.Grid.TStringColumn) protected function CreateCellControl: TStyledControl; override; end; Пытаюсь перейти на Berlin Upd1 - и вижу, что этого метода нет.
    Пошерстил по форуму, по исходникам, погуглил - да, грид переписан чуть более чем полностью. В стандартных примерах (если быть более точным - то по гриду только один) используются штатные колонки с их "штатными" редакторами.
    Мне же нужно установить редактору мой StyleLookup, выставить тип клавиатуры и пару других параметров.
    Собственно, вопрос - как?
    P.S. Да, гриды - зло, знаю. Но это узкоспециализированное приложение, работающее только на планшетах.
  24. Like
    Rusland отреагировална Andrey Efimov в Программирование на Delphi под Android для Google Play   
    1) [Google Play] Публикация приложения в Google Play
    2) Да. Лицензия позволяет вести коммерческие разработки на RAD Studio (p.s."Пропихнуть" всё можно, но если прога стала популярна, то ждите гостей )
    3 и 4) Начать можно с этого [AdMob] Добавляем рекламный блок в приложение
     
  25. Like
    Rusland отреагировална Andrey Efimov в Программирование на Delphi под Android для Google Play   
    Ну гости это образно, думаю, с вами как минимум свяжутся представители компании Embarcadero/Idera. А там уже будете разбираться что им отвечать... Связаться они могут с вами просто, в Google Play есть ваш контактный e-mail, а если вы зарегились в AdMob и выводите денежные средства, то есть ещё и паспортные данные или номер кредитки.
     
    скорее да, чем нет. Ведь вы также будете получать доход с приложения разработанного на пиратской студии.
     
    Опять же, можно получать и без ИП, но если ваше приложение стало популярно и приносит уже ощутимый доход, а вы не платите налоги, то вероятно (~95%) вами заинтересуются в налоговой
     
    Думаю, можно для начала, если нет ресурсов на приобретение, разработать на пиратке, выложить и начать копить на лицензию. К моменту как ваше приложение станет популярно, скорее всего вы уже накопите нужную сумму и купите лицензию, пересобирёте проект в ней на всякий случай.
    Т.е. если приложение бесплатное и не приносит доход, разработанное "для себя", например, чтобы попрактиковаться в разработке, то никто за вами охотиться не будет, т.к. это просто бессмысленно и невыгодно.
     
    А вообще у нас на форуме уже не раз были подобные вопросы, выделили целый раздел под вопросы по Лицензированию Студии, почитайте Лицензирование.
     
    p.s. Вашу тему перенесу в этот же раздел.
    p.s.2. Разве при установке студии не выпадает лицензионное соглашение? (я уже и забыл, где его искать...)
    p.s.3. Поиск по форуму рулит
×
×
  • Создать...