TRadioGroup 將多個單選鈕封裝為單一元件,內建互斥邏輯,透過 Items(選項清單)與 ItemIndex(目前選中索引)屬性即可完整控制,極適合「單選一」的設定介面。
-1(預設,無選項)、0(第一項)、1(第二項)……延伸前一章 Memo 文字編輯器,加入兩個 RadioGroup:
| 屬性 | RadioGroup1 (顏色) | RadioGroup2 (字型) |
|---|---|---|
| Caption | 顏色 | 字型 |
| Items | 紅色; 藍色; 綠色 | Arial; Symbol; 宋體 |
| ItemIndex | 0 (紅色) | 2 (宋體) |
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text := '這裡是 RadioGroup 元件示例';
Memo1.Font.Color := clRed; // 對應 RadioGroup1 ItemIndex=0
Memo1.Font.Name := '宋體'; // 對應 RadioGroup2 ItemIndex=2
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: Memo1.Font.Color := clRed;
1: Memo1.Font.Color := clBlue;
2: Memo1.Font.Color := clGreen;
end;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0: Memo1.Font.Name := 'Arial';
1: Memo1.Font.Name := 'Symbol';
2: Memo1.Font.Name := '宋體';
end;
end;
Font.StyleFont.Color 與 Font.Namecase 結構,清晰對應索引值關鍵技巧:Font.Style 為集合型別,新增樣式用 + [fsBold],移除用 - [fsBold],避免覆蓋既有樣式。
// 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;
完整原始碼整合所有功能,展示多元件協作構建豐富文字編輯介面的實戰模式。