Делал подобное, но с двумя кнопками. Т.е. может быть "включено" одновременно не более одной.
С тремя, полагаю, аналогично
Пусть есть три кнопки на диалоговом окне:
cb_1: TCheckBox;
cb_2: TCheckBox;
cb_3: TCheckBox;
Вешаем на них (на каждую) процедуры-обработчики OnClick.
Смысл обработчика: если кнопка включается, то принудительно
выключить соседние. Если выключается, то ничего дополнительно
не предпринимать.
Код: Выделить всё
procedure TMyForm.cb_1YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_1.Checked) then begin
cb_2.Checked := FALSE;
cb_3.Checked := FALSE;
end;
end;
procedure TMyForm.cb_2YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_2.Checked) then begin
cb_1.Checked := FALSE;
cb_3.Checked := FALSE;
end;
end;
procedure TMyForm.cb_3YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_3.Checked) then begin
cb_1.Checked := FALSE;
cb_2.Checked := FALSE;
end;
end;
Делал подобное, но с двумя кнопками. Т.е. может быть "включено" одновременно не более одной.
С тремя, полагаю, аналогично
Пусть есть три кнопки на диалоговом окне:
cb_1: TCheckBox;
cb_2: TCheckBox;
cb_3: TCheckBox;
Вешаем на них (на каждую) процедуры-обработчики OnClick.
Смысл обработчика: если кнопка включается, то принудительно
выключить соседние. Если выключается, то ничего дополнительно
не предпринимать.
[code]
procedure TMyForm.cb_1YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_1.Checked) then begin
cb_2.Checked := FALSE;
cb_3.Checked := FALSE;
end;
end;
procedure TMyForm.cb_2YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_2.Checked) then begin
cb_1.Checked := FALSE;
cb_3.Checked := FALSE;
end;
end;
procedure TMyForm.cb_3YClick(Sender: TObject);
begin
// Если кнопка включена, то выключаем "соседние" кнопки
if (cb_3.Checked) then begin
cb_1.Checked := FALSE;
cb_2.Checked := FALSE;
end;
end;[/code]