![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать пустую строку в DBGrid [D7]
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 это все-таки не ответ.
Но все равно спасибо... за внимание :-)