Вот весь текст
В первой колонке стринггрида находятся заголовки разделов, а во 2 и 4 колонках
и, в следующих строках, данные.
Программа построчно проверяет содержимое колонок 2 и 4. Отсутствие данных в этих
колонках свидетельствует о том, что в колонке 1 данной строки находится заголовок.
Шрифт заголовка изменяется на полужирный и продолжается проверка следующих строк.
var
k:integer;
//подпрограмма изменения шрифта в строке (глобальная переменная - k )
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ACol = 1)and(ARow = k) then with StringGrid1.Canvas do
begin
FillRect(Rect); //Изменяем атрибут шрифта
Font.Style:= [fsBold];
TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol,ARow]);
end;
end;
// Поиск и изменение заголовка
procedure TForm1.Button1Click(Sender: TObject);
var
label M_1 ;
begin
for k :=0 to StringGrid1.RowCount-1 do
begin
if StringGrid1.Cells[2,k] = '' then // проверка колонки 2
else goto M_1 ;
if StringGrid1.Cells[4,k] = '' then // проверка колонки 4
else goto M_1 ;
begin
// Вызов подпрограммы изменения шрифта в проверенной строке
StringGrid1DrawCell(Sender, ACol, ARow,Rect, State);
end;
M_1:
end;
end;
end.
Sla. - Компилятор сообщает о незадекларированных ACol, ARow, State.
Перерисовывать всю таблицу. А если там 10000 строк и перерисовать
нужно 1000 раз. Мелькать не будет?