Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Убрать пустую строку в DBGrid [D7]


Страницы:   1 2

AMogil ©   (2004-01-10 11:49:00) 

Здравствуйте, уважаемые.

Если DbGrid подключен к dataset"у, в котором отсутсвуют записи, то у него появляется пустая строка. Как от этого избавиться?


Polevi   (2004-01-11 14:13:00) [1]

procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
begin
...
...
if Datalink.RecordCount=0 then
RowHeights[FTitleOffset]:=-1
else
RowHeights[FTitleOffset]:=DefaultRowHeight;
...
...
end;


AMogil   (2004-01-11 13:14:00) [2]

Polevi
Как, если не секрет?


Polevi   (2004-01-11 12:12:00) [3]

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


AMogil   (2004-01-11 09:38:00) [4]

kaif: Вообще идея хорошая, отключать все что ты сказал ставить к тому же Enabled:=False и отрисвывать самостоятельно заголовки колонок


kaif   (2004-01-11 00:54:00) [5]

А ты в опциях грида отключи при пустом наборе:
goVertLines, goHorLines, goIndicator и titl-ы тоже. Я думаю тогда в гриде вообще нифига не останется и будет всем счастье и кайф полный. А вообще я тебя понимаю. Меня тоже эта фишка всегда раздражала в гриде. Хрен отличишь одну пустую запись от ни одной вообще.


AMogil   (2004-01-11 00:47:00) [6]

WithOut Any: не работает так. Похоже действительно есть только два варианта:
1. Anatoly Podgoretsky
2. sniknik. Но вот при пустом гриде OnDrawDataCell и OnDrawColumnCell не срабатывают. Так что же весь грид самому перерисовывать?


sniknik   (2004-01-10 19:05:00) [7]

возьми на себя отрисовку грида, да и не рисуй ничего когда пусто и фокус не допускай.
проблема то похоже не в том что там есть чтото а в том что чтото видно.


WithOut Any ...   (2004-01-10 18:39:00) [8]

Предварительно проверь как предложил
Vemer © (10.01.04 14:03) [8]
Просто отключай DataSource когда .recordCount = 0.

А дальше думай какое сообщение в этом случае выдать сообщение юзеру. А в "выкладывании" шанки грида без строк я, во всяком случае, не вижу никакого смысла


AMogil   (2004-01-10 17:23:00) [9]

Desdechado: кривостью. Нелогично. Таблица пуста - а грид показывает что есть пустая строка. Нам то это понятно, но вот пользователю, который смутно себе представляет работы БД нет.


AMogil   (2004-01-10 17:23:00) [10]

Desdechado: кривостью. Нелогично. Таблица пуста - а грид показывает что есть пустая строка. Нам то это понятно, го вот пользователю, который смутно себе представляет работы БД нет.


Desdechado   (2004-01-10 15:18:00) [11]

а чем она мешает?


Vemer   (2004-01-10 15:17:00) [12]

В догонку - тоже не поможет, если в DBGrid колонки созданы...


Vemer   (2004-01-10 15:16:00) [13]

Сорри, перепутал, "треугольник" исчезает. Надо или Датасет закрывать, иди DataSourse от Датасета отсоединять.


AMogil   (2004-01-10 15:14:00) [14]

Vemer: но и в этом случае пустая строка в гриде остается.


AMogil   (2004-01-10 15:13:00) [15]

А в пустом гриде фокус и не нужен. Вставка записей не производится непосредственно в гриде


Anatoly Podgoretsky   (2004-01-10 14:09:00) [16]

Фокус то куда ставить в таком гриде? Заголовки фокуса не принимают. Ну если очень хочешь иметь такой грид, то тебе надо делать свою реализацию.


Vemer   (2004-01-10 14:03:00) [17]

Просто отключай DataSource когда .recordCount = 0.


AMogil   (2004-01-10 13:39:00) [18]

Нет. Нужно немного другое. Представь что есть пустая таблица. DbGrid: ReadOnly:=True. При открытии формы с таким гридом наблюдается пустая строка. Так вот, как ее убрать. Т.е. чтобы при показе такого грида, присоедененного к пустой таблице наблюдались ьолбко заголовки колонок.


bobtubob   (2004-01-10 13:28:00) [19]

ели ты стоиш на первой пустой светится треугольник
Спускаешся ниже - звёздочка на второй строке!
Если так тогда таблица имеет пустую строку - возьми удали руками!


AMogil   (2004-01-10 13:16:00) [20]

А вот если начать вводить новые данные, тогда и поялвяется "звездочка", но можно ведь и сказать ReadOnly:=True гриду... и вообще уважаемый bobtubob это все-таки не ответ.
Но все равно спасибо... за внимание :-)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо