Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2011, 23:32   #1
Darlee
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 28
По умолчанию Не удаляются объекты (ошибка AccessVolation)

Здравствуйте. Помогите, пожалуйста!

Вот код:
Код:
procedure TForm4.sortClick(Sender: TObject);
var SortBy:TDBComboBox;  asc,desc:TRadioButton;
begin

case Sort.State of
cbChecked:
begin
//------------Создание объектов
SortBy:=TDBComboBox.Create(self);
asc:=TRadioButton.Create(self);
desc:=TRadioButton.Create(self);
//-----------Настройка
SortBy.Left:=35; SortBy.top:=135; SortBy.style:=csOwnerDrawFixed; SortBy.Parent:=TabSheet1; SortBy.DataSource:=DataSource1;
ComboBox(SortBy);
asc.Left:=216; asc.top:=120; asc.width:=102; asc.Height:=25; asc.Caption:='по возрастанию'; asc.parent:=TabSheet1;
desc.Left:=216; desc.top:=148; desc.width:=102; desc.Height:=25; desc.Caption:='по убыванию'; desc.parent:=TabSheet1;
end;

cbUnChecked:
begin
//----Удаление
  SortBy.Free;
  asc.Free;
  desc.Free;
end;
end;
Это событие ЧекБокса. При установлении флажка создаются три объекта. При снятии флажка они, по идее, должны удаляться. Но возникает ошибка Access Volation...

Может быть нельзя так делать: создавать/удалять объекты, переключая флажок? Может, правильней делать их видимыми/невидимыми?

Последний раз редактировалось Darlee; 07.12.2011 в 23:35.
Darlee вне форума Ответить с цитированием
Старый 07.12.2011, 23:39   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

подумайте, куда у вас указывают локальные переменные SortBy, asc и desc при заходе в кейс cbUnChecked. Правильно, вникуда. И вызывать у них .Free бессмысленно.

> Может, правильней делать их видимыми/невидимыми?

скорей всего так будет действительно лучше.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 07.12.2011, 23:55   #3
Darlee
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 28
По умолчанию

Ой, и правда)) Что-то я ступила...
Спасибо!
Darlee вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если длина L >10, то удаляются все a..z Синяя моль Помощь студентам 1 04.02.2011 16:26
почему нули в масиве не удаляются? ribak_dvl Помощь студентам 2 05.12.2010 12:50
Не удаляются #Н/Д Dmitrii_V Microsoft Office Excel 6 01.09.2010 01:27
Не удаляются таблицы с примечанием Golovastik Microsoft Office Word 0 03.06.2010 17:18
Не удаляются лишние пробелы Neurogenus Общие вопросы C/C++ 12 13.05.2010 15:27