TButtonedEdit 在編輯框左右兩側內嵌按鈕,支援圖標、熱態、按下態、禁用態四種狀態圖片,適用於搜索框、密碼顯示切換、瀏覽文件等場景。
效果圖:

procedure TForm1.FormCreate(Sender: TObject);
begin
ButtonedEdit1.Alignment := taCenter;
ButtonedEdit1.Images := ImageList1;
{左側按鈕設置}
ButtonedEdit1.LeftButton.Visible := True;
ButtonedEdit1.LeftButton.HotImageIndex := 0;
ButtonedEdit1.LeftButton.ImageIndex := 1;
ButtonedEdit1.LeftButton.PressedImageIndex := 2;
ButtonedEdit1.LeftButton.DisabledImageIndex := 6;
{右側按鈕設置}
ButtonedEdit1.RightButton.Visible := True;
ButtonedEdit1.RightButton.HotImageIndex := 3;
ButtonedEdit1.RightButton.ImageIndex := 4;
ButtonedEdit1.RightButton.PressedImageIndex := 5;
ButtonedEdit1.RightButton.DisabledImageIndex := 6;
end;
procedure TForm1.ButtonedEdit1LeftButtonClick(Sender: TObject);
begin
ButtonedEdit1.Text := ' LeftButton ';
ButtonedEdit1.SelectAll;
end;
procedure TForm1.ButtonedEdit1RightButtonClick(Sender: TObject);
begin
ButtonedEdit1.Text := ' RightButton ';
ButtonedEdit1.SelectAll;
end;
procedure TForm1.Button1Click(Sender: TObject); {動態切換按鈕啟用狀態}
begin
ButtonedEdit1.LeftButton.Enabled := not ButtonedEdit1.LeftButton.Enabled;
ButtonedEdit1.RightButton.Enabled := not ButtonedEdit1.RightButton.Enabled;
end;
object Form1: TForm1
object ButtonedEdit1: TButtonedEdit
Left = 24; Top = 36; Width = 153; Height = 21
TabOrder = 0; Text = 'ButtonedEdit1'
OnLeftButtonClick = ButtonedEdit1LeftButtonClick
OnRightButtonClick = ButtonedEdit1RightButtonClick
end
object Button1: TButton
Left = 64; Top = 70; Width = 75; Height = 25
Caption = 'Button1'; TabOrder = 1; OnClick = Button1Click
end
object ImageList1: TImageList ... {內嵌 7 個 16x16 圖標的十六進制數據}
end
end
關鍵屬性: Images 關聯 TImageList;各按鈕的 ImageIndex/HotImageIndex/PressedImageIndex/DisabledImageIndex 分別對應正常/懸停/按下/禁用四種狀態。