-
Постов
293 -
Зарегистрирован
-
Посещение
-
Победитель дней
21
Сообщения, опубликованные brunnengi
-
-
Здравствуйте.
Подскажите пожалуйста, как можно запретить (а затем восстановить) обработку ввода данных в FMX приложение под Windows?
На форме имеется поле ввода (edit). Я ввожу туда номер, нажимаю Enter. Если по указанному номеру отсутствует информация, то вывожу Layout (с размещенным на нем текстом и кнопкой по которой этот layout скрывается) информацию о том что по данному номеру ничего не найдено. Но поле ввода все может принимать данные.
И такие поля встречаются часто. Хочу как то временно запретить работу с клавиатурой, (а мышь должна работать) пока не нажмут кнопку "OK".
Подскажите пожалуйста как это сделать.
-
Прошу помощи. Вопрос не решен.
Демо не работает как надо.
Куда плыть?
-
Текст будет меняться, в течении всего времени использования программы.
Вариант с общим Layout и выравниванием по какому либо краю, это то что я тоже пытался сделать, как только понял что символам нельзя задать цвет по отдельности.
Но вы, наверное, так же как и я, заметили, что между буквами не одинаковое расстояние, что конечно сильно бросается в глаза.
Вариант номер два звучит отлично. Я бы хотел использовать его.
Но работа демо по TTextLayout оказалась крайне не стабильна.
Я запускаю из под Windows 8.
Что бы само приложение не "покрывалось" артефактами (из-за optimus'а), я ставлю FMX.Types.GlobalUseDirect2D := false;
Но при добавление атрибутов ничего не меняется (да и в чистом виде в демо ничего не происходит).
Если же не много поиграться с Global, то можно добиться того, что шрифт будет менять на жирный. Цвет категорически менять не хочет.
Как добиться чтобы Демо работала, на Windows 8?
Может надо еще какие нибудь глобальные переменные изменить?
-
Здравствуйте
Появилась задача сделать надписи так, что бы цвет букв в одном слове был разный, как на картинке например
Но так и не нашел решения. Делать слова по одной букве тоже не вариант.
- Как поступить, какой есть выход?
- Может кто то уже делал и есть наработки?
-
Sergionn прав.
У меня тоже стоит эта "волшебная" гибридка - технология optimus.Приходится в каждом проекте ставить FMX.Types.GlobalUseDirect2D := false;
Это что бы можно было сами проекты запускать.
И среду приходиться тоже запускать с Интегрировной Карты.
И эта проблема также актуальна и для AppMethod.
В одном из вебинаров я задал вопрос Всеволоду, на что он ответил, что первый раз слышит про optimus и проблемы с ним.
И можно было бы терпеть если бы не тот факт что в магазинах теперь каждый встречный поперечный ноутбук с этой технологией Optimus.
Так что проблема реально есть увы((
-
Да, так и есть. Это моя первая практика. В принципе FMX и так позволял делать то что мне нужно не создавая компонентов, а просто накидывая элементы друг в друга, как я это сделал на принтскрине.
Но просто захотелось поднять свой уровень и все таки освоить технологию создания компонентов.
Постараюсь заполнить свои пробелы. И спасибо что уделили мне время. Вы очень помогли.
-
А есть ли возможность рисовать в run-time? Какой нибудь быстрый метод?
Допустим когда значение sType поменяется, и картинка в Image перерисовывалась сама.
Ниже ПринтСкрин из самой программы.
- Вот если sType = 'sun' то картинка должна быть как на первом item'е
- а если sType = 'water' то как на втором.
Что бы это можно было в run-time менять.
Я могу цвет каждого пикселя получить.
Как потом их картинке присвоить в Image?
И такая идея вообще имеет смысл? Или это я уже бредом занимаюсь?
-
Здравствуйте.
Решил не спамить в одну ветку, хоть и смежные, но все же разные вопросы.
- В своей компоненте хочу использовать Image.
- И что бы картинка у image менялась в зависимости от значения переменной.
Вроде такого (vcl):
if sType = 'sun' then image1.Picture.LoadFromFile('../sun.png'); if sType = 'moon' then image1.Picture.LoadFromFile('../moon.png');
Т.е. я так раньше делал. А как это сделать в своем компоненте, на FMX?
Подскажите пожалуйста.
-
Переделал. Вроде работает.
Спасибо большое за помощь и за разъяснение!
Не скажу что я понял все на 100%, но на 80-87% усвоил.
Большее понимание придет наверное с практикой/опытом.)))
Еще раз спасибо!
-
Ярослав здравствуйте.
Я только начал осваивать создание своих компонентов.
До этого не заморачивался и делал нужные элементы интерфейса в run-time прям во врем программы.
Но в этот раз решил сделать "по-христиански" и создать как компонент.
Я вроде делал. И в какой то момент времени все заработало. Потом я добавил в published свойство для указания цвета для Rectangle.
Сделал build, install. Компонет проверил и вроде заработало.
Потом начал добавлять еще один rectangle и с тех пор все вот так вот, не пашет и все.
Это я просто делюсь с вами своими эмоциями.))
Мне надо что бы событие было в Run-Time.
На форме FireMonkey мне посоветовали добавить
FRectangle.Stored := False;
Я если так сделать, то работает.
Но я не до конца понимаю что это за "уловка" такая. Что несет с собой Stored?
-
Здравствуйте.
Пытаюсь создать свой компонент. Оригинал того что хочу сделать громоздкий, поэтому упростил до минимума (ибо даже минимум не работает).
За базу нового компонента взял TLayout. В него добавил Rectangle. Хотел что бы при клике по Rectangle выходило сообщение через ShowMessage; Но реакции нету.Вот код:
unit PayCardItemVer1Unit; interface uses System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.Layouts, FMX.Objects, System.UITypes, FMX.Graphics, FMX.Dialogs; type TPayCardItemVer1 = class(TLayout) private FRectangle1 : TRectangle; procedure rcClick(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TPayCardItemVer1]); end; { TPayCardItemVer1 } constructor TPayCardItemVer1.Create(AOwner: TComponent); begin inherited; FRectangle1 := TRectangle.Create(self); FRectangle1.Fill.Kind := TBrushKind.bkSolid; FRectangle1.Fill.Color := $FFFF78C9; FRectangle1.Align := TAlignLayout.alContents; FRectangle1.Parent := self; FRectangle1.HitTest := true; FRectangle1.OnClick := rcClick; end; destructor TPayCardItemVer1.Destroy; begin inherited; end; procedure TPayCardItemVer1.rcClick(Sender: TObject); begin ShowMessage('rc Click OK!'); end; end.
Подскажите пожалуйста, что я не так делаю.
Как запретить ввод с клавиатуры?
в Работа с текстом
Опубликовано
Варианты с ReadOnly и фильтром мне известны.
Есть ли возможность просто заставить форму не принимать данные от клавиатуры?