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

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

Как изменить результаты запроса в DbGrid?


Страницы:   1 2 3

Novicer ©   (2014-02-13 00:59:00) 

Здравствуйте мастера! Подскажите плиз возможно ли такое? Хочу сделать запрос, числовой результат отобразить в DbGrid и потом умножить например на 3 и результатом заменить пред.значение или арифм.операции можно заложить в сам запрос и отобразить уже в гриде готовый результат?


Inovet   (2014-02-14 09:55:00) [1]

> Разноцветный DBGrid
Или поставь EhLib, там много чего есть.


Inovet   (2014-02-14 09:53:00) [2]

> [36] Ega23 ©   (13.02.14 15:53)
> Нельзя сравнивать на равенство числа с плавающей запятой

к тому же с целым ещё, ну да ладно неявно преобразуется.


Германн   (2014-02-14 03:26:00) [3]


> Novicer   (14.02.14 00:50) [42]
>
> Если отключаю дефолтдравинг все рисует правильно, все данные
> в гриде отображает, но выбранная строка не выделяется, некрасиво.
> .. :(

Так я же сказал рисовать надо правильно, а не как бог послал.
Читай
Разноцветный DBGrid http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168#link2


Novicer   (2014-02-14 00:50:00) [4]

Если отключаю дефолтдравинг все рисует правильно, все данные в гриде отображает, но выбранная строка не выделяется, некрасиво... :(


Германн   (2014-02-14 00:13:00) [5]


> Novicer   (13.02.14 20:32) [39]
>
> Пльохо... :( с отрисовкой на канве пашет, но эффект наложения
> старых данных все портит, а где перехватить незнаю :(
>

Не перехватывать надо, а рисовать всё самому и правильно. Если уж решил изменить стандартную отрисовку DBGrid'a.


Dennis I. Komarov   (2014-02-13 23:31:00) [6]


> Нельзя.

Нет тебе прощения... ;)


Novicer   (2014-02-13 20:32:00) [7]

Пльохо... :( с отрисовкой на канве пашет, но эффект наложения старых данных все портит, а где перехватить незнаю :(


Германн   (2014-02-13 19:54:00) [8]


> Так можно или нет на OnGetText поменять цвет строки, вернее
> шрифта по заданному условию?

Нельзя.


Novicer   (2014-02-13 19:52:00) [9]

Пусть будет и Абс. Так можно или нет на OnGetText поменять цвет строки, вернее шрифта по заданному условию? Как?


Ega23   (2014-02-13 15:53:00) [10]

Нельзя сравнивать на равенство числа с плавающей запятой.

В общем виде это Abs(Value1 - Value2) <= Epsilon
где Epsilon - требуемая точность.


Novicer   (2014-02-13 15:15:00) [11]

Если отключить дефолтную отрисовку и самому указывать цвет строки в DBGrid1DrawColumnCell в зависимости от условий,то эффект "накладки" исчезает,но пропадает выделение строки(виден только курсор слева) и всплывают какие-то артефакты между колонками в виде вертикальных разноцветных линий на высоту строки.. :(


Novicer   (2014-02-13 15:02:00) [12]

С IF Sender.AsFloat=0 then Form1.DBGrid1.Canvas.Font.Color := clRed; та же петрушка... :(


Novicer   (2014-02-13 14:55:00) [13]

Канва так понимаю ненужное направление :) Теперь хочу изменить цвет шрифта на красный в строке, в которой в поле "Количество" значение равно нулю . Метод с канвой работает до момента выделения строки(установки курсора), потом опять накладка. Хочу избавиться от этого эфекта используя снова событие OnGetText. Прописал на нужное поле такой обработчик:
IF Sender.AsFloat=0 then Form1.DbGrid1.Font.Color := clRed;
но при попытке компиляции получаю месагу: Undeclared identifier: 'clRed'
С какого такого красный ему не нравиться непонятно? :( Попытка изменить цвет к успеху не привела... :)


Inovet   (2014-02-13 14:48:00) [14]

> [31] Novicer   (13.02.14 14:43)
> в нужном направлении

в ненужном


Novicer   (2014-02-13 14:43:00) [15]

Получилось! Все работает как надо! Всем спасибо за помощь и дружеские пинки в нужном направлении! ;)


Ega23   (2014-02-13 14:30:00) [16]

Да, Серёга, зря ты это сделал...


Novicer   (2014-02-13 14:28:00) [17]

А вот такая замена текста работает: IF Sender.AsString='Ля-ля-ля' then Text := 'Бла-бла-бла';  Вот от этого и бум плясать дальше... :)


Novicer   (2014-02-13 14:23:00) [18]

Мдя.. Это я напутал игрался с полями, не назначил снова обработчик,потому и не было внешних изменений. Теперь на OnGetText нужного поля прописал if DisplayText then Text := AnsiUpperCase(Text); и данные после выполнения запроса уже вобще не отображает в этом поле :(


Ega23   (2014-02-13 14:18:00) [19]


> То ли лыжи не едут,то ли.. Никак не соображу как с OnGetText
> на лету менять значения ячеек в нужной колонке данных после
> выполнения запроса? Или это надо в процессе делать?


А там тоже надо поля ручками прописывать. А для некоторых - ещё и про Case Sensitive не забывать.


Anatoly Podgoretsky   (2014-02-13 14:18:00) [20]

Ты не черт, а дьявол


Страницы:   1 2 3

Наверх

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