Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGrid, как что-то дописать в ячейке 
:(
    Опции темы
MacTep
Дата 29.11.2004, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Как можно в ячейке с годом рождения (тип Date) дописать что-то типа такого: 1990 год. Т.е. не просто число года, а еще и рядом слово год. Только не нужно использовать стринговое поле!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Dimich
Дата 30.11.2004, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Код
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 with CRDBGrid1.Canvas do
   if Column.FieldName = 'MYDATE' then
     begin
       FillRect (Rect);
       TextOut (Rect.Left+1,
                Rect.Top+1,
                IntToStr (YearOf (Column.Field.AsDateTime))
                  + ' год');
     end;
end;

--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
gray_k
Дата 30.11.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

Репутация: нет
Всего: 22



Для этого предусмотрено с тандартное событие OnGetText у поля набора данных.


--------------------
С уважением.
Gray.
PM MAIL   Вверх
MacTep
Дата 30.11.2004, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



У какого компонента это все есть. Я про это событие читал, но так и не смог отызкать его во вкладках Events хотя бы какого-то компонента. Подскажите, пожалуйста!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 30.11.2004, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Народ, стоять.....
Юзаем SQL!
Код

SELECT Name, BirthDay || " год" FROM Dates;

Имеем: после дня рождения добавлено " год":
11.11.1111 год

Попробуй, может прокатит... smile

P. S.
Может и так:
Код

SELECT Name, BirthDay || ' год' FROM Dates;

В учебнике во всяком случае так написано... smile
PM   Вверх
Dimich
Дата 1.12.2004, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Ув. Pakshin A. S.!
MacTep просил:
Цитата
Только не нужно использовать стринговое поле!


А про OnGetText правильно сказано, только вот у меня что-то не получается с ним работать.....

В Help'e написано так:
Цитата
Occurs when the DisplayText or Text properties of the field are referenced.

type TFieldGetTextEvent = procedure(Sender: TField; var Text: String; DisplayText: Boolean) of object;
property OnGetText: TFieldGetTextEvent;

Description

Write an OnGetText handler to perform custom processing for the DisplayText and Text properties. Use OnGetText to format the Value of the field differently when it must be edited from the format used when simply displaying the value, or use OnGetText to display something other than the field’s value when it is displayed.

The Sender parameter is the field component. The Text parameter returns the formatted text that is used by the DisplayText or Text property. The DisplayText parameter indicates whether the text will be used for display purposes only, or whether the string will be used for editing.

If there is no OnGetText handler, the value of the DisplayText and Text properties is simply the value of the AsString property.

Киньте плиз кусок кода, если не затруднит, чтобы наглядно разобраться...
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Pakshin A. S.
Дата 1.12.2004, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



smile Кто сказал, что юзано стринговое поле?! BirthDate - формат типа Date...
PM   Вверх
MacTep
Дата 1.12.2004, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Так мне никто про OnGetText и не рассказал!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Dimich
Дата 2.12.2004, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Код
type
 TForm1 = class(TForm)
  ...........
   procedure MyGetText(Sender: TField; var Text: String; DisplayText: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
  ...........
procedure TForm1.MyGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if Sender.DataType = ftString then
  Text := AnsiUpperCase(Sender.AsString);
end;

  ...........
 Query1.Open;
 DBGrid1.Fields [1].OnGetText := MyGetText;

Вот такой корявый примерчик юзания OnGetText.......

Кстати, Pakshin A. S.:
Цитата
Кто сказал, что юзано стринговое поле?! BirthDate - формат типа Date...
Вы не правы! Юзано как раз стринговое поле! BirthDay - формат типа Date, а вот BirthDay || ' год' as MySirthDay это уже стринговое!
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Pakshin A. S.
Дата 2.12.2004, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Ну и что? Но результат, то...
PM   Вверх
Dimich
Дата 2.12.2004, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Нет, я ничего против не имею, просто вопрос был
Цитата
Только не нужно использовать стринговое поле!

Хотя конечно я бы сделал селект, как предложили Вы! В самом деле, ну и что, что поле стринговое?
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
MacTep
Дата 3.12.2004, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Спасибо всем, очень полезные советы!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0598 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.