-
Постов
394 -
Зарегистрирован
-
Посещение
-
Победитель дней
45
Весь контент AngryOwl
-
пишу "от руки", так что... допустим в вашем ListBoxItem есть дополнительный компонент TText (для отображения какого-то "иного" текста, а не основного), StyleName которого вы называете "messagecaption" (или как вашей душе угодно). тогда обращение к данному компоненту TText должно выглядеть следующим образом item{ваш_конкретный_итем}.BeginUpdate; try item.StylesData['messagecaption.Text'] := 'тра-ля-ля'; // ваш текст finally item.EndUpdate; end; ну вот все в таком духе... З.Ы. и при чем тут Binding ?
-
Я бы рекомендовал посмотреть здесь. Там много чего схожего. Большая часть построена на стилях, что, в свою очередь, решает Вашу "задачу". Не вижу никаких сложностей. Ну и для примера:
-
может как-то так: 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;
-
Ссылку, которую я Вам дал, решает именно этот вопрос и именно реализацией стилей. Создается стиль. Форма делается прозрачной, размещается на нее панель и задается ей соответственно стиль. И все - нужная форма готова.
-
проинстолил компонент ваш, все равно не подходит...опять не хватает полей ) - 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.....']...
-
Присоединяюсь к вопросу!
-
Посмотрите тут, вдруг Вам это подходит.
-
Можно сделать так: procedure TfmForma.FormCreate(Sender: TObject); begin inherited; Left := Screen.Size.Width - ClientWidth; Top := Screen.Size.Height - ClientHeight; {ну или где там она должна появляться} end;
-
[rustam_d] В десктопной версии - TCircle, в мобильной - TImage (для ListViewItem) и 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; думаю так
-
Не за что! Ваше решение будет достаточным только в случае если на создаваемой форме не много компонентов. Если их много - процесс "появления" формы может растянуться )
-
Вот уже в который раз обсуждается подобный вопрос... Я бы даже сказал - тот же самый! Почти каждый раз пишу одно и то же, но все упорно наступают на те же самые грабли. При этом пытаясь меня убедить в том, что делать то я что я пишу - необязательно, и при этом жалуются что у них с их вариантами - не получается достичь нужного результата. Отройте ссылку и в фрагменте кода найдите КЛЮЧЕВУЮ! строку: newItem.OnApplyStyleLookup := MissMessageApplyStyle; Смысл - переопределите событие OnApplyStyleLookup для создаваемых итемов, а внутри MissMessageApplyStyle (назовите как угодно..) - перерисовывайте содержимое. Т.е. - буквально, обновляйте содержимое "ручками". Тогда у Вас будет все работать как надо, картинки пропадать не будут, и т.д. и т.п. З.Ы. И да, еще. Если ваш итем ну очень сложный какой-то, например, с необходимостью отрисовки срок разными цветами или что-то еще сложнее - можете переопределить OnRepaint... З.З.Ы. В той же теме можете увидеть, насколько сложные итемы я создавал и что у них внутри есть, и все работает как надо...
-
создайте хелпер и тогда "увидите" 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);