2016-04-07 23 views
3

私はDelphi Seattleを使用しています。私のアプリケーションはWindowsデスクトップ用です。Firemonkey TEditの高さ

私はTEditのフォントサイズを変更しようとしています。その結果、高さも変更されました。設計時にはすべてうまく動作しますが、アプリケーションを実行すると、TEditは高さの変更を無視してテキストを切り捨てます。

FixedHeightは、hereとして提案されていますが、このプロパティが見つかりませんでした。

TEdit Heigthを変更することはできますか?

+0

に設定する追加の線は必要ありません。http://codeverge.com/embarcadero.delphi.firemonkey/howtoto -change-the-height-in-at/1060266 –

+0

@LURD素晴らしい!できます!評判を得るために私の質問に答えたいですか? –

答えて

4

これは、コントロールのAdjustFixedSizeメソッドをオーバーライドすることで解決できます。 は、AS @chrisrolliston、Removing a FMX control’s size restrictionsによって説明とhereを例示:

unit Unit4; 

interface 

uses 
    System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
    FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit, MyTEdit; 

type 
    TForm4 = class(TForm) 
    Edit1: TEdit; 
    procedure FormCreate(Sender: TObject); 
    private 
    { private } 
    public 
    { public } 
    end; 

var 
    Form4: TForm4; 

implementation 

{$R *.fmx} 

procedure TForm4.FormCreate(Sender: TObject); 
begin 
    Edit1.Height := 60; 
end; 

end. 

unit MyTEdit; 

interface 

uses 
    FMX.Edit, FMX.Controls; 

type 
    TEdit = class(FMX.Edit.TEdit) 
    protected 
    procedure AdjustFixedSize(const Ref: TControl); override; 
    end; 

implementation 

uses 
    FMX.Types; 

procedure TEdit.AdjustFixedSize(const Ref: TControl); 
begin 
    SetAdjustType(TAdjustType.None); 
end; 

end. 
1

あなたがあなた自身の編集をサブクラス化して作成する必要がしたくない場合は、これを処理するための別の方法は、不正行為を使用することですこれを実行するキャスト。これにより、保護された編集方法(SetAdjustType)にアクセスできます。次の例では、wwedit3という名前の編集があると想定しています。

type 
    THackStyledControl = class(TStyledControl); 

procedure TValidationDemoForm.FormCreate(Sender: TObject); 
begin 
    wwedit3.ApplyStyleLookup; // Necessary or AdjustType gets overwritten 
    THackStyledControl(wwedit3) // Removes fixed height 
     .SetAdjustType(TAdjustType.None); 
    wwedit3.height:= 60; // Reset the height to desired value 
end; 

これはうまくいきますが、サイズをハードコーディングしている場合は、コードが上記のように明示的に高さプロパティをリセットする必要があります。代わりにalignプロパティを使用して編集コントロールを配置する場合は、wwedit3 .heightを6

関連する問題