預設 TEdit 文字靠左對齊,若需靠右(如金額輸入),有兩種常見做法:直接修改視窗樣式,或建立繼承元件複寫 CreateParams。
適用於少數控件需右對齊的情況,在 OnCreate 或 OnShow 中執行:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_RIGHT);
適合專案大量使用,封裝行為於元件內部:
type
TMyEdit = class(TEdit)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or ES_RIGHT;
end;
| 做法 | 優點 | 缺點 |
|---|---|---|
| API 呼叫 | 無需新增元件,即時生效 | 分散在各表單,維護不便 |
| 元件繼承 | 封裝完整,拖放即用,支援設計期預覽 | 需安裝至元件調色盤 |
ES_RIGHT 定義於 Winapi.Windows 單元,值為 $0002。