DBGrid1.Columns.Clear; ошибка при открытии

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

DBGrid1.Columns.Clear; ошибка при открытии

Сообщение Attid »

после открытия датасета в собитии
dsAfterOpen
вызываем
DBGrid1.Columns.Clear;
приложение умирает. сам использую TJvUIBDataSet
прошу проверить на других.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Я особо не разбирался - но на первый взгляд там есть проблема при полном удалении всех столбцов (DBGrid1.Columns.Clear) - происходит попытка создания автоматических столбцов - вот тут и циклит где-то
возможнос виновата сама идея такого удаления
моё предположение:
метод 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
Контактная информация:

Сообщение Attid »

угу на такую и у меня клинит, я потом это обнаружил не стал дописывать.
костыли можно сделать такие :

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
begin
  Dbf1.Open;
  DBGrid1.DataSourse := nil;
  DBGrid1.Columns.Clear;
  DBGrid1.DataSourse := ds;
end;


надо будет глянуть почему циклится.
пока записал в мантис 8795


офтоп
alexs, а ты методаные в огнептичке каким образом по клиентам обновляешь ?
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

IBExpert в руки
сейчас планирую автоматическую обновлялку для скачивания с инета изменённых файлов и натягивания на систему
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

IBExpert это понятно, пользуем =)
клиенту же не буду расказывать что и куда =)
понял, тоже подобное делаю =)
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

а у тебя на какой стадии?
если уже оформилось в код и не жалкор поделиться - то давай делись :-)
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

стадия разработки еще не отладки,
а код у меня в основном приложении, но посмотрю что тамдернуть можно.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

а все оказывается намного хуже чем я предпологал =)
думал теме же UIB подойти, а там еще не так просто.
наверно буду юзать isql.
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

DBGrid1.Columns.Clear;
приложение умирает.

lazarus bugtracker 0008795

Fixed in Revision 11054
Ответить