Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Прорисовка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
9-1070178138
Cash
2003-11-30 10:42
2004.06.20
Как работать с альфой


1-1086174531
Ш-К
2004-06-02 15:08
2004.06.20
Клонировать форму


1-1085493215
Виноградов Алексей
2004-05-25 17:53
2004.06.20
Файл текстового типа (textfile). Как узнать его размер ?


3-1085486711
Dron
2004-05-25 16:05
2004.06.20
Проблема с использованием Events в Interbase


1-1086148912
Глеб
2004-06-02 08:01
2004.06.20
Экспорт в Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский