Ver Mensaje Individual
  #3  
Antiguo 21-10-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 22
Caro Va por buen camino
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 [-]
//Variables globales
Columna : Integer;
ColSelect, RowSelect : Integer;

//en el evento OnMouseDrawCell

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;

//En el evento OnMouseDown, detectamos si se ha hecho click sobre el titulo
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;

//y en el evento OnCreate de tu formulario inicializas tu variable global
Columna := 0;

Revisa la pagina que te ha indicado Neftali, hay muchas cosas que te pueden ayudar .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 21-10-2011 a las 17:20:09.
Responder Con Cita