-
Постов
394 -
Зарегистрирован
-
Посещение
-
Победитель дней
45
Сообщения, опубликованные AngryOwl
-
-
Я бы рекомендовал посмотреть здесь.
Там много чего схожего. Большая часть построена на стилях, что, в свою очередь, решает Вашу "задачу".
Не вижу никаких сложностей. Ну и для примера:
-
может как-то так:
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;
-
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);
-
Действительно, как заметил [Alex7wrt], 50 раз в миллисекунду - не получится, как ни крути.
Что касается раз в 50 миллисекунд - реально. Это всего 20 кадров/сек. FMX может и больше. И здесь на форуме есть ссылка на пример работы с графикой где кадры рендерятся со скорость 150-200 кадров/сек. (к сожалению не помню где, но поиск то есть...) Правда там не отрисовка на канве, но все же, Вам стоило бы посмотреть.
-
Вообще, конечно, собрать видео из отдельных кадров можно. Вполне реально. Но не для всего)
И это все "свистоперделки"...
Что касается частоты кадров - реально получать 10-15. Еще и от устройства зависит, от камеры и т.д. Но все эти тормоза из-за класса "обертки" работы с видео. Именно он выдает так мало кадров. Сама камера работает. FMX работает тоже ничего, но основные тормоза из-за того что в TCameraComponent уже "приходит" мало кадров.
На самом деле, как я считаю, разработка для мобильных платформ должна в первую очередь решать именно мультимедийные функции (я бы сказал, что это ОЧЕНЬ важно). А мы имеем пока-что их жалкое подобие, которое нужно допиливать ручками...
Я уже не говорю о том, что почему-то если в той же iOS что-то "запрещено", то это же касается и Android, хотя в ней все намного проще и она более "открыта". Глупо как-то, уж простите за откровенность...
-
По-моему это именно из-за видео-карты.
Попробуйте в файле проекта перед
Application.Initialize;
написать
GlobalDisableFocusEffect := True; GlobalUseDX10 := False; GlobalUseDX10Software := True; // GlobalUseDXInDX9Mode := True;
в общем - "поиграйтесь" с этими параметрами
-
Попробуйте задать
fill.Kind:=tbrushkind.Solid; stroke.Kind:=tbrushkind.None; fill.Color:=MakeColor(0,0,200,180);
до
beginscene;
-
Ссылку, которую я Вам дал, решает именно этот вопрос и именно реализацией стилей. Создается стиль. Форма делается прозрачной, размещается на нее панель и задается ей соответственно стиль. И все - нужная форма готова.
-
Не используйте BindSource ))))
Ну а по существу - используйте в ItemAppearance другие типы итемов.. Типа RatingListItem
проинстолил компонент ваш, все равно не подходит...опять не хватает полей )
- Item.Text = text,
- Item.Detail = text2,
- Item.ImageIndex = imageindex
- Item.ButtonText text3
больше нету полей (...
Алекс, допустим вручную загружу Listview, просто у меня настроек полно по всем полям PositionOffset, ну и как отлаживать все это хозяйство вручную...не визуально?
И еще, вы по датасету тоже по локате перемещаетесь?
Что касается БД - большая часть "ручками".
а LiveBindings вообще не пользую...
Если Вам не хватает в установленном компоненте чего-то - добавьте в него нужное. Это не "пара минут", но реализуемо.
-
Не используйте BindSource ))))
Ну а по существу - используйте в ItemAppearance другие типы итемов.. Типа RatingListItem
-
Если попроще, то я бы сделал так:
- один TListBox (с выравниванием либо Bottom, либо Client)
- с нужным количеством TListBixItem, соответственно кол-ву "фигур"
- у TListBox Columns = кол-ву TListBixItem, либо ListStyle = Horizontal
- ну и соответственно все настройки по высоте и т.п.
- TListBox.StyleLookup = 'transparentlistboxstyle'
- поместил бы в каждый TListBixItem по картинке (TImage) с выравниванием Bottom
и менял бы высоту этих картинок.......
З.Ы. Если Вам не нужно что-то более "красивое"
З.З.Ы. А можно сделать свой дополнительный стиль для TListBixItem, взяв за основу стандартный стиль и изменив в нем объект 'icon'. Тогда не нужен будет TImage для каждого TListBixItem, и можно будет управлять им через StylesData['icon.....']...
-
Вы бы не стеснялись - сделали бы скрин. Думаю, многое прояснилось бы сразу (было бы понятнее)
-
Присоединяюсь к вопросу!
-
Посмотрите тут, вдруг Вам это подходит.
-
-
[rustam_d] В десктопной версии - TCircle, в мобильной - TImage (для ListViewItem) и TCircle (для остального).
-
я через TCircle делал, просто и удобно вроде
Я тоже. Просто вопрос стоял "Как лучше реализовать круглое изображение на базе Timage...".
-
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;
думаю так
-
Не за что!
Ваше решение будет достаточным только в случае если на создаваемой форме не много компонентов. Если их много - процесс "появления" формы может растянуться )
-
"можно заменить на вызов MissMessageApplyStyle или NeedStyleLookup"
Можно, конечно.
При написании было не до оптимизации
-
Вот уже в который раз обсуждается подобный вопрос...
Я бы даже сказал - тот же самый!
Почти каждый раз пишу одно и то же, но все упорно наступают на те же самые грабли. При этом пытаясь меня убедить в том, что делать то я что я пишу - необязательно, и при этом жалуются что у них с их вариантами - не получается достичь нужного результата.
Отройте ссылку и в фрагменте кода найдите КЛЮЧЕВУЮ! строку:
newItem.OnApplyStyleLookup := MissMessageApplyStyle;
Смысл - переопределите событие OnApplyStyleLookup для создаваемых итемов, а внутри MissMessageApplyStyle (назовите как угодно..) - перерисовывайте содержимое. Т.е. - буквально, обновляйте содержимое "ручками".
Тогда у Вас будет все работать как надо, картинки пропадать не будут, и т.д. и т.п.
З.Ы. И да, еще. Если ваш итем ну очень сложный какой-то, например, с необходимостью отрисовки срок разными цветами или что-то еще сложнее - можете переопределить OnRepaint...
З.З.Ы. В той же теме можете увидеть, насколько сложные итемы я создавал и что у них внутри есть, и все работает как надо...
-
К сожалению VScrollBar не видно, и добраться до него мне не удается.
создайте хелпер и тогда "увидите" VScrollBar
например так:
type TSB_Helper = class helper for TCustomScrollBox function VBar: TScrollBar; end;
{ TSB_Helper } function TSB_Helper.VBar: TScrollBar; begin Result:= Self.VScrollBar; end; { --------- }
-
"- создайте форму (например fmSplash) и на ее событие OnFormCreate делаете все что вам нужно
- и когда, на ваш взгляд, уже пора создать главную форму приложения - обновите информацию в TfgProgressDialog и в блоке
TThread.Synchronize(TThread.CurrentThread, procedure
begin
{....}Application.CreateForm(TfmMain, fmMain);
end);создайте все формы вашего приложения..."
чего там только нет... даже боюсь начать перечислять...
-
Splash - да. Он и является первой формой. Все остальные создаются в рантайме уже потом. И все компоненты невизуальные - тоже на главной форме, которая создается тоже позже.
Смысл-то такой:
- вы можете в DesignTime создать все формы, навалять на них компоненты и т.д. и т.п.
- но в опциях проекта уберите все формы из автосоздания, оставив только splash
- а в коде самого проекта у вас будет что-то типа
Application.Initialize; Application.CreateForm(TfmSplash, fmSplash); Application.Run;
- а дальше уже - как я примерно написал. при создании splash-формы уже делайте все что вам надо, в том числе
Application.CreateForm(TfmMain, fmMain);
Чат - элементы форм
в Формы
Опубликовано
пишу "от руки", так что...
допустим в вашем ListBoxItem есть дополнительный компонент TText (для отображения какого-то "иного" текста, а не основного), StyleName которого вы называете "messagecaption" (или как вашей душе угодно).
тогда обращение к данному компоненту TText должно выглядеть следующим образом
ну вот все в таком духе...
З.Ы. и при чем тут Binding ?