|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.08.2008, 20:05 | #1 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
При переключении между чекбоксами - ошибка Stack overflow. Как исправить эту ошибку?
Добрый вечер!
Тестировано на Delphi 2007 win32 и Windows Vista Home Basic. Проблемы с компонентом TCheckBox. Вот два варианта кода: procedure TForm1.CheckBox1Click(Sender: TObject); // var i : Integer; begin { for i := 0 to GroupBox1.ControlCount-1 do begin if TComponent(Sender).Tag = i then (GroupBox1.Controls[i] as TCheckBox).Checked := True else (GroupBox1.Controls[i] as TCheckBox).Checked := False; end; } if Sender = CheckBox1 then begin CheckBox1.Checked := True; CheckBox2.Checked := False; CheckBox3.Checked := False; CheckBox4.Checked := False; end else if Sender = CheckBox2 then begin CheckBox1.Checked := False; CheckBox2.Checked := True; CheckBox3.Checked := False; CheckBox4.Checked := False; end else if Sender = CheckBox3 then begin CheckBox1.Checked := False; CheckBox2.Checked := False; CheckBox3.Checked := True; CheckBox4.Checked := False; end else if Sender = CheckBox4 then begin CheckBox1.Checked := False; CheckBox2.Checked := False; CheckBox3.Checked := False; CheckBox4.Checked := True; end; end; Финал один при переключении между чекбоксами выдает компиллятор следующую ошибку: --------------------------- Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EStackOverflow with message 'Stack overflow'. --------------------------- Break Continue Help --------------------------- В чем проблема? Спасибо. |
26.08.2008, 20:43 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
проблема в рекурсивном вызове OnCheckBoxClick.
Checkbox1.checked:=чтото внутри себя имеет вызов OncheckboxClick там опять checked:= и все по новой если должен быть отмечен только один пункт то лучше использовать RadioButton или даже RadioGroupBox
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 26.08.2008 в 20:47. |
26.08.2008, 20:50 | #3 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Не совсем понятно, тогда почему же в делфи 7 подобный код работал нормально? если не затруднительно можно объяснить более подробно. Спасибо.
|
26.08.2008, 20:51 | #4 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Может это имеет отношении специфически для делфи 2007? Кто-нибудь сталкивался с такой проблемой? Спасибо.
|
26.08.2008, 21:13 | #5 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Цитата:
|
|
26.08.2008, 21:32 | #6 |
Форумчанин
Регистрация: 05.04.2008
Сообщений: 244
|
Спасибо. Хотя у меня работало. Не могу понять почему, может каие другие процессы что-то перекрывали, но работало. Спасибо еще раз. Я думал, что может это связано с дефектом делфи 2007 или может каких-то компонентов, которые я установил. Потому и обратился за разъснением.ю. Спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исправить ошибку | LLIypLLIyH | Помощь студентам | 5 | 16.06.2008 16:50 |
Помогите исправить ошибку | Булат | Общие вопросы Delphi | 3 | 25.04.2008 10:01 |
Stack Overflow??? | Рустам | Общие вопросы Delphi | 7 | 01.04.2008 17:24 |
помогите исправить ошибку. | alen666 | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 08.03.2008 16:43 |
MySQL как исправить ошибку | Dengar | PHP | 8 | 03.03.2008 03:29 |