Alisson R Oliveira

Пользователи
  • Публикаций

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

  • Посещение

Информация о Alisson R Oliveira

  • Звание
    Пользователь

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Включить
  1. Alisson R Oliveira

    Высота Item, битва продолжается

    look https://community.embarcadero.com/blogs/entry/variable-item-height-with-tlistview-in-10-1-berlin
  2. No solutions. It seems to me that with every change in the size of the listview firemonkey re-renders the items ... like formatting and manual (via code) it belongs to everything ... do you have any options so that this does not happen ?? thankful.
  3. yes.... only changes the height ... since the toolbar stops appearing
  4. I have detailed the error in this image .... the code that adds the items and does its formatting is at the beginning of the tropic. If anyone can help me. appreciate
  5. Good afternoon, I have a problem with ListView, I have an application that works with dynamic appearance items, where I add items manually, it takes the image height and ListView width to calculate the item size and the position of the elements within the ListView. item. The error occurs when I change some control in the form, it loses all its formatting, for example, hides a rectangle or animates the control. Has anyone ever experienced this? Do you know how I can solve this? Thank you!
  6. procedure TfrmPrincipal.AdicionarSomenteOfertasLista; var Tarefa: ITask; begin dmDadosLocais.qryListaSomenteOfertas.Active := False; dmDadosLocais.qryListaSomenteOfertas.ParamByName('IDOFFSET').AsInteger := TotalSomenteOfertasOFFSET; dmDadosLocais.qryListaSomenteOfertas.Active := True; dmDadosLocais.qryListaSomenteOfertas.First; Tarefa := TTask.Create( procedure() var strOferta, strEmpresa, strSloganEmpresa, strIDOferta: string; // LItem: TListViewItem; //Lista de Imagens ItemFolder: TListItemImage; Background: TListItemImage; LogoMarca: TListItemImage; IconeCupom: TListItemImage; IconeCurtidas: TListItemImage; // Tratablhar com imagens ImgStream, ImgStreamLogoEmpresa: TStream; ImagemAlterada: TBitmap; ImagemBackGround: TBitmap; ImagemLogoMarca: TBitmap; ImagemCupom: TBitmap; UsarCupom: Boolean; //Posicionamento ItemTituloOferta, ItemEmpresa, ItemSlogan, ItemNumeroCurtidas: TListItemText; vKoef: Single; AlturaImagem: Single; AvailableWidth: Single; AlturaLvOfertas: Single; Linha: Single; //Texto curtidas strCurtidas: string; begin if dmDadosLocais.qryListaSomenteOfertas.RecordCount > 0 then begin LoadCarregandoSomenteOfertas.Visible := True; lvSomenteOfertas.BeginUpdate; try while not dmDadosLocais.qryListaSomenteOfertas.Eof do begin strOferta := dmDadosLocais.qryListaSomenteOfertas.FieldByName('oferta').AsString; strEmpresa := dmDadosLocais.qryListaSomenteOfertas.FieldByName('empresa').AsString; strIDOferta := dmDadosLocais.qryListaSomenteOfertas.FieldByName('id').AsString; strSloganEmpresa := dmDadosLocais.qryListaSomenteOfertas.FieldByName('slogan').AsString; ImgStream := dmDadosLocais.qryListaSomenteOfertas.CreateBlobStream(dmDadosLocais.qryListaSomenteOfertas.FieldByName('img_media'), TBlobStreamMode.bmRead); ImgStreamLogoEmpresa := dmDadosLocais.qryListaSomenteOfertas.CreateBlobStream(dmDadosLocais.qryListaSomenteOfertas.FieldByName('logomarca'), TBlobStreamMode.bmRead); //Controle de Cupom if dmDadosLocais.qryListaSomenteOfertas.FieldByName('usar_cupom').AsBoolean = True then UsarCupom := True else if dmDadosLocais.qryListaSomenteOfertas.FieldByName('usar_cupom').AsBoolean = False then UsarCupom := False; TThread.Synchronize(TThread.CurrentThread, procedure() begin AvailableWidth := lvSomenteOfertas.Width - lvSomenteOfertas.ItemSpaces.Left - lvSomenteOfertas.ItemSpaces.Right; ImagemAlterada := TBitmap.Create; ImagemAlterada.LoadFromStream(ImgStream); {Tamanho e Posicionamento} if Handle = nil then exit; // on Android without this user will get Access Violation vKoef := AvailableWidth / ImagemAlterada.Width; AlturaImagem := ImagemAlterada.Height * vKoef; LItem := lvSomenteOfertas.Items.Add; LItem.Height := (Round(AlturaImagem) + 5 + 22 + 5 + 40 + 3 + 20 + 30); //Atribui valores LItem.Data['Oferta'] := strOferta; LItem.Data['Empresa'] := strEmpresa; LItem.Data['IDOferta'] := strIDOferta; LItem.Data['SloganEmpresa'] := strSloganEmpresa; strCurtidas := dmDadosLocais.NumeroDeCurtidasFEED(StrToInt(strIDOferta)); LItem.Data['NumeroCurtidas'] := strCurtidas; if strCurtidas.IsEmpty = True then LItem.Data['IconeCurtida'] := 0 else if strCurtidas.IsEmpty = False then LItem.Data['IconeCurtida'] := 1; //Folder ItemFolder := TListItemImage(LItem.View.FindDrawable('Folder')); ItemFolder.OwnsBitmap := True; ItemFolder.Bitmap := ImagemAlterada; ImagemAlterada.Free; ItemFolder.Height := AlturaImagem; Background := TListItemImage(LItem.View.FindDrawable('Background')); Background.Visible := False; //LogoEmpresa LogoMarca := TListItemImage(LItem.View.FindDrawable('LogoEmpresa')); ImagemLogoMarca := TBitmap.Create; LogoMarca.OwnsBitmap := True; ImagemLogoMarca.LoadFromStream(ImgStreamLogoEmpresa); LogoMarca.Bitmap := ImagemLogoMarca; ImagemLogoMarca.Free; //Icone do Cupom IconeCupom := TListItemImage(LItem.View.FindDrawable('iconeCUPOM')); ImagemCupom := TBitmap.Create; IconeCupom.OwnsBitmap := True; if UsarCupom = True then ImagemCupom := imgIconeCupom.Bitmap else if UsarCupom = False then ImagemCupom := imgIconeSemCupom.Bitmap; IconeCupom.Bitmap := ImagemCupom; ImagemCupom.Free; //Localiza Objetos IconeCurtidas := TListItemImage(LItem.View.FindDrawable('IconeCurtida')); ItemTituloOferta := TListItemText(LItem.View.FindDrawable('Oferta')); ItemEmpresa := TListItemText(LItem.View.FindDrawable('Empresa')); ItemSlogan := TListItemText(LItem.View.FindDrawable('SloganEmpresa')); ItemNumeroCurtidas := TListItemText(LItem.View.FindDrawable('NumeroCurtidas')); // Posiciona Objetos nos controles Linha := 5; //Linha 1 - Dados da empresa LogoMarca.PlaceOffset.Y := Linha; ItemEmpresa.PlaceOffset.Y := Linha; ItemEmpresa.PlaceOffset.X := 60; ItemSlogan.PlaceOffset.Y := Linha + 21; ItemSlogan.PlaceOffset.X := 60; //Linha 2 - Folder da Oferta Linha := Linha + LogoMarca.Height + 7; ItemFolder.PlaceOffset.Y := Linha; //Linha 3 - Titulo da oferta Linha := Linha + AlturaImagem + 5; ItemTituloOferta.PlaceOffset.Y := Linha; //Linha 4 - Número de Curtidas Linha := Linha + ItemTituloOferta.Height + 3; ItemNumeroCurtidas.PlaceOffset.Y := Linha; IconeCurtidas.PlaceOffset.Y := Linha; end); dmDadosLocais.qryListaSomenteOfertas.Next; end; finally lvSomenteOfertas.EndUpdate; // if TotalSomenteOfertasOFFSET = 0 then // TThread.Synchronize(nil, RepintarOfertasDesalinhadas); TotalSomenteOfertasOFFSET := TotalSomenteOfertasOFFSET + 10; TThread.Synchronize(TThread.CurrentThread, procedure() begin if TotalSomenteOfertasOFFSET = 10 then RepintarOfertasDesalinhadas(lvSomenteOfertas); LoadCarregandoSomenteOfertas.Visible := False; end); end; end; end); Tarefa.Start; end;
  7. Boa tarde, eu tenho um problema com o ListView, eu tenho um aplicativo que funciona com elementos de aparência, onde eu adicionar itens manualmente, leva-se a altura da imagem e largura para calcular o tamanho do elemento e a posição dos elementos de comando no elemento. O erro ocorre quando eu altero o controle sobre ele, ele perde toda a sua formatação, por exemplo, oculta um retângulo ou anima o controle. Alguém já passou por isso? Você sabe como eu posso resolver isso? Obrigado!
  8. Alisson R Oliveira

    StatusBar Color

    Доброе утро ... жаль открывать тропик после долгого времени, но я утверждал приложение на других устройствах, что панель навигации не является физической (назад, дома, окнами), и с этим она становится полностью прозрачной, а элементы управления белыми, например могу я решить ??? благодарный
  9. привет всем У меня проблема в разработке алгоритма, который знает, что кто-то здесь может мне помочь. В сценарии и следующем, у меня есть изображение, которое отображает изображения, размещенные пользователями, так как фотографии могут быть нескольких разных размеров. Мне бы хотелось, чтобы высота проспекта (Image.Height) рассчитывалась в соответствии с размером экрана мобильного телефона (Android) или его ширина и изображение занимают высоту correda без размытия изображения, детали с использованием свойства Wrapmode: = fit; а не Wrapmode: = Растянуть благодарный
  10. Alisson R Oliveira

    Shortcuts Android?

    Добрый вечер, кто-нибудь знает, как я могу создать функцию для создания ярлыка в доме Android? Эта функция не работает, по крайней мере, не на android 6 и 7.0 Uses Androidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android, Androidapi.JNI.JavaTypes, FMX.Platform.Android, AndroidApi.JniBridge, AndroidApi.Jni.App, AndroidAPI.jni.OS; {$IFDEF ANDROID} var ShortcutIntent: JIntent; addIntent: JIntent; wIconIdentifier : integer; wIconResource : JIntent_ShortcutIconResource; {$ENDIF} begin {$IFDEF ANDROID} ShortcutIntent := TJIntent.JavaClass.init(SharedActivityContext, SharedActivityContext.getClass); ShortcutIntent.setAction(TJIntent.JavaClass.ACTION_MAIN); addIntent := TJIntent.Create; addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_INTENT, TJParcelable.Wrap((shortcutIntent as ILocalObject).GetObjectID));// here we need to cast the intent as it's not done in delphi by default, not like java addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_NAME, StringToJString(Application.Title)); addIntent.setAction(StringToJString('com.android.launcher.action.INSTALL_SHORTCUT')); // get icon resource identifier wIconIdentifier := SharedActivity.getResources.getIdentifier(StringToJString('ic_launcher'), StringToJString('drawable'), StringToJString('com.embarcadero.HeaderFooterApplication')); // if the app name change, you must change the package name wIconResource := TJIntent_ShortcutIconResource.JavaClass.fromContext(SharedActivityContext, wIconIdentifier); // set icon for shortcut addIntent.putExtra(TJIntent.JavaClass.EXTRA_SHORTCUT_ICON_RESOURCE, TJParcelable.Wrap((wIconResource as ILocalObject).GetObjectID)); SharedActivityContext.sendBroadcast(addIntent); {$ENDIF} благодарный
  11. Alisson R Oliveira

    Потоковое видео Youtube

    Может ли кто-нибудь сказать мне, могу ли я транслировать видео с youtube прямо на плеер. благодарный
  12. Alisson R Oliveira

    StatusBar Color

    Я понимаю, что я рассмотрю дорожную карту грузоотправителя, чтобы посмотреть, будет ли эта деталь изменена. С вашим объяснением и вашим устройством я помещаю TRectangle с желаемым цветом, чтобы быть backgroud, поэтому у меня был «желаемый результат». Большое спасибо
  13. Alisson R Oliveira

    StatusBar Color

    Очень хорошая проблема позиционирования управления по отношению к разрешенной строке состояния, я искал функцию, которая возвращает мне целое число, плюс и процедуру. кажется, что все работает отлично, за исключением одной детали, цвет, который я передаю как параметр, не используется для рисования строки состояния. и фиксированный цвет. анализируя процедуру, которая делает это «StatusBarSetColor» увидела, что он получает «const aColor: TAlphaColor» и только использует на устройствах iOS в Android фиксированное значение procedure StatusBarSetColor(const aColor: TAlphaColor); {$IFDEF ANDROID} var Window: JWindowExt; {$ENDIF} begin {$IFDEF ANDROID} CallInUIThread( procedure begin if TOSVersion.Check(5, 0) then begin Window := GetWindowExt; Window.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS, TJWindowManager_LayoutParams.JavaClass.FLAG_TRANSLUCENT_STATUS); Window.setFlags(TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, TJWindowManager_LayoutParamsExt.JavaClass.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); Window.setStatusBarColor(-16777216); end; end); {$ENDIF} {$IFDEF IOS} SetStatusBarBackgroundColor(aColor); {$ENDIF} end;
  14. Alisson R Oliveira

    StatusBar Color

    извините за мое понимание вашего подразделения. Процедура «StatusBarGetBounds» не является функцией, которая не возвращает мне значение высоты строки состояния, поэтому я говорю, что у меня есть много знаний о предмете, высота бара состояния и босса для всех версий android (от 5 ) и независимо от марки устройства (asus, samsung, lg и др.)? Как вы можете привести пример правильного использования описанных вами процедур. еще раз спасибо