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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.11.2011, 12:45
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию DBGrid дублирует записи при запуске

Здаров всем. У меня появилась такая проблемка: при первом показе формы, когда нажимаешь кнопку "вниз" скроллбара DBGrid записи дублируются в таком виде:
1
2
3
1
2
3
При прокрутке до конца или при разворачивании формы такой эффект пропадает.
Ответить с цитированием
  #2  
Старый 10.11.2011, 13:06
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Last Living Man
Здаров всем. У меня появилась такая проблемка: при первом показе формы, когда нажимаешь кнопку "вниз" скроллбара DBGrid записи дублируются в таком виде:
1
2
3
1
2
3
При прокрутке до конца или при разворачивании формы такой эффект пропадает.

А у грида какие события прописаны (вкладка events)?
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 10.11.2011, 13:09
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию

Цитата:
Сообщение от Ildar-tsr
А у грида какие события прописаны (вкладка events)?
GridDrawColumnCell
GridKeyDown
Ответить с цитированием
  #4  
Старый 10.11.2011, 13:16
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Last Living Man
GridDrawColumnCell
GridKeyDown

Из этих событий только drawcolumncell вызывается при любом нажатии на грид. Что там прописано?
__________________
Google в помощь
Ответить с цитированием
  #5  
Старый 10.11.2011, 13:26
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию

Цитата:
Сообщение от Ildar-tsr
Из этих событий только drawcolumncell вызывается при любом нажатии на грид. Что там прописано?
Там прописана отрисовка картинки в зависимости от значения поля.
Пробовал делал событие в nil - не помогло... Закоментарил все что обращается к грид, убрал дабл буффер - тож не помогает(((
Походу баг какойто...

Помогает только windowstate = wsmaximized...
Ответить с цитированием
  #6  
Старый 10.11.2011, 13:43
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Last Living Man
Там прописана отрисовка картинки в зависимости от значения поля.
Пробовал делал событие в nil - не помогло... Закоментарил все что обращается к грид, убрал дабл буффер - тож не помогает(((
Походу баг какойто...

Помогает только windowstate = wsmaximized...

Понятно Я просто думал, что может быть какая-то тяжелая операция с БД в drawcolumn весит. Я с подобного рода графическими косяками сталкивался только во время выполнения какого-нибудь адского запроса к базе данных.
__________________
Google в помощь
Ответить с цитированием
  #7  
Старый 10.11.2011, 13:44
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию

Кажись нашел проблему:
DBGrid находится на TabSheet, а у того в OnShow прописано:
with Table do
begin
MasterSource := nil;
IndexFieldNames := '';
MasterFields := '';
RecNo := posmem;
end;
Ответить с цитированием
  #8  
Старый 10.11.2011, 14:03
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Last Living Man
Кажись нашел проблему:
DBGrid находится на TabSheet, а у того в OnShow прописано:
with Table do
begin
MasterSource := nil;
IndexFieldNames := '';
MasterFields := '';
RecNo := posmem;
end;

И если этот участок кода закомментировать, эффект задвоения пропадает?
__________________
Google в помощь
Ответить с цитированием
  #9  
Старый 10.11.2011, 14:14
Last Living Man Last Living Man вне форума
Прохожий
 
Регистрация: 10.11.2011
Сообщения: 25
Репутация: 513
По умолчанию

Цитата:
Сообщение от Ildar-tsr
И если этот участок кода закомментировать, эффект задвоения пропадает?

Ага, вот теперь все ништяк:
with Table do
if Assigned(MasterSource) then
begin
MasterSource := nil;
IndexFieldNames := '';
MasterFields := '';
RecNo := posmem;
end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter