首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi RadioButton 與 CheckBox 核心差異與應用:互斥單選 vs 多重核取

     編輯:Delphi

兩大布林輸入元件深度對比與實戰整合

TRadioButton(單選鈕)與 TCheckBox(核取方塊)同屬布林狀態輸入元件,核心差異在於互斥性:同一容器(表單、GroupBox、RadioGroup)內的 RadioButton 同一時間僅能選中一個;CheckBox 則可獨立多選、全不選。

核心屬性:Checked

  • 兩者皆有 Checked: Boolean 屬性,True 表示選中
  • 程式碼可讀寫此屬性檢測或設定狀態

實戰專案:擴充文字編輯器字型樣式控制

在 Memo 編輯器基礎上,加入三組 RadioButton 控制顏色、三個 CheckBox 控制樣式:

介面配置

  • RadioButton1/2/3:Caption 分別為紅色/藍色/綠色,RadioButton1 預設 Checked = True
  • CheckBox1/2/3:Caption 分別為粗體/斜體/底線,預設全 False

RadioButton 點擊事件:互斥切換顏色

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  if RadioButton1.Checked then Memo1.Font.Color := clRed;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  if RadioButton2.Checked then Memo1.Font.Color := clBlue;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  if RadioButton3.Checked then Memo1.Font.Color := clGreen;
end;

注意:RadioButton 互斥由 VCL 自動處理,點擊任一按鈕會自動取消同容器內其他按鈕的 Checked,故只需在各自事件中檢查 Checked = True 即可。

CheckBox 點擊事件:獨立疊加/移除樣式

procedure TForm1.CheckBox1Click(Sender: TObject);  // 粗體
begin
  if CheckBox1.Checked then
    Memo1.Font.Style := Memo1.Font.Style + [fsBold]
  else
    Memo1.Font.Style := Memo1.Font.Style - [fsBold];
end;

procedure TForm1.CheckBox2Click(Sender: TObject);  // 斜體
begin
  if CheckBox2.Checked then
    Memo1.Font.Style := Memo1.Font.Style + [fsItalic]
  else
    Memo1.Font.Style := Memo1.Font.Style - [fsItalic];
end;

procedure TForm1.CheckBox3Click(Sender: TObject);  // 底線
begin
  if CheckBox3.Checked then
    Memo1.Font.Style := Memo1.Font.Style + [fsUnderline]
  else
    Memo1.Font.Style := Memo1.Font.Style - [fsUnderline];
end;

關鍵設計模式對比

特性RadioButton (單選鈕)CheckBox (核取方塊)
互斥性同容器內自動互斥完全獨立,可多選
適用場景單一選項:顏色、性別、付款方式多重選項:功能開關、興趣標籤、權限勾選
容器管理建議放入 GroupBox 或 RadioGroup可獨立放置或群組
程式碼模式各自 OnClick 檢查 Checked各自 OnClick 用集合加減操作

進階建議

  • 需「單選一」且選項固定 → 優先用 TRadioGroup(內建 Items/ItemIndex,程式碼更簡潔)
  • 需動態增減選項、自訂排版 → 用 TRadioButton + TGroupBox
  • CheckBox 狀態儲存 → 直接對應資料庫 Boolean 欄位或 INI 檔設定值

完整專案原始碼整合 Memo 編輯器、剪貼簿、檔案操作、字型顏色/樣式控制,展示標準對話框元件協作開發完整表單應用的典型架構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved