Tengo un StringGrid1 con varias filas y columnas. He conseguido que el procedimiento
procedure TForm1.StringGrid1SelectCell(Sender: TObject; aCol, aRow: Integer; var CanSelect: Boolean);
que al seleccionar con un click una celda me marque la fila entera con la opción(TstringRid1 en Options.-<goRowSelect=TRUE) en azul.
Mi intención es que al hacer dobleclick sobre una fila entera marcada en azul me salga un formulario. Esto lo consigo
con el procedimiento
procedure TForm1.StringGrid1DblClick(Sender: TObject); Var MousePos : TPoint; ThisCell : TPoint; begin MousePos := Mouse.CursorPos; ThisCell := StringGrid1.MouseToCell(MousePos); //ShowMessage('Stringgrid context popup with Mouse.X and .Y = '+IntToStr(MousePos.X)+ //' and '+IntToStr(MousePos.Y)+' and with Col and Row = '+IntToStr(ThisCell.X)+' and '+IntToStr(ThisCell.Y)); end;
Pero no lo hace bien. Al pulsar cualquier fila con dobleclick veo el nº de fila pulsada con stringrid1.row y el nº de columna con stringrid1.col, pero al pulsar sobre la cabecera tambien me indica el nº fila pero no me saca la fila 0, sino que me marca el nº de fila donde está marcada la fila en azul y puede estar marcada por ejemplo la fila 5 en azul y cuando pulso la cabecera me saca nº de fila=5 y me tendría que sacar nºde fila =0..
Por lo tanto no se como corregir esto para que funcione ya que intento indicarle
IF (Stringrid1.row <>0) then // Si dobleclik sobre cualquier fila distinta a la cabecera saco un Form2. Form2.show();
pero es imposible ya que ocurre lo anterior. Una posible ayuda al respecto
Gracias.
escafandra: edito para poner las etiquetas de código.