Запись в StringGrid из файла на delphi

Есть табличка StringGrid, ее необходимо заполнить. Есть файл с данными(массив) состоящий из букв n,y (грубо говоря n это false, y true ), и так в stringGrid нужно записать не сами эти буквы а если буква n то ничего в ячейку не вводим если буква y то закрасить ячейку красным цветом.

Файл:

10

n n n n n n n n n n
y y y y y y y y y y
n n n n n n n n n n
y y y y y y y y y y
n n n n n n n n n n
y y y y y y y y y y
n n n n n n n n n n
y y y y y y y y y y
n n n n n n n n n n
y y y y y y y y y y 

Ответы (1 шт):

Автор решения: Alex R.

Первое, надо уметь создавать экземпляры класса TStrings (vFile, помним про TStringList). Второе, написать функцию получения из одномерного списка строк значение по заданным колонке и строке (функция GetIndexInFile). Последнее, использовать штатные события и свойство TStringGrid.Canvas.

1.Загрузить данные из файла

vFile.LoadFromFile(AFileName);
vFile.Text := ReplaceStr(vFile.Text, ' ', sLineBreak);

2.Заполнить таблицу, лучше присвоить значение каждой ячейки, а скрывать на третьем шаге

sgrTable.Cells[i, j] := vFile[GetIndexInFile(i, j)];

3.Использовать событие отрисовки ячейки TStringGrid.OnDrawCell

procedure TmyForm.sgrTableDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if sgrTable.Cells[ACol, ARow] = 'y' then
    sgrTable.Canvas.Brush.Color := clRed;

  sgrTable.Canvas.FillRect(Rect);
end;

Я привел основные шаги, постарайтесь заполнить пробелы.

→ Ссылка