2012-02-21 11 views

Trả lời

6

Tùy chọn gboGroupStyle trong thuộc tính TButtonGroup.ButtonOptions không có gì để làm với GroupIndex như đã biết, ví dụ: từ TSpeedButton.

Setting của gboGroupStyle tùy chọn để True cho phép bạn:

  • thiết lập TButtonGroup.ItemIndex tài sản, do đó bạn có thể ấn định trước nút đó sẽ được tập trung như mặc định, không có gì mát
  • nhấp vào nút với ENTER hoặc SPACE phím, điều gì sẽ kích hoạt sự kiện TGrpButtonItem.OnClick mục nút (nếu được chỉ định), thực hiện tác vụ hoặc kích hoạt sự kiện TButtonGroup.OnButtonClicked

Tôi đồng ý với tên của điều này là khá gây hiểu lầm, nhưng đó là những gì tôi tìm thấy trong mã nguồn từ Delphi-XE2.

+1

Tôi đã nhận được khá nhiều điều này đến nay bản thân mình, nhưng TLama cũng có thể nhận được đại diện vì đây là câu trả lời hoàn chỉnh nhất. Tôi nghĩ rằng với gboGroupStyle tốt nhất là nghĩ về TButtonGroup như một TRadioGroup, trong đó nó có một mục được chọn duy nhất. – Alister

3

gboGroupStyle làm cho nhóm TButtonGroup hoạt động như một nhóm - điều đó có nghĩa, một và chỉ một nút được chọn tại một thời điểm nhất định. Nó tương tự như nhóm một số TSpeedButtons với GroupIndex, trong đó chỉ có một nút bên trong nhóm đó được chọn bất cứ lúc nào. Nút hiện đang được chọn có thể được đọc và ghi thông qua thuộc tính ItemIndex của TButtonGroup. Để hình dung nút được chọn, người ta có thể thực hiện một trình xử lý OnBeforeDrawButton hoặc OnDrawButton.

+2

Tôi không nghĩ điều này là chính xác vì không có khái niệm "xuống" cho một nhóm TButtonGroup. Dường như gboGroupStyle ảnh hưởng đến cách tính năng ItemIndex hoạt động. – Alister

+0

Có, "xuống" thực sự có nghĩa là một phép ẩn dụ có liên quan đến tham chiếu TSpeedButton. Ý tưởng là chỉ định một nút đã chọn, tuy nhiên, có thể được hiển thị trực quan (ví dụ: trong OnBeforeDrawButton). –

2

Từ thử nghiệm của tôi, có vẻ như nếu gboGroupStyle được sử dụng thì thuộc tính ItemIndex có thể được đặt thành giá trị khác -1, sao cho nút TButtonGroup nhớ nút cuối cùng đã được nhấn.