Ver Mensaje Individual
  #3  
Antiguo 19-01-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Reputación: 23
poliburro Va por buen camino
pues leyendo la documentación del componente encontre el método mousecoord y me quedo así procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Var Valor :String; LGcCoord: TGridCoord; //Define las cordenadas del mouse en el grid begin LGcCoord := TCustomGrid(StringGrid1).MouseCoord(x,y); GiCol := LGcCoord.X; //Establece la columna seleccionada GiRow := LGcCoord.Y; //Establece la fila seleccionada if (GiRow = 0) And (Button = mbleft) And (GiCol -1) then Begin with stringgrid1 do Begin GCelda := CellRect(GiCol,0); Valor := Cells[GiCol, 0]; Canvas.Font := Font; Canvas.Brush.Color := clBtnFace; Canvas.FillRect(GCelda); Canvas.TextRect(GCelda, GCelda.Left + 2, GCelda.Top + 2, Valor); DrawEdge(Canvas.Handle, GCelda, 10, 2 or 4 or 8); DrawEdge(Canvas.Handle, GCelda, 2 or 4, 1); End; End; End; procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Var Valor :String; begin if (GiRow = 0) And (Button = mbleft) And (GiCol -1) then Begin with stringgrid1 do Begin Valor := Cells[Gicol, 0]; Canvas.Font := Font; Canvas.Brush.Color := clBtnFace; Canvas.FillRect(GCelda); Canvas.TextRect(GCelda, GCelda.Left + 2, GCelda.Top + 2, Valor); DrawEdge(Canvas.Handle, GCelda, 4, 4 or 8); DrawEdge(Canvas.Handle, GCelda, 4, 1 or 2); GCelda := stringgrid1.CellRect(1, 1); End; End; end;
Responder Con Cita