FMX TEditのTextPromptのカスタムについて


jun0620  2026-04-26 12:32:16  No: 152255

現在、AndroidアプリでTEditのTextPromptのTextAlignとFontColorを変更したいです。

通常のTextプロパティはTextAlignをLeadingで、FontColorはBlackのままで、入力されていない時の表示は、TextAlignをCenterで、FontColorはRedにしたいです。

カスタムスタイルの編集から、EditStyleのPromptオブジェクト?を編集しても、Opacityは適用されるけど、TextAlignとFontColorを設定しても、反映されないです。
TextSettingsだったかStyledSettingsはすでに外しています。

原因がわからないので、解決できる方教えて欲しいです。


mam  2026-04-27 16:33:56  No: 152258

外していたらすいません。以下は如何でしょうか。

procedure TForm1.Edit1ApplyStyleLookup(Sender: TObject);
var
  PromptObj: TFmxObject;
begin
  PromptObj := Edit1.FindStyleResource('prompt');
  if PromptObj is TLabel then
  begin
    TLabel(PromptObj).FontColor := TAlphaColorRec.Red;
    TLabel(PromptObj).TextAlign := TTextAlign.Center;
  end;
end;


AAAAA  2026-04-27 19:48:41  No: 152259

こういうこと?
procedure TForm2.Edit1ChangeTracking(Sender: TObject);
begin
    if Edit1.Text = '' then
    begin
      Edit1.TextSettings.FontColor := TAlphaColorRec.Red;
      Edit1.TextSettings.HorzAlign := TTextAlign.Center;
    end
    else
    begin
      Edit1.TextSettings.FontColor := TAlphaColorRec.Black;
      Edit1.TextSettings.HorzAlign := TTextAlign.Leading;
    end;
end;


jun0620  2026-04-27 21:28:20  No: 152260

ありがとうございます。
上記のコードをFormCreate時に試したときはできなかったので、タイミングかなと思いつつ、
お二人のイベント内で実行してみようと思います。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加