Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дополнительное поле [D6, D7, Paradox]


NoName ©   (2004-05-10 02:18:00) 

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

 Помогите реализовать следующее: У меня в таблице храниться
 состояние 1 или 0. Я хочу в гриде в зависимости от этого  наачения выводить запись Включено или Выключено.
Как это сделать?
Буду благодарен за любую идею.


Кщд   (2004-05-17 13:15:00) [1]

Sergej   (10.05.04 12:06) [10]
прошу прощения, но какому классу принадлежит св-во KeyList?


Курдль   (2004-05-10 12:38:00) [2]

- Гоги! Помоги! Вано на дерево влез, а спуститься не может!
- Тащи веревку, обвязывай его и тяни!
...
- Гоги! Вано убился!
- Странно... На прошлой неделе Резо таким же способомнормально из колодца достали...


Sergej   (2004-05-10 12:31:00) [3]

Курдль ©   (10.05.04 12:24) [12]

Лень :)

А если честно, просто подобным способом в грид вставлял иконки
соответствующие числовым значениям из базы (от 0 до 10)
работает ну и хорошо.


Курдль   (2004-05-10 12:24:00) [4]

А что мешает добавить Calculate поле в FieldList и вычислять его 2-мя строками кода по событию onCalc...?


sniknik   (2004-05-10 12:19:00) [5]

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


Sergej   (2004-05-10 12:06:00) [6]

Может я не так использовал свойства грида, но у меня сделано так:
в свойстве KeyList:
0
1

а в свойстве РickList соответственно:
Выключено
Включено

Работает без проблем.
Поправьте если это плохое решение.


Anatoly Podgoretsky   (2004-05-10 10:52:00) [7]

sniknik ©   (10.05.04 10:22) [8]
Так там еще и второй плюс, работать будет во всех местах, не как здесь в одном.


sniknik   (2004-05-10 10:22:00) [8]

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


Anatoly Podgoretsky   (2004-05-10 10:21:00) [9]

А правильный ответ с OnGetText так и отказался использовать.


NoName   (2004-05-10 10:15:00) [10]

:))) Всем пасибо за помощь я реализовал так:
if ( Column.FieldName = 'Type') then
     begin
       with Grid.Canvas do
         begin
             Brush.Color := clWhite;
             FillRect(Rect);
             if (Query.FieldByName('Type').AsInteger = 0) then
               begin
                  TextOut(Rect.Right-2-Grid.Canvas.TextWidth('Включено'),
                          Rect.Top+2,'ВКлючено');
               end
             else
               Begin
                   TextOut(Rect.Right-2-Grid.Canvas.TextWidth('Выключено'),
                           Rect.Top+2,'Выключено');

               end
         end;
     end;


sniknik   (2004-05-10 10:08:00) [11]

> А нельзя както по подробней?
без проблем.
TTable.Fields[x](TField).OnGetText + F1


tlan   (2004-05-10 10:03:00) [12]

В DBGrid есть событие OnDrawDataCell (или что-то в этом роде), возникает оно при прорисовке каждой ячейки его и обрабатывай.


NoName   (2004-05-10 09:56:00) [13]

А нельзя както по подробней?

To Johnmen:
Да вы в принципе правы но мне надо не показывать это поле
1 или 0 а просто в зависимости от него выводить в другом
столбце надпись включено выключено.


Anatoly Podgoretsky   (2004-05-10 09:14:00) [14]

TField.OnGetText


Johnmen   (2004-05-10 03:11:00) [15]

...where <состояние>=1  (или 0)


Наверх

Титульная страница Поиск, карта сайта Написать письмо