Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разный цвет текста в таблице 
:(
    Опции темы
АСК
  Дата 27.10.2004, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пожалуйста помогите!!!!!

Пишу электронный журнал дефектов программа практически готова, но есть проблемы:

1. Не могу сообразить как сделать фильтрацию по нескольким условиям,
например: ТАБЛИЦА (номер, дата, фамилия и т.д.) отфильтровать по дате и фамилии????????

2. Как сделать цвет текста в таблице разный????
например: под номером 1 цвет текста в строке красный
под номером 2 цвет текста в строке зеленый

3. При клике на таблицу выделяется одна ячейка активной строки, как сделать, чтобы выделялась вся строка???????

Заранее благодарен за помощь.
PM MAIL   Вверх
p0s0l
Дата 27.10.2004, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



1) Пример: Table1.Filter := 'Data1 > ''01.01.2005'' AND Fam = ''Пупкин*''';
2) На событие OnDrawColumnCell повесь что-то вроде:
Код
 with DBGrid1.Canvas do
 begin
   if (DBGrid1.DataSource.DataSet.RecNo mod 2) = 0 then Font.Color := clRed
     else Font.Color := clGreen;
   TextRect(Rect, Rect.Left+1, Rect.Top+1, Column.Field.AsString);
 end;

3) У DBGrid'а есть свойство Options, там поставь флаг dgRowSelect


--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 28.10.2004, 00:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ОГРОМЕННОЕ СПАСИБО ЗА ПОДСКАЗКУ

Появился еще один вопрос

как сделать чтобы можно было задавать пределы фильтрации по дате

например с 01.01.04 по 17.03.04


Заранее спасибо

  Вверх
p0s0l
Дата 28.10.2004, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Table1.Filter := 'Data1 >= ''01.01.04'' AND Data1 <= ''17.03.04''';



--------------------
С уважением, г-н Посол.
PM   Вверх
Medved
Дата 28.10.2004, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Я Вам не советую использовать фильтрацию, если Вы реализовываете клиент-серверное приложение. Это связано с разницей методов загрузки в компонентах TTable и TQuery (Надеюсь что Вы используете TQuery для клиент-серверных приложений).
Лучше использовать запросы. Это и продуктивней, и самое главное - универсализирует Ваш код.

А p0s0lу я посоветую не использовать DataSet.RecNo, опять же по причинет универсализации кодов, Кроме того, это будет работать не на всех БД.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 28.10.2004, 08:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Pegas @ 28.10.2004, 01:45)

Я Вам не советую использовать фильтрацию, если Вы реализовываете клиент-серверное приложение.
ето не одназначно, зависит от ситуации. нужно определится, какои метод в данныи момент оптималнее.
Цитата

3. При клике на таблицу выделяется одна ячейка активной строки, как сделать, чтобы выделялась вся строка???????


Код
type
 TMyDBGrid = class(TCustomDBGrid);

procedure TFPatient.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
 DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 With TMyDBGrid(Sender) Do
 if (DataLink.ActiveRecord = Row - 1) then
 begin
   DBGrid.Canvas.Brush.Color := cl...;
   DBGrid.Canvas.Font.Color := cl...;
   DBGrid.Canvas.Font.Name := ...;
   DBGrid.Canvas.Font.Size := ...;
 end;  
 DBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;



Цитата

2. Как сделать цвет текста в таблице разный????
например: под номером 1 цвет текста в строке красный
под номером 2 цвет текста в строке зеленый

выбери какое небуть поле (луще конечно идентификатор таблицы) и если значение четное - зеленныи, нечетное - красныи
  Вверх
Medved
Дата 28.10.2004, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Guest @ 28.10.2004, 11:59)

Цитата (Pegas @ 28.10.2004, 01:45)

Я Вам не советую использовать фильтрацию, если Вы реализовываете клиент-серверное приложение.
ето не одназначно, зависит от ситуации. нужно определится, какои метод в данныи момент оптималнее.


На первый взгляд то она так, но если учесть что программа является полноценным приложением и будет в дальнейшем развиваться, то это не самое мудрое решение. ИМХО плохой стиль, который в дальнейшем может вызвать путаницу в кодах и нестабильность работы. К она томуже не всегда нормально работает.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 28.10.2004, 14:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











иногда, с целю разгрузки сервера и трафика приходится филтровать локално.
а вообше полностю согласен
  Вверх
АСК
Дата 29.10.2004, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Извиняюсь за долгий ответ, были проблемы со связью (МТС в тесте, пришлось за BeeLine'ом идти)
Спасибо еще раз за подсказки
работает все кроме фильтра
фильтруешь либо по дате, либо по фамилии - все работает
как только объединяешь оба условия в один фильтр через and - ВСЁЁЁЁ - ошибка (Operator not applicable to this operand type)

Уже мозги плавятся!!!!!!!! ГДЕ ОШИБКА???? Никак не пойму

ПА-МА-ГИ-ТЕ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:sample
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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