Запись в 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 шт):
Первое, надо уметь создавать экземпляры класса 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;
Я привел основные шаги, постарайтесь заполнить пробелы.