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

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

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

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

Сообщение Attid » 30.04.2007 21:07:22

после открытия датасета в собитии
dsAfterOpen
вызываем
DBGrid1.Columns.Clear;
приложение умирает. сам использую TJvUIBDataSet
прошу проверить на других.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение alexs » 01.05.2007 02:38:10

Я особо не разбирался - но на первый взгляд там есть проблема при полном удалении всех столбцов (DBGrid1.Columns.Clear) - происходит попытка создания автоматических столбцов - вот тут и циклит где-то
возможнос виновата сама идея такого удаления
моё предположение:
метод Clear у коллекции работает пока не пустой список (кол-во элементов больше нуля)
а в моемент удаления последней колонки DBGrid создаёт автоматические колонки и заполняет ими Columns - вот и получается цикл
это явно баг
причём
у меня циклится на конструкции вида

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  Dbf1.Open;
  DBGrid1.Columns.Clear;
end;
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 01.05.2007 10:03:46

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

Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  Dbf1.Open;
  DBGrid1.DataSourse := nil;
  DBGrid1.Columns.Clear;
  DBGrid1.DataSourse := ds;
end;


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


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

Сообщение alexs » 01.05.2007 11:57:41

IBExpert в руки
сейчас планирую автоматическую обновлялку для скачивания с инета изменённых файлов и натягивания на систему
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 01.05.2007 19:53:20

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

Сообщение alexs » 03.05.2007 01:51:45

а у тебя на какой стадии?
если уже оформилось в код и не жалкор поделиться - то давай делись :-)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Attid » 03.05.2007 10:35:15

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

Сообщение Attid » 03.05.2007 19:56:09

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

Сообщение Attid » 12.05.2007 11:55:45

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

lazarus bugtracker 0008795

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


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru