DBGrid1.Columns.Clear; ошибка при открытии
Модератор: Модераторы
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
DBGrid1.Columns.Clear; ошибка при открытии
после открытия датасета в собитии
dsAfterOpen
вызываем
DBGrid1.Columns.Clear;
приложение умирает. сам использую TJvUIBDataSet
прошу проверить на других.
dsAfterOpen
вызываем
DBGrid1.Columns.Clear;
приложение умирает. сам использую TJvUIBDataSet
прошу проверить на других.
- alexs
- долгожитель
- Сообщения: 4069
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Я особо не разбирался - но на первый взгляд там есть проблема при полном удалении всех столбцов (DBGrid1.Columns.Clear) - происходит попытка создания автоматических столбцов - вот тут и циклит где-то
возможнос виновата сама идея такого удаления
моё предположение:
метод Clear у коллекции работает пока не пустой список (кол-во элементов больше нуля)
а в моемент удаления последней колонки DBGrid создаёт автоматические колонки и заполняет ими Columns - вот и получается цикл
это явно баг
причём
у меня циклится на конструкции вида
возможнос виновата сама идея такого удаления
моё предположение:
метод Clear у коллекции работает пока не пустой список (кол-во элементов больше нуля)
а в моемент удаления последней колонки DBGrid создаёт автоматические колонки и заполняет ими Columns - вот и получается цикл
это явно баг
причём
у меня циклится на конструкции вида
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
Dbf1.Open;
DBGrid1.Columns.Clear;
end;
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
угу на такую и у меня клинит, я потом это обнаружил не стал дописывать.
костыли можно сделать такие :
надо будет глянуть почему циклится.
пока записал в мантис 8795
офтоп
alexs, а ты методаные в огнептичке каким образом по клиентам обновляешь ?
костыли можно сделать такие :
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
Dbf1.Open;
DBGrid1.DataSourse := nil;
DBGrid1.Columns.Clear;
DBGrid1.DataSourse := ds;
end;
надо будет глянуть почему циклится.
пока записал в мантис 8795
офтоп
alexs, а ты методаные в огнептичке каким образом по клиентам обновляешь ?
