• 0
Vitaldj

Как поменять фон Edit?

Вопросы

Коллеги, понадобилось поменять фон в обычном edit, не смог этого сделать. Пишу мулюьтипратформенное приложение для windows, mac. Есть идеи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 ответов на этот вопрос

  • 0

Если вы хотите поменять фону у всех TEdit на постоянной основе, то правьте стиль.

Если фон нужно поменять у некоторых TEdit, то нужно скопировать стандартный стиль и задать область для него.

А если нужно динамически менять фоны (например, менять фон при получении курсора), то, скорее всего, придется уже в StyleBook подкладывать TRectangle и менять цвет у него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Добрый день,

 

Можно использовать прозрачный стиль эдита 'TransparentEditStyle'. В таком стиле эдит отображает только текст. В таком случае, Вы можете подложить под TEdit любую подложку. Или же сделать новый стиль на базе стиля по умолчанию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 20.07.2015 в 19:45, Brovin Yaroslav сказал:

Можно использовать прозрачный стиль эдита 'TransparentEditStyle'. В таком стиле эдит отображает только текст. В таком случае, Вы можете подложить под TEdit любую подложку. Или же сделать новый стиль на базе стиля по умолчанию.

Возник тот же вопрос - нужно сделать фон на Андроиде непрозрачным. Прочитал комменты вверху, сделал CustomStyle, прицепил его к TEDit, в StyleLookUp стоит всё верно, в designtime отображается всё как нужно - белый прямоугольник. Запускаю на Андроиде - нифига, как был прозрачный с полоской так и остался. Что может быть не так? Есть конечно вариант поместить под TEDit белый прямоугольник, но такой костыль как-то это ненормально выглядит :)

Изменено пользователем elxanders

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
5 часов назад, elxanders сказал:

Возник тот же вопрос - нужно сделать фон на Андроиде непрозрачным. Прочитал комменты вверху, сделал CustomStyle, прицепил его к TEDit, в StyleLookUp стоит всё верно, в designtime отображается всё как нужно - белый прямоугольник. Запускаю на Андроиде - нифига, как был прозрачный с полоской так и остался. Что может быть не так? Есть конечно вариант поместить под TEDit белый прямоугольник, но такой костыль как-то это ненормально выглядит :)

