![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прорисовка DBGrida? [D6, Paradox]
.Net © (2004-05-29 00:58:00)Доброй ночи всем!!!
У меня возникла проблема. ПОмогите ее решить.
Суть ее такова: Есть грид в котором выводяться в одном столбце
значения от 0 до 5.Я хочу вставить место цыфер надписи. Делаю так
в событии GridDrawColumnCell пишу:
if (Column.FieldName = 'Floor') then
begin
with Grid.Canvas do
begin
FillRect(Rect);
if (Query.FieldByName('Floor').AsInteger = 0) then
TextOut(Rect.Right-2-Grid.Canvas.TextWidth('1 этаж'), Rect.Top+2,'1 этаж');
и так дальше по тексту....
все клас все работает НО когда я удаляю все записи из таблицы и грид пустой(записей нет). То в первой строчке остаеться надпись
"1 этаж". Как ее от туда убрать?
Помогите с решением а то уже запарился искать ошибку....
.Net (2004-05-29 02:34:00) [1]Пасибо
Vemer (2004-05-29 02:29:00) [2]Если в обработчике OnGetText, то так:
if (Query.FieldByName('Floor').AsInteger = 0) then
Text:= '1 этаж';
В "шапку" процедуры полезно смотреть, там много всякого интересного написано часто.. :). Удачи, хотя с парадуксом имхо это проблематично..
.Net (2004-05-29 02:12:00) [3]Все здесь понятно.
Только у меня не получается сделать имено присвоение
этому полю стрингового значения :(((
пишу так:
if (Query.FieldByName('Floor').AsInteger = 0) then
QueryFloor.AsString := '1 этаж';
Что я делаю не так?
kaif (2004-05-29 01:42:00) [4]1.Создай для начала постоянные поля (persistent), если их нет в редакторе полей, который вызывается двойным щелчком по компоненту TTable или TQuery. Там есть контекстное меню, вызываемое правой кнопкой мыши в списке, при помощи пункта Add Fields... Ctrl+A которого можно добавить все поля.
Затем выбери любое поле в редакторе полей и в Инспекторе объектов увидишь все свойства этого поля и все его события. Так вот событие OnGetText находится там.
2.Когда освоишь этот способ, потом можешь попробовать назначать обработчик события OnGetText рантайм динамически создаваемым полям (хотя в большинстве случаев первого способа хватает).
.Net (2004-05-29 01:20:00) [5]>Нужно написать обработчик события для TField.OnGetText
а нельзя ли както поподробней это осветить?
а то я слышал про это но незнл как сделать:(((
в каком Events это писать надо?
буду очень благодарен если приведете пример
Зарание спасибо :)
Сергей Суровцев (2004-05-29 01:17:00) [6]Попробуй
if not Query.Eof
в условие добавить
jack128 (2004-05-29 01:10:00) [7]можно гораждо проще
Нужно написать обработчик события для TField.OnGetText