Можно ли обратиться к колонке или строке grid'а по заголовку?

В следующем примере приведены две функции: GetGridColumnByName() и GetGridRowByName(), которые возвращают колонку или строку, имеющую заданный заголовок (caption).
procedure TForm1.FormCreate(Sender: TObject);
begin
        StringGrid1.Rows[1].Strings[0] := 'This Row';
        StringGrid1.Cols[1].Strings[0] := 'This Column';
end;

function GetGridColumnByName(Grid : TStringGrid; ColName : string): integer;
var
        i : integer;
begin
        for i := 0 to Grid.ColCount - 1 do
                if Grid.Rows[0].Strings[i] = ColName then 
                        begin
                Result := i;
                                exit;
                        end;
        Result := -1;
end;

function GetGridRowByName(Grid : TStringGrid; RowName : string): integer;
var
        i : integer;
begin
        for i := 0 to Grid.RowCount - 1 do
                if Grid.Cols[0].Strings[i] = RowName then
                        begin
                                Result := i;
                                exit;
                        end;
        Result := -1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
        Column : integer;
        Row : integer;
begin
        Column := GetGridColumnByName(StringGrid1, 'This Column');
        if Column = -1 then
                ShowMessage('Column not found')
        else
                ShowMessage('Column found at ' + IntToStr(Column));
        Row := GetGridRowByName(StringGrid1, 'This Row');
        if Row = -1 then
                ShowMessage('Row not found')
        else
                ShowMessage('Row found at ' + IntToStr(Row));
end;
 
« Предыдущая статья   Следующая статья »