А вы стиль андроида правили? У каждой платформы нужно править свой стиль.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Bohdan
      Всем Привет!

      Платформа ios Delphi 10.2.2, хочу при нажатии на label показывать edit (для редактирования label.) Столкнулся с проблемой:
       Как отследить Tap  за пределами Edit чтобы его скрыть, не могу понять как это сделать.
    • От Wovan2
      Здравствуйте.
      Пишу на Delphi 7. И все было нормально пока не у нас не появился терминал сбора данных на Androide. На Delphi 10 написал простенькое приложение. Но тут встала проблема с занесением данных в поле ввода со сканера штрихкода. В инете нашел, что это дело просто решается интентами. Вообще в windows я подобное делал: вешал процесс, следящий за com-портом, и при появлении данных на нем пересылал их куда надо. В Android должно быть не сложнее. Но я запутался во всей этой куче параметров и функций, передаваемых и получаемых "намерениями".
      В общем вот что мы имеем на данный момент.
      В настройках сканера прописано:
       
      Intent output - android.intent.ACTION_DECODE_DATA Intent string extra - barcode_string На просторах нашел запуск BroadcastReceiver.
      На событие получения сообщения повесил 
      ed.Text := JStringToString(csIntent.getExtras.getString(TJIntent.JavaClass.EXTRA_INTENT)); где csIntent параметр из  BroadcastReceiverOnReceive(csContext: JContext; csIntent: JIntent); Но ничего не выходит. 
      Я подозреваю, что данные из сканера где-то в структуре csIntent. Но, к сожалению, в отладке дальше адреса этой переменной пробраться не получилось.
      Причем строка ed.Text := JStringToString(csIntent.getAction); возвращает в Text название интента: "android.intent.ACTION_DECODE_DATA".
      Помогите разобраться со структурой JIntent. Спасибо.
       
       
    • От Alexander Samosyuk
      Создаю свой компонент с визуализацией Label в Edit, см. рис.
      При компиляции появляется еще одни Label. А при отрисовке формы нельзя скопировать готовый компнонент - выдает ошибку.
      Подскажите, как избавиться от дубликата.
      t
      type    TShowLabel = (Show, Hide);   TEditVisualLabel = class(TEdit)   private   TextLabel : TLabel;   FloatVErt : TFloatAnimation;   FloatSize : TFloatAnimation;   FloatColor : TColorAnimation;     FLabCAp : string;     function GetSHow: TShowLabel;     Procedure SetShow(Value : TShowLabel);     function GetLabelCaption: string;     Procedure SetLabelCaption(Value : string);     function GetLabelFontColor: TAlphaColor;     Procedure SetLabelFontColor(Value : TAlphaColor);     function GetStopValue : Single;     procedure SetStopValue(Value : Single);     function GetStartValue: Single;     procedure SetStartValue(Value : Single);     function GetStopFont: Single;     procedure SetStopFont(Value : Single);     function GetStartFont: Single;     procedure SetStartFont(Value : Single);     { Private declarations }   protected     procedure Enter(Sender : TObject);     procedure Exi(Sender : TObject);     { Protected declarations }   public   { Public declarations }   published   property LabelFontColor : TAlphaColor read GetLabelFontColor write SetLabelFontColor;  property LabelCaption: string read GetLabelCaption write SetLabelCaption;   property LabelPositionStop : Single read GetStopValue write SetStopValue;   property LabelPositionStart : Single read GetStartValue write SetStartValue;   property LabelSizeStopFont : Single read GetStopFont write SetStopFont;   property LabelSizeStartFont: Single read GetStartFont write SetStartFont;   property LabelVisible : TShowLabel read GetSHow write SetSHow default TShowLabel(1);   constructor Create(aowner: TComponent);override;     { Published declarations }   end; procedure Register; implementation procedure Register; begin   RegisterComponents('Samples', [TEditVisualLabel]); end; constructor TEditVisualLabel.Create(aowner: TComponent); var Del: TLabel; Family,Style,FontColor : TStyledSetting; begin  inherited Create(AOwner);   TextLabel := TLabel.create(Self);   TextLabel.Parent := self;                       // Скорее всего, что именно здесь весь затык, почему оно выполняется дважды   TextLabel.StyledSettings := [Family];   TextLabel.Align := TAlignLayout(2);   TextLabel.TextSettings.FontColor := TAlphaColorRec.Silver;   TextLabel.TextSettings.Font.Size := 14;   TextLabel.SetSubComponent(true);   FloatVErt := TFloatAnimation.Create(TextLabel);   FloatVErt.Parent :=  TextLabel;   FloatVErt.PropertyName := 'Position.Y';   FloatVErt.StopValue := -20;   FloatVErt.StartValue := 0;   FloatSize := TFloatAnimation.Create(TextLabel);   FloatSize.Parent :=   TextLabel;   FloatSize.PropertyName := 'TextSettings.Font.Size';   FloatSize.StopValue := 11;   FloatSize.StartValue := 14;   FloatColor := TColorAnimation.Create(TextLabel);   FloatColor.Parent :=   TextLabel;   FloatColor.PropertyName := 'TextSettings.FontColor';   FloatColor.StartValue := TAlphaColorRec.Silver;   LabelFontColor := TAlphaColorRec.Black;   LabelVisible := TShowLabel(0);   TextLabel.Align := TAlignLayout(2);   //TextLabel.Width := 5000;   //FloatColor.StopValue := LabelFontColor;   OnExit := Exi;   OnEnter := Enter;   end; procedure TEditVisualLabel.Enter(Sender : TObject); begin    inherited;   if TextLabel.Position.Y<>FloatVErt.StopValue then begin FloatVErt.Inverse := false; FloatVErt.Start; FloatSize.Inverse := false; FloatSize.Start; FloatColor.Inverse := false; FloatColor.Start end; end; procedure TEditVisualLabel.Exi(Sender: TObject); begin   inherited;  if (Self.Text='') and (TextLabel.Position.Y<>0) then begin FloatVErt.Inverse := true; FloatVErt.Start; FloatSize.Inverse := true; FloatSize.Start; FloatColor.Inverse := true; FloatColor.Start end; end; function TEditVisualLabel.GetLabelCaption: string; begin result := TextLabel.Text; end; function TEditVisualLabel.GetLabelFontColor: TAlphaColor; begin Result := FloatColor.StopValue; end; function TEditVisualLabel.GetSHow: TShowLabel; begin if TextLabel.Visible then Result := TShowLabel(0) else  Result := TShowLabel(1); end; function TEditVisualLabel.GetStartFont: Single; begin Result := FloatSize.StartValue; end; function TEditVisualLabel.GetStartValue: Single; begin Result := FloatVErt.StartValue; end; function TEditVisualLabel.GetStopFont: Single; begin Result := FloatSize.StopValue; end; function TEditVisualLabel.GetStopValue: Single; begin Result := FloatVErt.StopValue; end; procedure TEditVisualLabel.SetLabelCaption(Value: string); begin TextLabel.Text := Value; end; procedure TEditVisualLabel.SetLabelFontColor(Value: TAlphaColor); begin FloatColor.StopValue :=value; end; procedure TEditVisualLabel.SetShow(Value: TShowLabel); begin if Value = TShowLabel(0) then     TextLabel.Visible := true   else    TextLabel.Visible := False; end; procedure TEditVisualLabel.SetStartFont(Value: Single); begin FloatSize.StartValue := Value; TextLabel.TextSettings.Font.Size := Value; end; procedure TEditVisualLabel.SetStartValue(Value: Single); begin FloatVert.StartValue := Value; end; procedure TEditVisualLabel.SetStopFont(Value: Single); begin FloatSize.StopValue := Value; end; procedure TEditVisualLabel.SetStopValue(Value: Single); begin FloatVert.StopValue := Value; end; end.


    • От Sashar333
      Delphi 10,1 berlin
      Здравствуйте!
      Подскажите как отключить на android в TEdit появляющиеся кнопки ВСТАВКА КОПИРОВАТЬ и т.д.
      или как запретить вставлять из буфера в приложении?
      Спасибо!
       
    • От Ufomaster
      При использовании на форме TMS FMX WebGMaps и Edit ов, возникает зависание приложения после повторного входа в эдит и удаления там текста. 
    • От striker
      Всем привет!
      Я новичок в FMX.
      Сталкиваюсь с проблемами различий с VCL.
      Некоторые проблемы:
      1) Текст в edit мышью невозможно выделить, выделение скачет.
      Думаю связано с заточкой под тач, как починить и возможно ли - нигде не нашёл.
      2) Покрасить грид (строчку) в зависимости от значения можно?
      В VCL это делается OnDrawColumnCell
      Спасибо!
    • От Anasazi
      Всем привет. Столкнулся со следующей проблемой после активации tedit при попытке создать любое намерение (для набора номера или открытия ссылки) программа наглухо зависает. И наоборот после создания и выполнения намерения, если перейти к tedit происходит глухое зависание. Тоже самое происходит и с memo.
      Проблема похожа на описанную в этой теме, но решение из нее не помогает
      Чем заменить tedit не знаю, пробовал все возможные варианты. Функции работы с намерениями рабочая и если не активировать tedit то все работает отлично.
      Пробовал на разных устройствах, результат тот же. Правда на всех устройствах был Android 5.
       
      Подскажите пожалуйста, возможно ли под android создать диалоговое окно с вводом текста? Или может быть есть еще какие-нибудь способы ввода текста?
       
    • От Barbanel
      Здравствуйте уважаемые,
      есть форма с множеством TEdit, при этом они не помещаются на один экран и помещена на TScrollBox.
      При скороллинге если скроллить нажимая на подложку (т.е. сам TScrollBox) все работает идеально, если же нажимать на сам TEdit и таким образом скроллить, то выезжает клавиатура, что вобщемто неудобно.
      Вопрос: как настроить приложение/форму/ТСкроллБокс так, чтобы при зажатии и движении пальца вверх/вниз на ТЕдите клавиатура не выезжала?
      На нативных приложениях описанного выше поведения я не замечал.
       
      Заранее спасибо!
       
    • От Euvene
      Добрый день, возникла такая проблемка: при добавлении в ListBoxItem компонента TEdit если поставить ему TControlType::Platform он вылазит за пределы ListBox но при Styled все норм, кто нибудь сталкивался и как с этим бороться?


    • От lala4a
      Доброе время суток .  2 вопроса по Tedit . Помогите , пожалуйста )
      1) Притормаживает ввод текста и выделения .
      2) Внешний вид меню Вставить при длительном тапе по Tedit  отличается от всех других приложений .
       


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу