Главная страница
    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.037 c
1-1086323999
ashnurov
2004-06-04 08:39
2004.06.20
Timer


1-1086330853
TGrey
2004-06-04 10:34
2004.06.20
Передача сообщений из потока


3-1085647953
Marik
2004-05-27 12:52
2004.06.20
Поиск по дате


14-1086023117
Knight
2004-05-31 21:05
2004.06.20
Почему в играх компьютерные напарники такие тупые?


1-1086295793
NeVIP.
2004-06-04 00:49
2004.06.20
ExcelApplication 2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский