![]() |
|
#1
|
|||
|
|||
![]() Приветствую Вас господа. Помогите мне с проблемой по DrawGrid.
Есть таблица заполняемая и когда она заполняется хотя бы больше одной строчки, то все нормально отображается, но если нет условий для вывода и таблица пуста, то верхняя строчка после второго поиска и вывода информации превращается в ненадлежащего вида строку. Как это исправить? Вот код на прорисовке таблицы: Код:
if (ARow=0) and (ACol<=ZNumber) then begin JobGrid.Canvas.Font.Color:=clWhite; JobGrid.Canvas.TextOut(Rect.Left+5,Rect.Top+2,Zagol[ACol]); end; if (ARow>0) then //= если нет условий для вывода информации begin JobGrid.Canvas.FillRect(Rect); Case ACol of 0: begin // Номер заказа JobGrid.Canvas.TextOut(Rect.Left+2,Rect.Top+2,IntToStr(GlobalStats.Stats[ARow].Num)); end; 1: begin // Наименование (Продукция) ... |
#2
|
|||
|
|||
![]() Вот как все это выглядит.
|
#3
|
|||
|
|||
![]() Цитата:
скорее всего просто не задаются цвета для кисти. FillRect использует кисть для отрисовки. В случае отсутствия записей все-равно надо задавать цвета для кисти и шрифта (для корректного вывода заголовка). |
#4
|
|||
|
|||
![]() Разобрался. Для других на будущее напишу.
Дело не в кистях, а в FixedRows! Верхняя строчка идет как фиксированная, а когда значение для вывода информации = 0, то и строчка в DrawGrid одна, а она не может быть фиксированная! Поэтому пишется элементарный код для возврата строчки в первоначальный вид! Код:
if Form1.JobGrid.RowCount>1 then Form1.JobGrid.FixedRows:=1; |