Hola CarlosAlberto, seleccionar directamente creo que no se puede, para seleccionar la columna y se note, lo que se me ocurre es que pintes dicha columna, haciendo click sobre el titulo de la columna, pero como el StringGrid no tiene un evento OnTitle, podriamos utilizar el evento OnMouseDown y el procedimiento MouseToCell:
Utilizamos la variable Global Columna, para guardar la columna cuando se ha hecho Click sobre el titulo y la que va a ser pintada
Código Delphi
[-]
Columna : Integer;
ColSelect, RowSelect : Integer;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
texto:String;
begin
if (Columna>0) and (ACol=Columna) and (ARow>0) then
begin
With StringGrid1 do
begin
Canvas.Font.Color := clBlue;
Canvas.Brush.Color := clRed;
Canvas.FillRect(Rect);
Texto := Cells[ACol,ARow];
Canvas.TextRect( Rect, Rect.Left+2, Rect.Top+2, Texto);
end;
end;
end;
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StringGrid1.MouseToCell(X,Y,ColSelect,RowSelect);
if RowSelect=0 then
begin
Columna := ColSelect;
StringGrid1.Refresh;
end;
end;
Columna := 0;
Revisa la pagina que te ha indicado Neftali, hay muchas cosas que te pueden ayudar
.
Saluditos