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

dnekrasov

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

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

  • Посещение

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

    52

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

  1. Like
    dnekrasov получил реакцию от Павел Блажеев в Как сделать координатную сетку ?   
    Посмотрите компонент TPlotGrid. Может поможет чем
  2. Like
    dnekrasov отреагировална mazayhin в FMX асинхронное управление интерфейсом в процедуре до её завершения.   
    Еще, причем, если будете запускать не только на Windows, сразу выберете кросплатформенного поставщика (DOM Vendor) ADOM XML v4
    Тогда не надо будет вызывать CoInitialize, который и работает только для Windows
  3. Like
    dnekrasov отреагировална Евгений Корепов в Затирание bitmap canvas при map-unmap   
    Я разобрался в чем дело:
    Вместо TMapAccess.Write используйте TMapAccess.ReadWrite. 
    TMapAccess.Write по какой то причине затирает если не все, то некоторые последние изменения канваса. В доке http://docwiki.embarcadero.com/Libraries/Rio/en/FMX.Graphics.TBitmap.Map не нашел упоминания о таком поведении.
  4. Like
    dnekrasov получил реакцию от Ingalime в Исправили или нет? (Delphi 10.3.2)   
    @Сергей Рыжков , @CyberStorm 
    Почитайте про новое в Delphi 10.3 Rio - статей и видео на эту тему куча.
  5. Like
    dnekrasov получил реакцию от Tumaso в Исправили или нет? (Delphi 10.3.2)   
    @Сергей Рыжков , @CyberStorm 
    Почитайте про новое в Delphi 10.3 Rio - статей и видео на эту тему куча.
  6. Like
    dnekrasov отреагировална Евгений Корепов в Helper для TBitmap - асинхронная загрузка картинки из URL   
    Пока тестировал хелпер в боевом проекте он потихоньку оброс исрпавлениями/улучшениями:
    Загрузка из потока сделана через TBitmapSurface - это позволяет избежать множества глюков. LoadFromStream вынесен из Synchronize (основного потока) в поток HTTPClient - по результатам бенчмарка операция оказалась самая жручая. После исправления интерфейс перестал залипать совсем. Добавлен overload вариант с передачей в процедуру TListItemImage - для использования в TListView и корректной перерисовки подгруженных картинок через AListItemImage.Invalidate. unit BitmapAsyncLoader; interface uses FMX.Graphics, FMX.Surfaces, System.Net.HttpClient, System.Types, System.Classes, FMX.ListView.Types, FMX.ListView.Appearances; type TBitmapAsyncLoader = class helper for TBitmap procedure LoadFromURLAsync(const AUrl : String); overload; procedure LoadFromURLAsync(const AUrl : String; const AListItemImage : TListItemImage); overload; end; implementation var AHTTPClient : THTTPClient; procedure TBitmapAsyncLoader.LoadFromURLAsync(const AURL : String); begin try AHTTPClient.BeginGet( procedure (const ASyncResult: IAsyncResult) var AHTTPResponse : IHTTPResponse; ABitmapSurface : TBitmapSurface; begin if Not ASyncResult.IsCompleted then exit; try AHTTPResponse:=THTTPClient.EndAsyncHTTP(ASyncResult); except end; if Assigned(AHTTPResponse) and (AHTTPResponse.StatusCode = 200) then begin ABitmapSurface:=TBitmapSurface.Create; if TBitmapCodecManager.LoadFromStream(AHTTPResponse.ContentStream, ABitmapSurface, CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then TThread.Synchronize(Nil, procedure begin if Assigned(Self)then Assign(ABitmapSurface); ABitmapSurface.Free; end ) else ABitmapSurface.Free; end; end, AURL ); except end; end; procedure TBitmapAsyncLoader.LoadFromURLAsync(const AURL : String; const AListItemImage : TListItemImage); begin try AHTTPClient.BeginGet( procedure (const ASyncResult: IAsyncResult) var AHTTPResponse : IHTTPResponse; ABitmapSurface : TBitmapSurface; begin if Not ASyncResult.IsCompleted then exit; try AHTTPResponse:=THTTPClient.EndAsyncHTTP(ASyncResult); except end; if Assigned(AHTTPResponse) and (AHTTPResponse.StatusCode = 200) then begin ABitmapSurface:=TBitmapSurface.Create; if TBitmapCodecManager.LoadFromStream(AHTTPResponse.ContentStream, ABitmapSurface, CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) then TThread.Synchronize(Nil, procedure begin if Assigned(Self) and Assigned(AListItemImage) then begin AListItemImage.BeginUpdate; Assign(ABitmapSurface); AListItemImage.Invalidate; AListItemImage.EndUpdate; end; ABitmapSurface.Free; end ) else ABitmapSurface.Free; end; end, AURL ); except end; end; initialization AHTTPClient:=THTTPClient.Create; finalization if Assigned(AHTTPClient) then AHTTPClient.DisposeOf; end. Тестовый проект, на этот раз с ListView (по кнопке добавляется 100 итемов) прилагаю.
    BitmapAsyncLoaderListView.7z
  7. Like
    dnekrasov получил реакцию от Barbanel в Масштабирование экрана   
    Суда по Вашим скринам - не тянется картинка стиля - проверьте buttonstyle.background.NormalLink
  8. Like
    dnekrasov получил реакцию от Barbanel в Масштабирование экрана   
    Проверьте настройки проекта "Application->Enable High-DPI" После смены масштаба желательно перелогиниться в винде (особенно Win7)
  9. Like
    dnekrasov получил реакцию от sulion в Помогите начать работу с Oracle   
    Для того, чтобы это работало нужна FireDACOracleDriver25(6)0.bpl. Не факт что она идёт вместе с Trial (в Community её точно нет).
  10. Like
    dnekrasov получил реакцию от Ingalime в Помогите начать работу с Oracle   
    В Community Edition его и не будет (как и многих других). Это одно из ограничений этой редакции студии. Выход - или купить Professional... или всем известный способ
  11. Like
    dnekrasov получил реакцию от Ingalime в как найти и удалить компонент на TabItem   
    Вы используете LyContent.AddObject а этот метод добавляет только в LyContent.Children. Для того, чтобы добавить в LyContent.Components надо создавать фрейм с AOwner = LyContent или использовать LyContent.InsertComponent. 
    А вообще - не надо заморачиваться с Components. Управляйте отображением фреймов с помощью Parent, а за временем жизни пусть следит Ваш TFramesFactory
  12. Like
    dnekrasov получил реакцию от Tumaso в TImageList  в  TImage   
    ImageList1.Bitmap(Size, Index). Для уточнения - читайте Help. Не знаете английский - изучайте или словарём пользуйтесь (заодно и учитесь Help-ом пользоваться). Ещё раз повторюсь - здесь не кружок "юный Delphi-программист"
  13. Like
    dnekrasov получил реакцию от Ingalime в TImageList  в  TImage   
    Это уже не смешно - здесь не кружок "юный Delphi-программист" и программированию не обучают.
     
    А по сути вопроса - зачем Вам вообще ImageList если нужны png-файлы. Используйте ресурсы (Project->Resources and Images), а загрузить в TBitmap можно так:
    function LoadBitmapFromResourceName(const AResName: string; AResType: PChar = RT_RCDATA): TBitmap; var RS: TResourceStream; begin RS := TResourceStream.Create(hInstance, AResName, AResType); try Result := TBitmap.CreateFromStream(RS); finally FreeAndNil(RS); end; end;  
  14. Haha
    dnekrasov получил реакцию от #WAMACO в TImageList  в  TImage   
    Хм... Я смотрю Help совсем популярностью у Вас не пользуется...
    TImageList.Bitmap(...)
    TImageList.BitmapExists(...)
    TImageList.BitmapItemByName(...)
  15. Like
    dnekrasov получил реакцию от Ingalime в TImageList  в  TImage   
    Хм... Я смотрю Help совсем популярностью у Вас не пользуется...
    TImageList.Bitmap(...)
    TImageList.BitmapExists(...)
    TImageList.BitmapItemByName(...)
  16. Like
    dnekrasov получил реакцию от OnePeople в TImageList  в  TImage   
    Хм... Я смотрю Help совсем популярностью у Вас не пользуется...
    TImageList.Bitmap(...)
    TImageList.BitmapExists(...)
    TImageList.BitmapItemByName(...)
  17. Like
    dnekrasov получил реакцию от mazayhin в помогие код сделать рабочим в firemonkey   
    Не надо никак менять этот модуль. Скомпилился сразу и без ошибок (только варнинги).
    Насчет Ваших ошибок - похоже Вы просто uSMBIOS и System.TypInfo в uses забыли подключить.
  18. Like
    dnekrasov получил реакцию от Barbanel в Создание ссылки из TLabel.   
    Просто надо привыкнуть к новому подходу к некоторым вещам. Зато возможностей побольше, чем в VCL. Да и удобнее, когда привыкнешь. ИМХО
  19. Like
    dnekrasov получил реакцию от Brovin Yaroslav в рисование на Image1   
    Если в качестве курсора (картинки) карандаша, то ещё следует изучить как преобразовывать координаты:
    procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); begin if D=1 then Image2.Position.Point := Image1.LocalToAbsolute(PointF(X, Y)); end; Да и HitTest у Image2 следует поставить False, а клик отслеживать на Image1. Да и когда D=1 и курсор находится внутри Image1 курсор мышки лучше сделать невидимым.
    Да и вообще - рисовать удобнее на PaintBox
  20. Like
    dnekrasov получил реакцию от Brovin Yaroslav в рисование на Image1   
    А этот код и не должен ничего рисовать.
    Почитайте про TPathData и его методы (хотя бы MoveTo и LineTo) У одного Canvas должно быть одинаковое количество BeginScene и EndScene - иначе получите Exception. В Image1MouseMove вообще не понятно что Вы хотели сделать.
  21. Like
    dnekrasov получил реакцию от лёля в Создание ссылки из TLabel.   
    Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.Style];
      Label1.TextSettings.Font.Style := Label1.TextSettings.Font.Style + [TFontStyle.fsUnderline]
  22. Like
    dnekrasov получил реакцию от лёля в Создание ссылки из TLabel.   
    Просто надо привыкнуть к новому подходу к некоторым вещам. Зато возможностей побольше, чем в VCL. Да и удобнее, когда привыкнешь. ИМХО
  23. Like
    dnekrasov получил реакцию от Ingalime в Создание ссылки из TLabel.   
    HitTest := True;
    Label1.StyledSetting := Label1.StyledSetting - [TStyledSetting.Style]
  24. Like
    dnekrasov получил реакцию от Ingalime в рисование на Image1   
    А этот код и не должен ничего рисовать.
    Почитайте про TPathData и его методы (хотя бы MoveTo и LineTo) У одного Canvas должно быть одинаковое количество BeginScene и EndScene - иначе получите Exception. В Image1MouseMove вообще не понятно что Вы хотели сделать.
  25. Like
    dnekrasov отреагировална OnePeople в Монополия   
    Делал чисто для себя! И только для своего удовольствия!
    Возможны ошибки!*(вернее точно есть))) 
    Графика не окончательная!
    Скриншоты сервер:
    Скриншоты клиент:
    Сервер на комп, клиент Android (должны находиться в одной сети)
    P/S И так как все устройства у меня Full HD, проверял только на них(
    Monopoly.rar
×
×
  • Создать...