Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2004
Wulvay Wulvay is offline
No confirmado
 
Registrado: sep 2004
Ubicación: Chile
Posts: 5
Poder: 0
Wulvay Va por buen camino
Question Botón Derecho y TStringGrid

Hola, soy nuevo en Delphi y estoy haciendo un proyectito para comprender el funcionamiento del lenguaje, ya he podido avanzar bastante a punta de tutoriales, manuales, ayudas, etc. y ahora estoy parado en que necesito seleccionar una celda con el botón derecho del mouse para realizar acciones de un menú contextual sobre la fila completa, el problema es que puedo seleccionar los datos de la fila previamente seleccionada con el botón izquierdo...

puntualmente, necesito saber como hacer que antes de mostrar el menu contextual, se seleccione la celda que estoy marcando.

De antemano, gracias

Responder Con Cita
  #2  
Antiguo 21-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En el evento OnMouseDown del StringGrid intenta poner esto:

Código Delphi [-]
var
  GridCoord: TGridCoord;

if Button = mbRight then
begin
  // Obtener las coord. de la celda bajo el cursor
  GridCoord := StringGrid1.MouseCoord(X, Y);

  // Seleccionar la celda
  StringGrid1.Col := GridCoord.X;
  StringGrid1.Row := GridCoord.Y;  
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 21-09-2004
Wulvay Wulvay is offline
No confirmado
 
Registrado: sep 2004
Ubicación: Chile
Posts: 5
Poder: 0
Wulvay Va por buen camino
Arigatoo

Muchas Gracias, lo voy a probar
Responder Con Cita
  #4  
Antiguo 21-09-2004
Wulvay Wulvay is offline
No confirmado
 
Registrado: sep 2004
Ubicación: Chile
Posts: 5
Poder: 0
Wulvay Va por buen camino
Fuciona + o -... se me genera una excepción cuando pincho fuera de las celdas... las filas se generan en forma dinámica segun los registros en la base de datos... y por ahora sólo tengo 2 campos...

voy a ver como manejar esa excepción... ya traté con try/except, pero me sigue sucediendo...
Responder Con Cita
  #5  
Antiguo 21-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No sé de dónde viene la excepción que mencionas ya que en lo que pruebo no me sale; quizá de alguna sentencia posterior.

De cualquier manera, en lugar de manejar la excepción yo checaría que las coordenadas que obtengo realmente corresponden a una celda:

Código Delphi [-]
procedure TForm1.StringGrid1MouseDown(
  Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  GridCoord: TGridCoord;

begin
  if Button = mbRight then
  begin
    GridCoord := StringGrid1.MouseCoord(X, Y);

    if
      (GridCoord.X >= StringGrid1.FixedCols) and
      (GridCoord.Y >= StringGrid1.FixedRows)
    then
    begin
      StringGrid1.Col := GridCoord.X;
      StringGrid1.Row := GridCoord.Y;
    end;
  end;
end;

Según he visto, si haces click fuera de las celdas, ambas coordenadas se fijan en -1 de manera que sólo tienes que checar que no toque las filas o columnas fijas.

// Saludos
Responder Con Cita
  #6  
Antiguo 22-09-2004
Wulvay Wulvay is offline
No confirmado
 
Registrado: sep 2004
Ubicación: Chile
Posts: 5
Poder: 0
Wulvay Va por buen camino
Gracias.... acavo de hacer lo mismo y me funciona correctamente... la excepción se produce al pinchar fuera de las celdas, pero dentro del stringgrid ... trata de asignar coordenadas -1 y TGridCoord no las reconoce...

pero ya lo solucioné con un código muy parecido...

Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:16:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi