Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Прорисовка DBGrida?   Найти похожие ветки 

 
.Net   (2004-05-29 00:58) [0]

Доброй ночи всем!!!

У меня возникла проблема. ПОмогите ее решить.
Суть ее такова: Есть грид в котором выводяться в одном столбце
значения от 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 этаж". Как ее от туда убрать?
Помогите с решением а то уже запарился искать ошибку....


 
jack128 ©   (2004-05-29 01:10) [1]

можно гораждо проще
Нужно написать обработчик события для TField.OnGetText


 
Сергей Суровцев ©   (2004-05-29 01:17) [2]

Попробуй
if not Query.Eof
в условие добавить


 
.Net   (2004-05-29 01:20) [3]

>Нужно написать обработчик события для TField.OnGetText
а нельзя ли както поподробней это осветить?
а то я слышал про это но незнл как сделать:(((
в каком Events это писать надо?
буду очень благодарен если приведете пример
Зарание спасибо :)


 
kaif ©   (2004-05-29 01:42) [4]

1.Создай для начала постоянные поля (persistent), если их нет в редакторе полей, который вызывается двойным щелчком по компоненту TTable или TQuery. Там есть контекстное меню, вызываемое правой кнопкой мыши в списке, при помощи пункта Add Fields... Ctrl+A которого можно добавить все поля.
 Затем выбери любое поле в редакторе полей и в Инспекторе объектов увидишь все свойства этого поля и все его события. Так вот событие OnGetText находится там.

 2.Когда освоишь этот способ, потом можешь попробовать назначать обработчик события OnGetText рантайм динамически создаваемым полям (хотя в большинстве случаев первого способа хватает).


 
.Net   (2004-05-29 02:12) [5]

Все здесь понятно.
Только у меня не получается сделать имено присвоение
этому полю стрингового значения :(((
пишу так:
if (Query.FieldByName("Floor").AsInteger = 0) then
      QueryFloor.AsString := "1 этаж";
Что я делаю не так?


 
Vemer ©   (2004-05-29 02:29) [6]

Если в обработчике OnGetText, то так:
if (Query.FieldByName("Floor").AsInteger = 0) then
     Text := "1 этаж";

В "шапку" процедуры полезно смотреть, там много всякого интересного написано часто.. :).  Удачи, хотя с парадуксом имхо это проблематично..


 
.Net   (2004-05-29 02:34) [7]

Пасибо



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.02 c
4-1081945308
Aleksandr
2004-04-14 16:21
2004.06.20
Объясните, люди добрые, как работать с GetASuncKeyState?


14-1086096409
Ega23
2004-06-01 17:26
2004.06.20
Где можно почитать про такую штуку, как Pipes?


1-1086706407
red chief
2004-06-08 18:53
2004.06.20
Как поменять стиль шрифта?


4-1084459297
Игорь Н.
2004-05-13 18:41
2004.06.20
Как вызвать окно внимание (attention)?


8-1081353832
Wm.DIGGER
2004-04-07 20:03
2004.06.20
Запись AVI шек ...