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

Alisson R Oliveira

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

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

  • Посещение

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

    2

Весь контент Alisson R Oliveira

  1. Did you find the solution? I've been having the same problem for over 1 year ...
  2. look https://community.embarcadero.com/blogs/entry/variable-item-height-with-tlistview-in-10-1-berlin
  3. 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.
  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. Доброе утро ... жаль открывать тропик после долгого времени, но я утверждал приложение на других устройствах, что панель навигации не является физической (назад, дома, окнами), и с этим она становится полностью прозрачной, а элементы управления белыми, например могу я решить ??? благодарный
  9. привет всем У меня проблема в разработке алгоритма, который знает, что кто-то здесь может мне помочь. В сценарии и следующем, у меня есть изображение, которое отображает изображения, размещенные пользователями, так как фотографии могут быть нескольких разных размеров. Мне бы хотелось, чтобы высота проспекта (Image.Height) рассчитывалась в соответствии с размером экрана мобильного телефона (Android) или его ширина и изображение занимают высоту correda без размытия изображения, детали с использованием свойства Wrapmode: = fit; а не Wrapmode: = Растянуть благодарный
  10. Добрый вечер, кто-нибудь знает, как я могу создать функцию для создания ярлыка в доме 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. Может ли кто-нибудь сказать мне, могу ли я транслировать видео с youtube прямо на плеер. благодарный
  12. Я понимаю, что я рассмотрю дорожную карту грузоотправителя, чтобы посмотреть, будет ли эта деталь изменена. С вашим объяснением и вашим устройством я помещаю TRectangle с желаемым цветом, чтобы быть backgroud, поэтому у меня был «желаемый результат». Большое спасибо
  13. Очень хорошая проблема позиционирования управления по отношению к разрешенной строке состояния, я искал функцию, которая возвращает мне целое число, плюс и процедуру. кажется, что все работает отлично, за исключением одной детали, цвет, который я передаю как параметр, не используется для рисования строки состояния. и фиксированный цвет. анализируя процедуру, которая делает это «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. извините за мое понимание вашего подразделения. Процедура «StatusBarGetBounds» не является функцией, которая не возвращает мне значение высоты строки состояния, поэтому я говорю, что у меня есть много знаний о предмете, высота бара состояния и босса для всех версий android (от 5 ) и независимо от марки устройства (asus, samsung, lg и др.)? Как вы можете привести пример правильного использования описанных вами процедур. еще раз спасибо
  15. Он работал, теперь он рисует строку состояния, но экран идет позади ... Я не видел, чтобы функция могла получить высоту строки состояния, чтобы сделать интервал, например, один из предыдущего примера "Layout.Margins.Top: = TmyWindow.StatusBarHeight;" Не могли бы вы помочь мне, как мне это сделать с этим новым подразделением, которое вы показали? благодарный
  16. Добрый день, сначала мне жаль, потому что я не знаю русского языка. Я использую переводчик Google. У меня есть следующая проблема: я использую вашу библиотеку для изменения цвета панели состояния (ZenFone3, android 7) отлично работает, пока я не отключу «Включить всплывающее изображение» там, где он больше не компилируется, и возвращает мне следующую ошибку. [Ошибка PAClient] E2312 D: \ OffersCap \ Mobile \ Android \ Release \ OfferCap \ res \ values-v21 \ styles.xml: 5: Ошибка: Ошибка: ресурс не найден, который соответствует указанному имени (на 'android: windowBackground 'со значением' @ drawable / splash_image_def '). если вы можете мне помочь, спасибо
×
×
  • Создать...