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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

Ответы сообщества

  1. Пост Brovin Yaroslav - сообщение в Как закрасить имеющийся рисунок? был отмечен как ответ   
    Можно сделать маску, содержащую ту часть футболки, которую нужно закрашивать. А далее по маске попиксельно менять цвет.
  2. Пост Brovin Yaroslav - сообщение в [TStyleBook] Что нужно сделать, чтобы использовать свой компонент в StyleBook? был отмечен как ответ   
    Если вы хотите, чтобы ваш класс компонента мог быть использован в TStyleBook, нужно пометить ваш дизайн тайм пакет, как всегда загружаемым:
    ForceDemandLoadState(dlDisable); В этом случае при старте среды, ваш пакет с компонентами не зависимо от того, использует ли среда или нет, будет загружен. А значит ваши компоненты будут зарегистриованы в среде.
  3. Пост Brovin Yaroslav - сообщение в Проблема при запуске был отмечен как ответ   
    У вас остались собранные файлы от предыдущей версии моей библиотеки. Потому что в последней версии в файлах FGX.Helpers.Androd нету функции GetNativeTheme.
    Поищите и удалите все dcu файлы с префиксом FGX.
  4. Пост Brovin Yaroslav - сообщение в [TMapView] Удаление маркеров TMapView был отмечен как ответ   
    Добрый день,
     
    При добавлении маркера, методы возвращаюют вам инстанс маркера.
    /// <summary>Add marker specified by Descriptor and return new TMapMarker object</summary> function AddMarker(const Descriptor: TMapMarkerDescriptor): TMapMarker; /// <summary>Add circle specified by Descriptor and return new TMapCircle object</summary> function AddCircle(const Descriptor: TMapCircleDescriptor): TMapCircle; /// <summary>Add polygon specified by Descriptor and return new TMapPolygon object</summary> function AddPolygon(const Descriptor: TMapPolygonDescriptor): TMapPolygon; /// <summary>Add polyline specified by Descriptor and return new TMapPolyline object</summary> function AddPolyline(const Descriptor: TMapPolylineDescriptor): TMapPolyline; Сохраните его. И когда нужно будет его удалить, выполните:
    Marker.Remove; Marker.Free; Или
    Marker.DisposeOf;
  5. Пост Brovin Yaroslav - сообщение в Шторка TMultiView залезает на Toolbar был отмечен как ответ   
    По идеи если вы хотите, чтобы у вас тулбар распологался сверху относительно всего остального, то TMultiView и TargetControl должны лежат в отдельном контейнере. Например так:

    Потому что TMultiView в режиме Drawer распологается в ручную относительно своего родителя. На моем примере Drawer будет вытянут по высоте Layout1. Если же TMultiView лежит на форме, то он будет растягиваться по высоте формы.
  6. Пост Brovin Yaroslav - сообщение в [TMultiView] Как избежать задержки при первом появлении TMultiView? был отмечен как ответ   
    Так, я посмотрел. Сохраняем себе такую процедуру:
    procedure PreloadContent(const Control: TControl); var I: Integer; begin if Control is TStyledControl then TStyledControl(Control).ApplyStyleLookup; for I := 0 to Control.ControlsCount - 1 do PreloadContent(Control.Controls[I]); end; Она форсирует загрузку стилей. Задержка при появлении TMutliView заключается в том, что стиль загружается не сразу у любого контрола, а только по мере появления контрола. Обычно это происходит при первой отрисовки. Это правило касается всех контролов.
     
    Поэтому, в этом случае, вам нужно форсировать загрузку стилей. Это можно сделать при помощи моей процедуру PreloadContent.
    Добавьте в TForm.OnCreate и это решит задержку при первом появлении:
    PreloadContent(MultiView1);
  7. Пост Brovin Yaroslav - сообщение в Добавить знаачение tag стилевому елементу был отмечен как ответ   
    Добрый день,
    procedure tform1.deletitemcart(Sender: TObject); begin ShowMessage( 'id= '+ tag.ToString ); end; Здесь берете Tag формы, а не стилевого компонента. Вытаскивайте tag у Sender
  8. Пост Brovin Yaroslav - сообщение в TEdit.SelSelText (вставка текста) был отмечен как ответ   
    У TEdit, есть специальный метод по замене выделенного текста новой строкой:
    procedure Replace(const AStartPos: Integer; const ALength: Integer; const AStr: string); Поэтому в вашем случае замена будет выглядить так:
    Edit.Replace(Edit.SelStart, Edit.SelLength, NewString);
  9. Пост Brovin Yaroslav - сообщение в [iOS] Где хранить свои файлы настроек на iOS? был отмечен как ответ   
    GetHomePath возвращает путь к содержимому бандла приложения. И эта папка не доступна на запись, так что ошибка обснованна.
     
    Почитайте руководство "File System Programming Guide" и вы поймете, куда на iOS можно и нужно сохранять файлы (обратите на раздел "Where You Should Put Your App’s Files")
     
    P.S. Если мы говорим о папке с документами, то лучше использовать TPath.GetDocumentsPath вместо
    GetHomePath + PathDelim + 'Documents' + PathDelim
  10. Пост Brovin Yaroslav - сообщение в Как поймать перемещение формы? был отмечен как ответ   
    Могу только предложить перекрыть метод 
    procedure TCommonCustomForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer); virtual; Этот метод всегда вызывается, когда меняется положение или размер формы. 
    P.S. Надо не забыть вызвать базовый метод.
  11. Пост Brovin Yaroslav - сообщение в [iOS] Ошибки ITMS-90096 и ITMS-90208 при попытке публикации приложения в AppStore был отмечен как ответ   
    А у вас при запуске приложения картинки то видны?
     
    Мне кажется, что у вас неправильно названы резльтирующие картинки в пакете. То есть у вас они имеют вид набора цифр. Попробуйте их переименовать. как это принято по умолчанию:
    Default-Portrait@2x.png Default-Landscape@2x~ipad.png Default~ipad.png и тд Посмотрите на Deployment Manager
  12. Пост Brovin Yaroslav - сообщение в лицензионное соглашение для компонентов? был отмечен как ответ   
    А так код распространяется под лицензией MPL 2.0 о чем указано в заголовке файлов. 
  13. Пост Brovin Yaroslav - сообщение в [iOS] Как убрать кнопку Done у виртуальной клавиатуры? был отмечен как ответ   
    Добрый вечер,
    uses FMX.VirtualKEyboard, FMX.Platform; procedure TForm3.Button1Click(Sender: TObject); var Service: IFMXVirtualKeyboardToolbarService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardToolbarService, Service) then Service.SetToolbarEnabled(False); end;
  14. Пост Brovin Yaroslav - сообщение в [Windows] Как поменять иконку формы со стилизованной рамкой? был отмечен как ответ   
    При стилизованной рамке окна, иконка кэшируется. Первый раз она запрашивается в момент первой отрисовки формы. Поэтому в вашем случае ее нужно задать сразу после создания хендла а именно в CreateHandle.
    TForm15 = class(TForm) StyleBook1: TStyleBook; protected procedure CreateHandle; override; end; implementation uses VCL.Graphics, Winapi.Windows, Winapi.Messages, FMX.Platform.Win; { TForm15 } procedure TForm15.CreateHandle; var NewAppIcon: TIcon; begin inherited; NewAppIcon := TIcon.Create; NewAppIcon.LoadFromFile('c:\icon.ico'); SendMessage(ApplicationHWND, WM_SETICON, 1, NewAppIcon.Handle); SendMessage(WindowHandleToPlatform(Handle).Wnd, WM_SETICON, 1, NewAppIcon.Handle); end;
  15. Пост Brovin Yaroslav - сообщение в [TWebBrowser] Как остановить загрузку браузера? был отмечен как ответ   
    Так же:
    WebBrowser1.Stop
  16. Пост Brovin Yaroslav - сообщение в [TWebBrowser] Когда появится поддержка TWebBrowser для Windows и OSX? был отмечен как ответ   
    TWebBrowser для OSX и Windows был добавлен в RAD Studio XE8.
  17. Пост Brovin Yaroslav - сообщение в [Windows] Как поменять иконку формы без стилизованной рамки? был отмечен как ответ   
    Добрый день,
     
    У вас все правильно написано. В вашем коде вы меняете иконку самого приложения в трее. А вот чтобы поменять иконку у формы, нужно отправлять сообщение WM_SETICON окну а не приложению:
    uses VCL.Graphics, Winapi.Windows, Winapi.Messages, FMX.Platform.Win; procedure TForm3.Button1Click(Sender: TObject); var NewAppIcon: TIcon; begin NewAppIcon := TIcon.Create; NewAppIcon.LoadFromFile('c:\icon.ico'); SendMessage(ApplicationHWND, WM_SETICON, 1, NewAppIcon.Handle); SendMessage(WindowHandleToPlatform(Handle).Wnd, WM_SETICON, 1, NewAppIcon.Handle); end;
  18. Пост Brovin Yaroslav - сообщение в [TScrollBox] Как определить конец зоны ScrollBox? был отмечен как ответ   
    Добрый вечер,
     
    Используйте событие OnViewportPositionChanged. В параметрах передается позиция контента. Сравнивайте ее с размерами контента.
    if NewViewportPosition.y = ScrollBox1.ContentBounds.Height - ScrollBox1.ClientHeight then ShowMessage('Bottom');
  19. Пост Brovin Yaroslav - сообщение в Есть ли механизмы определения видимости контрола? был отмечен как ответ   
    Полной поддержки нету.
    По первому пункту вам пригодится метод TControl.ParentedVisible. Он проверяет по дереву вверх от текущего контрола, не скрыт какой родитель (проверка только на Visible)
     
    Остальные придется реализовывать самостоятельно. Так как это не тривиальная задача и доволно трудоемкая по выполнению. Здесь много условий, которые могут повлиять на конечную видимость контрола:
    Прозрачность Клиппинг Видимость всех конролов по цепочке вверх (родители) Возможность перекрытия контрола контролов другой ветки контролов. Самая дорогостоящая операция номер 4. Ну и как понимаете, если на каждый чих проверять и пробегаться по всему контролам формы, то это будет очень медленно, а кэширование результатов приведет к сложной системе уведомлений между всеми контролами.
  20. Пост Brovin Yaroslav - сообщение в Не работает метод Assign класса TFloatAnimation был отмечен как ответ   
    Добрый день,
     
    У всех аниматоров метод Assign не реализован, как по-моему у всех FireMonkey контролов. Поэтому вы получаете эту ошибку.
     
    Решение
    Копируйте вручную. Либо напишите хелпер. P.S. Добавил реквест на реализацию метода Assign
  21. Пост Brovin Yaroslav - сообщение в Loockup в FMX (LiveBindings) был отмечен как ответ   
    Посмотрите ответ на тему: Как реализовать функционал DBLookupCombobox?
  22. Пост Brovin Yaroslav - сообщение в Обновление дизайна сайта был отмечен как ответ   
    Спасибо за время, потраченное на публикацию найденных проблем. 
    Устранил:
     
    1. Отображение аватара пользователя в шапке сайта. Теперь отображается аватар текущего пользователя. + выравнены иконки слева относительно аватара

     
    2. Отображение сообщений в Профиль -> Лайки:

     
    3. Отображение тем в Профиль -> Темы:

     
    4. Отображение сообщений в Профиль -> Темы:

     
    5. Исправлено отображение сообщений в личном ящике:
     
    6. Исправлено отображение последних сообщений при ответе в теме с использование расширенной формы:

  23. Пост Brovin Yaroslav - сообщение в Можно ли изменить значения AniFrameRate только для одной анимации? был отмечен как ответ   
    Добрый день,
    TAnimation.AniFrameRate  - это классовая переменная. Она существует в единственном экземпляре для всех аниматоров.  Изменить ее локально для одного аниматора/анимации не возможно.
  24. Пост Brovin Yaroslav - сообщение в [Windows] Как загрузить HICON в TBitmap? был отмечен как ответ   
    Добрый день,
     
    Так же, как и в случае конвертации HBitmap -> TBitmap
    var tmpIcon: Vcl.Graphics.TIcon; tmpStream: TMemoryStream; begin tmpIcon := TIcon.Create; try tmpIcon.Handle := GetIcon; tmpStream := TMemoryStream.Create; try tmpIcon.SaveToStream(tmpStream); Image1.Bitmap.LoadFromStream(tmpStream); finally tmpStream.Free; end; finally tmpIcon.Free; end; end; GetIcon - функция, которая возвращает хендл иконки. в вашем случае infofile.hIcon
  25. Пост Brovin Yaroslav - сообщение в При просмотре в мобильном браузере некоторые элементы форума не видны был отмечен как ответ   
    Проблема устранена. Теперь на всех устройствах открывается полноценная версия сайта.
×
×
  • Создать...