![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со значениями в DBGrid. [D6, MySQL]
Bill © (2003-04-17 09:07:00)Как организовать такой вид DBGrid:
1. Необходимо, чтобы в 4-й колонке у всех значений после запятой было 2 знака.
2. Необходимо, чтобы в 5-й колонке у всех значений после запятой было 2 знака и отрицательные числа выводились красным цветом.
NDeu (2003-04-17 10:25:00) [1]
> у всех значений после запятой было 2 знака
см. Соловьев © (17.04.03 09:42)
TNumericField.DisplayFormat
> отрицательные числа выводились красным цветом
см.
Type
TDrawColumnCellEvent = procedure (Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) of object;
property OnDrawColumnCell: TDrawColumnCellEvent;
примерно так:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
If Column.Field.AsFloat<0
then begin
DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end
else DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Anatoly Podgoretsky (2003-04-17 10:08:00) [2]Соловьев © (17.04.03 09:48)
Не в этом дело, в пятой отрицательные числа должны быть красными, так что на подмогу требуется звать и OnDrawDataCell
Соловьев (2003-04-17 09:54:00) [3]ну так юзай это свойство(хелп только глянь), но для отрисовки цветом прийдется делать как говорит ЮЮ.
Bill (2003-04-17 09:52:00) [4]Да 1,2,3 - это строковые параметры а не числовые
Соловьев (2003-04-17 09:48:00) [5]
> Только для 4 колонки.
сорри, но может у него в первых 3 и после 5-й не числовые значения :))))
Anatoly Podgoretsky (2003-04-17 09:46:00) [6]Соловьев © (17.04.03 09:42)
Только для 4 колонки.
Соловьев (2003-04-17 09:42:00) [7]TNumericField.DisplayFormat
ЮЮ (2003-04-17 09:22:00) [8]TCustomDBGrid.OnDrawDataCell
Occurs when the grid needs to paint a cell if the State property of Columns is csDefault.
type
TDrawDataCellEvent = procedure (Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState) of object;
Куда уж конкретнее, Rect - прямоугольник, где надо нарисовать,
Field - нужное поле.
Bill (2003-04-17 09:17:00) [9]А поконкретней. Пожалуйста!!!
ЮЮ (2003-04-17 09:14:00) [10]B onDrawCell можешь рисовать что угодно и как угодно