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

AngryOwl

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

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

  • Посещение

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

    45

Весь контент AngryOwl

  1. пишу "от руки", так что... допустим в вашем ListBoxItem есть дополнительный компонент TText (для отображения какого-то "иного" текста, а не основного), StyleName которого вы называете "messagecaption" (или как вашей душе угодно). тогда обращение к данному компоненту TText должно выглядеть следующим образом item{ваш_конкретный_итем}.BeginUpdate; try item.StylesData['messagecaption.Text'] := 'тра-ля-ля'; // ваш текст finally item.EndUpdate; end; ну вот все в таком духе... З.Ы. и при чем тут Binding ?
  2. Я бы рекомендовал посмотреть здесь. Там много чего схожего. Большая часть построена на стилях, что, в свою очередь, решает Вашу "задачу". Не вижу никаких сложностей. Ну и для примера:
  3. может как-то так: procedure TForm1.edSumKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin case KeyChar of #8, '0'..'9' : ; // цифры и <Back Space> '.', ',' : // разделитель целой и дробной частей числа begin if KeyChar <> FormatSettings.DecimalSeparator then KeyChar := FormatSettings.DecimalSeparator; // заменим разделитель на допустимый if Pos(FormatSettings.DecimalSeparator, edDepositing_Sum.Text) <> 0 then begin Key := 0; // запрет ввода второго разделителя KeyChar := Chr(0); end; end; else // остальные символы запрещены begin Key := 0; KeyChar := Chr(0); end; end; end;
  4. procedure EnableScrollSmooth(Sender: TObject; AHorhValue, ABounds, AShowing: Boolean); begin if Assigned(TScrollBox(Sender)) then with TScrollBox(Sender).AniCalculations do begin Animation := True; AutoShowing := AShowing; BoundsAnimation := ABounds; if not AHorhValue then TouchTracking := TouchTracking - [ttHorizontal]; end; end; ну и переключайте например так: EnableScrollSmooth({ваш TScrollBox}, False, False, True);
  5. Действительно, как заметил [Alex7wrt], 50 раз в миллисекунду - не получится, как ни крути. Что касается раз в 50 миллисекунд - реально. Это всего 20 кадров/сек. FMX может и больше. И здесь на форуме есть ссылка на пример работы с графикой где кадры рендерятся со скорость 150-200 кадров/сек. (к сожалению не помню где, но поиск то есть...) Правда там не отрисовка на канве, но все же, Вам стоило бы посмотреть.
  6. Вообще, конечно, собрать видео из отдельных кадров можно. Вполне реально. Но не для всего) И это все "свистоперделки"... Что касается частоты кадров - реально получать 10-15. Еще и от устройства зависит, от камеры и т.д. Но все эти тормоза из-за класса "обертки" работы с видео. Именно он выдает так мало кадров. Сама камера работает. FMX работает тоже ничего, но основные тормоза из-за того что в TCameraComponent уже "приходит" мало кадров. На самом деле, как я считаю, разработка для мобильных платформ должна в первую очередь решать именно мультимедийные функции (я бы сказал, что это ОЧЕНЬ важно). А мы имеем пока-что их жалкое подобие, которое нужно допиливать ручками... Я уже не говорю о том, что почему-то если в той же iOS что-то "запрещено", то это же касается и Android, хотя в ней все намного проще и она более "открыта". Глупо как-то, уж простите за откровенность...
  7. По-моему это именно из-за видео-карты. Попробуйте в файле проекта перед Application.Initialize; написать GlobalDisableFocusEffect := True; GlobalUseDX10 := False; GlobalUseDX10Software := True; // GlobalUseDXInDX9Mode := True; в общем - "поиграйтесь" с этими параметрами
  8. Попробуйте задать fill.Kind:=tbrushkind.Solid; stroke.Kind:=tbrushkind.None; fill.Color:=MakeColor(0,0,200,180); до beginscene;
  9. Ссылку, которую я Вам дал, решает именно этот вопрос и именно реализацией стилей. Создается стиль. Форма делается прозрачной, размещается на нее панель и задается ей соответственно стиль. И все - нужная форма готова.
  10. проинстолил компонент ваш, все равно не подходит...опять не хватает полей ) - Item.Text = text, - Item.Detail = text2, - Item.ImageIndex = imageindex - Item.ButtonText text3 больше нету полей (... Алекс, допустим вручную загружу Listview, просто у меня настроек полно по всем полям PositionOffset, ну и как отлаживать все это хозяйство вручную...не визуально? И еще, вы по датасету тоже по локате перемещаетесь? Что касается БД - большая часть "ручками". а LiveBindings вообще не пользую... Если Вам не хватает в установленном компоненте чего-то - добавьте в него нужное. Это не "пара минут", но реализуемо.
  11. Не используйте BindSource )))) Ну а по существу - используйте в ItemAppearance другие типы итемов.. Типа RatingListItem
  12. Если попроще, то я бы сделал так: - один TListBox (с выравниванием либо Bottom, либо Client) - с нужным количеством TListBixItem, соответственно кол-ву "фигур" - у TListBox Columns = кол-ву TListBixItem, либо ListStyle = Horizontal - ну и соответственно все настройки по высоте и т.п. - TListBox.StyleLookup = 'transparentlistboxstyle' - поместил бы в каждый TListBixItem по картинке (TImage) с выравниванием Bottom и менял бы высоту этих картинок....... З.Ы. Если Вам не нужно что-то более "красивое" З.З.Ы. А можно сделать свой дополнительный стиль для TListBixItem, взяв за основу стандартный стиль и изменив в нем объект 'icon'. Тогда не нужен будет TImage для каждого TListBixItem, и можно будет управлять им через StylesData['icon.....']...
  13. Вы бы не стеснялись - сделали бы скрин. Думаю, многое прояснилось бы сразу (было бы понятнее)
  14. Присоединяюсь к вопросу!
  15. Посмотрите тут, вдруг Вам это подходит.
  16. Можно сделать так: procedure TfmForma.FormCreate(Sender: TObject); begin inherited; Left := Screen.Size.Width - ClientWidth; Top := Screen.Size.Height - ClientHeight; {ну или где там она должна появляться} end;
  17. [rustam_d] В десктопной версии - TCircle, в мобильной - TImage (для ListViewItem) и TCircle (для остального).
  18. Я тоже. Просто вопрос стоял "Как лучше реализовать круглое изображение на базе Timage...".
  19. var BmpNew : TBitmap; begin BmpNew := TBitmap.Create; BmpNew.SetSize({нужный размер}, {нужный размер}); BmpNew.Canvas.BeginScene; try BmpNew.Canvas.Fill.Kind := TBrushKind.Bitmap; BmpNew.Canvas.Fill.Bitmap.WrapMode := TWrapMode.TileStretch; BmpNew.Canvas.Fill.Bitmap.Bitmap := {ваш битмап}; BmpNew.Canvas.Clear(0); BmpNew.Canvas.FillEllipse(RectF(0, 0, {нужный размер}, {нужный размер}), 1); finally BmpNew.Canvas.EndScene; end; TImage{ваш объект}.Bitmap.Assign(BmpNew); end; думаю так
  20. Не за что! Ваше решение будет достаточным только в случае если на создаваемой форме не много компонентов. Если их много - процесс "появления" формы может растянуться )
  21. "можно заменить на вызов MissMessageApplyStyle или NeedStyleLookup" Можно, конечно. При написании было не до оптимизации
  22. Вот уже в который раз обсуждается подобный вопрос... Я бы даже сказал - тот же самый! Почти каждый раз пишу одно и то же, но все упорно наступают на те же самые грабли. При этом пытаясь меня убедить в том, что делать то я что я пишу - необязательно, и при этом жалуются что у них с их вариантами - не получается достичь нужного результата. Отройте ссылку и в фрагменте кода найдите КЛЮЧЕВУЮ! строку: newItem.OnApplyStyleLookup := MissMessageApplyStyle; Смысл - переопределите событие OnApplyStyleLookup для создаваемых итемов, а внутри MissMessageApplyStyle (назовите как угодно..) - перерисовывайте содержимое. Т.е. - буквально, обновляйте содержимое "ручками". Тогда у Вас будет все работать как надо, картинки пропадать не будут, и т.д. и т.п. З.Ы. И да, еще. Если ваш итем ну очень сложный какой-то, например, с необходимостью отрисовки срок разными цветами или что-то еще сложнее - можете переопределить OnRepaint... З.З.Ы. В той же теме можете увидеть, насколько сложные итемы я создавал и что у них внутри есть, и все работает как надо...
  23. создайте хелпер и тогда "увидите" VScrollBar например так: type TSB_Helper = class helper for TCustomScrollBox function VBar: TScrollBar; end; { TSB_Helper } function TSB_Helper.VBar: TScrollBar; begin Result:= Self.VScrollBar; end; { --------- }
  24. "- создайте форму (например fmSplash) и на ее событие OnFormCreate делаете все что вам нужно - и когда, на ваш взгляд, уже пора создать главную форму приложения - обновите информацию в TfgProgressDialog и в блоке TThread.Synchronize(TThread.CurrentThread, procedure begin {....} Application.CreateForm(TfmMain, fmMain); end); создайте все формы вашего приложения..." чего там только нет... даже боюсь начать перечислять...
  25. Splash - да. Он и является первой формой. Все остальные создаются в рантайме уже потом. И все компоненты невизуальные - тоже на главной форме, которая создается тоже позже. Смысл-то такой: - вы можете в DesignTime создать все формы, навалять на них компоненты и т.д. и т.п. - но в опциях проекта уберите все формы из автосоздания, оставив только splash - а в коде самого проекта у вас будет что-то типа Application.Initialize; Application.CreateForm(TfmSplash, fmSplash); Application.Run; - а дальше уже - как я примерно написал. при создании splash-формы уже делайте все что вам надо, в том числе Application.CreateForm(TfmMain, fmMain);
×
×
  • Создать...