Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.09.2009, 19:11
Mikes Mikes вне форума
Прохожий
 
Регистрация: 28.09.2009
Сообщения: 3
Репутация: 10
По умолчанию объект Editbox как параметр функции

Добрый день. Написал следующий код :
Код:
procedure GetCheck ( Buff_box : TCheckBox );
begin
  Form1.CheckBox1.Checked := FALSE;
  Form1.CheckBox2.Checked := FALSE;
  Buff_box.Checked := TRUE;

end;


procedure TForm1.CheckBox1Click(Sender: TObject);
begin
   GetCheck ( Form1.CheckBox1 );

end;

Цель кода следующая - при клике на объект CheckBox1 этот объект посылается как параметр в функцию GetCheck. Смысл этой функции - убрать галочки со всех объектов CheckBox на форме, после чего поставить галочку только в тот CheckBox, который передан параметром. Код работает некорректно, при нажатии на CheckBox1 объект мигает и выкидывает в ассемблерский код. Буду рад помощи. Заранее спасибо.
Ответить с цитированием
  #2  
Старый 28.09.2009, 19:36
Akzes Akzes вне форума
Прохожий
 
Регистрация: 18.02.2009
Сообщения: 27
Репутация: 13
По умолчанию

Код:
function GetCheck(BuffBox: TCheckBox);
var
  i:integer;
begin
  for i := 0 to ControlList.Count - 1 do
     if (TControl(ControlList[i]) is TComboBox) and (TComboBox(ControlList[i]).Name = BuffBox.Name) then
    BuffBox.Checked := True
    else
    BuffBox.Checked := False;
end;
вроде так
Ответить с цитированием
  #3  
Старый 28.09.2009, 20:21
Mikes Mikes вне форума
Прохожий
 
Регистрация: 28.09.2009
Сообщения: 3
Репутация: 10
По умолчанию

Можно, пожалуйста, объяснить в чём была проблема и что именно вы сделали в вашем коде?
Ответить с цитированием
  #4  
Старый 28.09.2009, 20:36
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
procedure GetCheck ( Buff_box : TCheckBox );
var
cnt:integer;
cb :TCheckBox;
begin
for cnt:=1 to ComponentCount do
begin
cb:=TCheckBox(FindComponent('CheckBox'+IntToStr(cnt)));
if cb.Name=Buff_box.Name 
then cb.Checked:=True
else cb.Checked:=False;
end;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #5  
Старый 28.09.2009, 22:06
Mikes Mikes вне форума
Прохожий
 
Регистрация: 28.09.2009
Сообщения: 3
Репутация: 10
По умолчанию

Юрка, спасибо, но есть вопрос - если я буду отрабатывать события с нескольких чекбоксов, например добавлю функцию, то глюки такого же характера остаются.

Код:
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
   GetCheck ( Form1.CheckBox2 );

end;

lmikle: пользуемся тегами!
Ответить с цитированием
  #6  
Старый 28.09.2009, 22:25
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

я буквально вчера делал похожую функцию, вот только процедуру я цеплял одну и ту же на все TCheckbox-ы. Нужно лишь правильно обработать Sender:
Код:
procedure TForm1.CheckBox1Click (Sender : TObject );
var
cnt:integer;
cb :TCheckBox;
cbName:string;
begin
cbName:=(Sender as TCheckBox).Name;
for cnt:=1 to ComponentCount do
begin
cb:=TCheckBox(FindComponent('CheckBox'+IntToStr(cnt)));
if cb.Name=cbName
then cb.Checked:=True
else cb.Checked:=False;
end;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #7  
Старый 28.09.2009, 22:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще-то, для этих целей есть специальный компонент - TRadioGroup
Ответить с цитированием
  #8  
Старый 28.09.2009, 22:33
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Цитата:
Сообщение от lmikle
Вообще-то, для этих целей есть специальный компонент - TRadioGroup

Я тоже над этим думал ... но видимо RadioGroup чем-то не угодил автору
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter