2009-07-26 25 views
8

Tôi có tổng cộng 4 nút vô tuyến trên biểu mẫu của mình, tôi muốn đặt hai nút đầu tiên trong một nhóm và hai nút thứ hai trong một nhóm khác để tôi có thể kiểm tra một từ nhóm đầu tiên và nhóm từ nhóm thứ hai.Làm thế nào để thiết lập hai radio trong một nhóm và hai trong một nhóm khác?

Ngay bây giờ, nếu tôi kiểm tra một từ nhóm đầu tiên, nhóm từ nhóm thứ hai sẽ bị bỏ chọn.

Tôi đã luôn luôn tự hỏi làm thế nào để làm điều này và tôi tin rằng bây giờ là lúc để tìm ra điều này. :)

Trả lời

13

Để trích dẫn từ tin cậy Delphi 5 giúp đỡ:

Theo mặc định, tất cả các nút radio được chứa trực tiếp trong cùng một container điều khiển cửa sổ, chẳng hạn như một TRadioGroup hoặc TPanel, được nhóm lại. Ví dụ, hai nút radio trên một biểu mẫu có thể được kiểm tra cùng một lúc chỉ khi chúng được chứa trong các thùng chứa riêng biệt, chẳng hạn như hai hộp nhóm khác nhau.

+0

Đồng ý. Nhóm Radiobutton dựa trên mối quan hệ cha mẹ/con. Để có nhiều nhóm nút, bạn phải sử dụng nhiều điều khiển Chính. –

2

Đặt hai nút trên bảng điều khiển và hai nút khác trên bảng điều khiển khác. Bằng cách đó, chúng sẽ được coi là các nhóm riêng biệt. Thay đổi bevels bảng điều khiển để loại bỏ các cạnh, và bốn nút sẽ không nhìn vào người dùng như thể chúng được tách ra, nếu đó là những gì bạn muốn.

0

RadioButton không có thuộc tính GroupIndex, giống như SpeedButton.

Sẽ dễ dàng hơn nhiều nếu có, vì bạn có thể sử dụng các số để tạo bộ RadioButton chỉ tương tác với các bộ của cùng một số được đặt trong GroupIndex.

Vì vậy, tất cả những gì bạn có thể làm là đưa chúng vào trong một điều khiển nhóm, như Bảng điều khiển.

Nhưng bạn luôn có thể xây dựng phiên bản RadionButton của riêng bạn với các thuộc tính mới khác nhau. :)

0

Đây là lý do chúng tôi sử dụng Groupbox và Radiogroups (Có thể tìm thấy tại các điều khiển tiêu chuẩn). Tôi khuyên bạn nên tạo 2 Groupbox và đặt 2 radiobutton trong mỗi cái. Sau đó, bạn sẽ có thể kiểm tra 2 radiobuttons.

Bạn cũng có thể chọn tiêu đề cho hộp nhóm. Đây là một cách rất hay để tổ chức mẫu đơn của bạn

0

Điều này thật tuyệt vời khi nút radio của cùng một nhóm có thể ở hàng hoặc cột, nhưng nếu nút radio phải được hiển thị theo kiểu X (hoặc theo cách phức tạp hơn)):

A B 
C D 

Hạn chế cho rằng mẫu X phong cách tôi đặt:

  • A có mối quan hệ với D (A và D không thể được kiểm tra cùng lúc, kiểm tra một unchecks khác)
  • C có quan hệ với B (C và B không thể được kiểm tra cùng một lúc, đánh dấu một ô kiểm tra khác)

Nó được yêu cầu trực quan theo kiểu X, vì vậy tôi không thể đặt bất kỳ GroupBox nào giữ RadioButton đó vì GroupBox là hình chữ nhật chứ không phải đường chéo.

Tôi không biết bất kỳ sửa chữa chỉ sử dụng các thành phần tiêu chuẩn, trong đó có một hack để làm cho bảng trực quan minh bạch và cũng có thể nhấp qua có thể, vì vậy cả hai tấm là một hình vuông, một trong khác.

Nhưng điều gì về việc có các nút radio rất xa nhau, với nhiều thành phần phức tạp, bảng lưu lượng, bản ghi nhớ, v.v ...?

Các lựa chọn duy nhất là sử dụng các thành phần của bên thứ ba (cuối cùng lên đến những gì tôi biết) hoặc để làm rất nhiều công việc khó khăn:

  1. Tạo một bảng cho mỗi RadioButton với cùng kích thước chính xác và vị trí như RadioButton; điều này làm cho nút radio không bỏ chọn bất kỳ thứ gì khác, vì vậy cần thêm mã.
  2. Thêm mã cho mỗi RadioButton, vì vậy khi được kiểm tra, hãy bỏ chọn tất cả các liên kết có liên quan đến nó (những thứ không được kiểm tra cùng một lúc).

Quá nhiều công việc cho một thứ có thể đã được triển khai trên một thuộc tính đơn giản như RadioGroupIndex, nếu được gán giá trị 0 thì hoạt động ngay bây giờ, hãy bỏ chọn chỉ cho cùng một nhóm ... menu chính.

Các vấn đề liên quan