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

Равиль Зарипов (ZuBy)

Модераторы
  • Постов

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

  • Посещение

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

    264

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

  1. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Странное поведение TThread   
    само скачивание картинки HTTPClient.Get должен быть в потоке, а при успешном скачивании нужно делать синхронизацию с главным потоком и "вставлять" картинку в нужное место
  2. Like
    Равиль Зарипов (ZuBy) получил реакцию от Pax Beach в Как определить отсутствие изображения как такового в TBitmap?   
    У TBitmap есть такой метод, посмотрите его
    function TBitmap.EqualsBitmap(const Bitmap: TBitmap): Boolean; var MyMap, BitmapMap: TBitmapData; I: Integer; begin if IsEmpty or Bitmap.IsEmpty then begin Result := IsEmpty and Bitmap.IsEmpty; Exit; end; Result := (Width = Bitmap.Width) and (Height = Bitmap.Height) and (PixelFormat = Bitmap.PixelFormat); if Result then begin if Map(TMapAccess.Read, MyMap) then try if Bitmap.Map(TMapAccess.Read, BitmapMap) then try for I := 0 to Height - 1 do if not CompareMem(MyMap.GetScanline(I), BitmapMap.GetScanline(I), MyMap.BytesPerLine) then begin Result := False; Exit; end; finally Bitmap.Unmap(BitmapMap); end; finally Unmap(MyMap); end; end; end;  
  3. Like
    Равиль Зарипов (ZuBy) отреагировална rareMax в Текст с картинками и скроллингом   
    А делфи мучать обязательно? Сохрани word как pdf'ку и открывай на телефоне
  4. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в файл не находится   
    Все используют деплой, вот попробуйте этот проект запустить у себя
  5. Like
    Равиль Зарипов (ZuBy) получил реакцию от AngryOwl в Прозрачные контролы   
    в FMX все делается с помощью стилей, нужно отредактировать стиль TGroupbox
  6. Like
    Равиль Зарипов (ZuBy) отреагировална Andrey Efimov в Version Info, label (Android)   
    Прямая ссылка в блог: Автоматическая смена названия приложения в зависимости от языка системы
    Ссылка на форуме(Раздел "Статьи"): [Статья][Android] Автоматическая смена названия приложения в зависимости от языка системы
    и ещё есть обычные темы по этому вопросу, но прикладывать не буду.
     
    p.s. Народ совсем обленился, сложно поиском воспользоваться...
  7. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в Странное поведение TThread   
    procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  8. Like
    Равиль Зарипов (ZuBy) получил реакцию от AngryOwl в Странное поведение TThread   
    само скачивание картинки HTTPClient.Get должен быть в потоке, а при успешном скачивании нужно делать синхронизацию с главным потоком и "вставлять" картинку в нужное место
  9. Like
    Равиль Зарипов (ZuBy) получил реакцию от M1shQa в Текст с картинками и скроллингом   
    я бы сделал через браузер и html документ, как раз подойдёт для вашей задачи
  10. Like
    Равиль Зарипов (ZuBy) получил реакцию от AngryOwl в Странное поведение TThread   
    procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  11. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Странное поведение TThread   
    а что удивительного? вы загружаете в синхронизации, т.е. в главном потоке
  12. Like
    Равиль Зарипов (ZuBy) получил реакцию от enatechno в ColorComboBox произвольный список цветов   
    const aColorNames: array [0 .. 3] of string = ('Black', 'Red', 'Yellow', 'Green'); aColors: array [0 .. 3] of TAlphaColor = (TAlphaColorrec.Black, TAlphaColorrec.red, TAlphaColorrec.Yellow, TAlphaColorrec.Green); procedure TForm1.DoItemApplyStyleLookup(Sender: TObject); var ColorObj: TShape; begin if TListBoxItem(Sender).FindStyleResource<TShape>('color', ColorObj) then ColorObj.Fill.Color := aColors[TListBoxItem(Sender).Tag]; end; procedure TForm1.Button1Click(Sender: TObject); var aItem: TListBoxItem; I: Integer; begin ComboBox1.DropDownKind := TDropDownKind.Custom; // uses FMX.Pickers; for I := Low(aColorNames) to High(aColorNames) do begin aItem := TListBoxItem.Create(ComboBox1); aItem.Parent := ComboBox1; aItem.Text := aColorNames[I]; aItem.Width := aItem.DefaultSize.Width; aItem.Height := aItem.DefaultSize.Height; aItem.StyleLookup := 'colorlistboxitemstyle'; aItem.StylesData['color.Fill.Color'] := aColors[I]; aItem.OnApplyStyleLookup := DoItemApplyStyleLookup; aItem.Tag := I; end; end; как-то так
  13. Like
    Равиль Зарипов (ZuBy) получил реакцию от enatechno в ColorComboBox произвольный список цветов   
    Внутри TComboBox используется TListBox
    Cамый простой способ
    кинуть на форму TListBox ПКМ Add TListBoxItem выбрать нужный стиль для Item (StyleLookup) ПКМ по Item Edit Custom Style меняем что нужно в стиле и сохраняем применяем новый стиль к Item
  14. Like
    Равиль Зарипов (ZuBy) получил реакцию от denprox в ColorComboBox произвольный список цветов   
    Внутри TComboBox используется TListBox
    Cамый простой способ
    кинуть на форму TListBox ПКМ Add TListBoxItem выбрать нужный стиль для Item (StyleLookup) ПКМ по Item Edit Custom Style меняем что нужно в стиле и сохраняем применяем новый стиль к Item
  15. Like
    Равиль Зарипов (ZuBy) получил реакцию от Major в Прозрачные контролы   
    в FMX все делается с помощью стилей, нужно отредактировать стиль TGroupbox
  16. Like
    Равиль Зарипов (ZuBy) получил реакцию от Kitty в Странное поведение TThread   
    procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  17. Like
    Равиль Зарипов (ZuBy) получил реакцию от Alex7wrt в Прозрачные контролы   
    в FMX все делается с помощью стилей, нужно отредактировать стиль TGroupbox
  18. Like
    Равиль Зарипов (ZuBy) отреагировална enatechno в Прозрачные контролы   
    Это решается редактированием стиля. 
    Например так:
    1). Размещаете TGroupbox на форме
    2). ПКМ на нем
    3). в контекстном меню выбираете Edit Custom Style (или Edit Default style)
    4). в открывшемся редакторе стиля указываете платформу (Android)
    5). выбираете объект background (по умолчанию он белый).
    6). задаете ему свойство Visible=false
  19. Like
    Равиль Зарипов (ZuBy) получил реакцию от Andrey Efimov в Странное поведение TThread   
    procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  20. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Странное поведение TThread   
    а что удивительного? вы загружаете в синхронизации, т.е. в главном потоке
  21. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Странное поведение TThread   
    само скачивание картинки HTTPClient.Get должен быть в потоке, а при успешном скачивании нужно делать синхронизацию с главным потоком и "вставлять" картинку в нужное место
  22. Like
    Равиль Зарипов (ZuBy) получил реакцию от Brovin Yaroslav в Странное поведение TThread   
    procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  23. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в ColorComboBox произвольный список цветов   
    const aColorNames: array [0 .. 3] of string = ('Black', 'Red', 'Yellow', 'Green'); aColors: array [0 .. 3] of TAlphaColor = (TAlphaColorrec.Black, TAlphaColorrec.red, TAlphaColorrec.Yellow, TAlphaColorrec.Green); procedure TForm1.DoItemApplyStyleLookup(Sender: TObject); var ColorObj: TShape; begin if TListBoxItem(Sender).FindStyleResource<TShape>('color', ColorObj) then ColorObj.Fill.Color := aColors[TListBoxItem(Sender).Tag]; end; procedure TForm1.Button1Click(Sender: TObject); var aItem: TListBoxItem; I: Integer; begin ComboBox1.DropDownKind := TDropDownKind.Custom; // uses FMX.Pickers; for I := Low(aColorNames) to High(aColorNames) do begin aItem := TListBoxItem.Create(ComboBox1); aItem.Parent := ComboBox1; aItem.Text := aColorNames[I]; aItem.Width := aItem.DefaultSize.Width; aItem.Height := aItem.DefaultSize.Height; aItem.StyleLookup := 'colorlistboxitemstyle'; aItem.StylesData['color.Fill.Color'] := aColors[I]; aItem.OnApplyStyleLookup := DoItemApplyStyleLookup; aItem.Tag := I; end; end; как-то так
  24. Like
    Равиль Зарипов (ZuBy) получил реакцию от Rusland в ColorComboBox произвольный список цветов   
    Внутри TComboBox используется TListBox
    Cамый простой способ
    кинуть на форму TListBox ПКМ Add TListBoxItem выбрать нужный стиль для Item (StyleLookup) ПКМ по Item Edit Custom Style меняем что нужно в стиле и сохраняем применяем новый стиль к Item
  25. Like
    Равиль Зарипов (ZuBy) отреагировална denprox в ColorComboBox произвольный список цветов   
    Спасибо большое!! Я был близок, подправил несколько строк, теперь все отлично! 
×
×
  • Создать...