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

Лидеры

  1. AngryOwl

    AngryOwl

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


    • Баллы

      2

    • Постов

      394


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

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

    Модераторы


    • Баллы

      1

    • Постов

      2 517


  3. xenon54

    xenon54

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


    • Баллы

      1

    • Постов

      385


  4. kami

    kami

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


    • Баллы

      1

    • Постов

      643


Популярный контент

Показан контент с высокой репутацией 02.08.2015 во всех областях

  1. Зависит Например: - злоупотребление процессорным временем (постоянная загрузка процессора на 100% - неоптимальность алгоритмов и не-использование аппаратных возможностей ускорения) - злоупотребление частотой получения данных от периферии (датчики ускорения/GPS/наклона...) - злоупотребление яркостью экрана (некоторые устройства при включенном экране и максимальной яркостью разряжаются даже при подключенной штатной зарядке) Да мало ли еще чего, например - злоупотребление программированием вообще
    1 балл
  2. Идея тут следующая (если требуется именно StayOnTop): Форма создается как StayOnTop и прячется за пределы экрана. Приведенный мною код меняет значение соответствующего поля формы, не вызывая при этом реакции на изменение значения св-ва (пересоздание формы как Popup и т.п.). Т.е. форма остается StayOnTop, но когда дельфийский код принимает решение об ее активации и т.п. действиях, то он "видит" ее как Popup, т.к. FormStyle = Popup. Тестовый проект прилагаю (проверял на Win7 x64): NotActiveStayOnTopForm.zip
    1 балл
  3. Что за проект? Если не трудно скинь код реализации панелей в listbox. Заранее спасибо! Проект. Кусок стиля: object TLayout StyleName = 'listboxitemmessagestylelight' EnableDragHighlight = False Padding.Left = 4.000000000000000000 Padding.Top = 4.000000000000000000 Padding.Right = 4.000000000000000000 Padding.Bottom = 4.000000000000000000 Position.X = 416.000000000000000000 Position.Y = 392.000000000000000000 Size.Width = 220.000000000000000000 Size.Height = 70.000000000000000000 Size.PlatformDefault = False Visible = False TabOrder = 91 object TRectangle StyleName = 'rectMain' Align = Contents Corners = [] EnableDragHighlight = False Fill.Color = claWhite HitTest = False Size.Width = 220.000000000000000000 Size.Height = 70.000000000000000000 Size.PlatformDefault = False end object TText StyleName = 'detail' Align = Client ClipChildren = True Cursor = crHandPoint EnableDragHighlight = False HitTest = False Margins.Right = 22.000000000000000000 Size.Width = 136.000000000000000000 Size.Height = 36.000000000000000000 Size.PlatformDefault = False TextSettings.Trimming = Character end object TActiveStyleTextObject StyleName = 'text' Align = Top EnableDragHighlight = False Margins.Right = 22.000000000000000000 Position.X = 58.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 136.000000000000000000 Size.Height = 26.000000000000000000 Size.PlatformDefault = False TextSettings.Font.Style = [fsBold] TextSettings.Trimming = Character TextSettings.WordWrap = False Shadow.Color = claBlack Shadow.Offset.XI = 1 Shadow.Offset.YI = 1 ShadowVisible = False ActiveTrigger = Selected ActiveColor = claBlack ActiveShadow.Color = claBlack ActiveShadow.Offset.XI = 1 ActiveShadow.Offset.YI = 1 end object TCircle StyleName = 'roundavatar' Align = MostLeft EnableDragHighlight = False Fill.Bitmap.WrapMode = TileStretch Fill.Kind = Bitmap HitTest = False Margins.Left = 2.000000000000000000 Margins.Right = 4.000000000000000000 Position.X = 6.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 48.000000000000000000 Size.Height = 62.000000000000000000 Size.PlatformDefault = False Stroke.Color = claGray Stroke.Thickness = 2.000000000000000000 end object TText StyleName = 'btnclosemessage' Anchors = [akTop, akRight] EnableDragHighlight = False Opacity = 1.000000000000000000 Position.X = 194.000000000000000000 Position.Y = 4.000000000000000000 Size.Width = 26.000000000000000000 Size.Height = 26.000000000000000000 Size.PlatformDefault = False Text = #58882 TextSettings.Font.Family = 'spherelive' TextSettings.Font.Size = 26.000000000000000000 TextSettings.WordWrap = False end end Фрагменты кода: procedure TfmMissMessages.MissMessageApplyStyle(Sender: TObject); var StyleObject : TFmxObject; begin (Sender as TListBoxItem).OnClick := MessageItemClick; StyleObject := TListBoxItem(Sender).FindStyleResource('btnclosemessage') as TText; if Assigned(StyleObject) then TText(StyleObject).OnClick := DelMissMessageItemClick; StyleObject := TListBoxItem(Sender).FindStyleResource('roundavatar') as TCircle; if Assigned(StyleObject) then try TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.BeginScene(); TCircle(StyleObject).Fill.Bitmap.Bitmap := {тут ваш битмап}; finally TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.EndScene; end; end; procedure TfmMissMessages.AddMissMessageItem(......... AText: string); var newItem : TListBoxItem; newHeight : Integer; StyleObject: TFmxObject; begin .......... newItem := TListBoxItem.Create(nil); newItem.AutoTranslate := False; newItem.ClipChildren := True; newItem.CanFocus := False; newItem.EnableDragHighlight := False; newItem.Height := C_HeightItemMessage; newItem.Margins.Bottom := 5; newItem.StyledSettings := [TStyledSetting.Family, TStyledSetting.Style, TStyledSetting.FontColor]; newItem.TextSettings.HorzAlign := TTextAlign.Center; newItem.Text := AText; newItem.HitTest := True; newItem.OnClick := MessageItemClick; newItem.OnApplyStyleLookup := MissMessageApplyStyle; StyleObject := newItem.FindStyleResource('btnclosemessage') as TText; if Assigned(StyleObject) then TText(StyleObject).OnClick := DelMissMessageItemClick; StyleObject := newItem.FindStyleResource('roundavatar') as TCircle; if Assigned(StyleObject) then try TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.BeginScene(); TCircle(StyleObject).Fill.Bitmap.Bitmap := {тут ваш битмап}; finally TCircle(StyleObject).Fill.Bitmap.Bitmap.Canvas.EndScene; end; lbxMissMessage.BeginUpdate; lbxMissMessage.AddObject(newItem); lbxMissMessage.EndUpdate; end; procedure TfmMissMessages.DelMissMessageItem(Sender: TListBoxItem); var newHeight : Integer; begin if not Assigned(Sender as TListBoxItem) then Exit; ............. lbxMissMessage.Items.Delete(TListBoxItem(Sender).Index); end; Извините, некоторые фрагменты кода удалены... Но думаю и так будет все понятно.
    1 балл
  4. я же наоборот использую ListView, для достижении своих целей
    1 балл
  5. Не в первый раз вижу эту тему... TGridPanelLayout - далеко не предпочтительный вариант. Совсем. У ListBox с его Item'ами намного больше возможностей. С [xenon54] соглашусь, но не полностью. ListView действительно хорош (для мобильной платформы), однако он намного сложнее. Примеры применения стилей для ListBoxItem (не сочтите за рекламу, так проще было... нащелкал скринов для примера): Везде - ListBox. На последнем скрине - всплывающие сообщения на экране. Реализовано так же - прозрачная форма, ListBox и Item'ы со своим стилем В ВИДЕ ПАНЕЛЕК )
    1 балл
  6. 50 элементов для ListBox в мобильной платформе это ооочень много. Вообще, где-то писали что ListBox следует использовать не более чем как для меню, т.е. количество элементов не более десятка, на вскидку. Если у вас список более 10 элементов, листбокс лучше не использовать. ListView очень хорош с большим количеством элементов. Основная его фишка ускорения работы, как я понял, это то что он не держит кучу чилдрен контролов у себя и всю отрисовку делает только он сам, а вот листбокс это куча контролов, каждый из которых занимается отрисовкой. Есть у тебя 50 итемов, на них на каждом по 3 контрола, считай метод отрисовки вызовется 201 раз (1=сам листбокс, 50 это каждый итем, и еще 150 это по 3 контрола в каждом итеме).
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...