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 12-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
DBgrid y PopupMenu

Hola a todos,
Estoy trabajando en un Form con un DBGrid que lee informaciones de una tabla firebird,
y un componente PopupMenu con 2 opciones (Seleccionar, No Seleccionar),
y estoy necesitando que quando clico con el boton derecho del mouse, mi opcion "Seleccionar", cambie el color o colocar Enabled a una linea de registro de mi DBGrid,
agradeceria mucho si alguien me pudiera dar algun ejemplo de como puedo resolver,
y que mantenga esas alteraciones si cierro y vuelvo abrir el form.
Saludos
Responder Con Cita
  #2  
Antiguo 13-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gsilvei.

La verdad es que no sé si entiendo lo que buscas hacer. Pero si te interpreté bién, este código te marcará o desmarcará la fila actual del DBGrid de acuerdo a la opción que elijas en el PopupMenu:
Código Delphi [-]
...
procedure TForm1.MenuItemMarcarClick(Sender: TObject);
begin
  DBGrid1.Options:= DBGrid1.Options + [dgRowSelect]
end;

procedure TForm1.MenuItemDesmarcarClick(Sender: TObject);
begin
   DBGrid1.Options:= DBGrid1.Options - [dgRowSelect]
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 13-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
Hola ecfisa,
voy a probarlo,
gracias por el momento
Responder Con Cita
  #4  
Antiguo 13-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
Hola ecfisa,
Queria alguna coisa asi:
Código Delphi [-]
procedure TFormPrincipal.Selecionar1Click(Sender: TObject);
var
  Rect: TRect;
  Field: TField;
  State: TGridDrawState;
begin
if gdFocused in State then
with (Sender as TDBGrid).Canvas do
begin
Brush.Color:=clRed;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Field.AsString);
end;
end;
Saludos
Responder Con Cita
  #5  
Antiguo 13-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gsilvei.

Sigo sin tener en claro la finalidad de esa 'Selección', ya que la misma sólo permanece hasta que cambies de línea.

Pero bueno, esto cambia el color de la línea seleccionada a rojo con letras blancas hasta que se haga click en el MenuItem 'No seleccionar':

Código Delphi [-]
...
procedure TForm1.FormShow(Sender: TObject);
begin
  FSelec:= False;  // Variable privada de tipo Boolean
end;

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
   if (gdSelected in State) and FSelec then
     DBGrid1.Canvas.Brush.Color:= clRed;
  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TForm1.MenuItemSeleccionadoClick(Sender: TObject);
begin
  DBGrid1.Options:= DBGrid1.Options + [dgRowSelect];
  FSelec:= True;
  DBGrid1.Invalidate;
end;

procedure TForm1.MenuItemNoseleccionadoClick(Sender: TObject);
begin
  DBGrid1.Options:= DBGrid1.Options - [dgRowSelect];
  FSelec:= False;
  DBGrid1.Invalidate;
end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 13-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
Hola ecfisa,
tengo un cliente que quiere en el dbgrid hacer clic con el boton derecho del mouse y en el popupmenu tenga esas 2 opciones de seleccionar y no seleccionar
marcar los registros del dbgrid para recordar que estan pendientes.
Saludos
Responder Con Cita
  #7  
Antiguo 13-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gsilvei.

Para hacer eso necesitarías contar con un campo bivalente a ese efecto, es decir, para que tu cliente lo marque como pendiente.
De ese modo podrías evaluar el valor del campo en el evento OnDrawColumnCell y así pintar del color que gustes aquellas filas que cumplan esa condición.

saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 13-07-2011
Avatar de jafera
jafera jafera is offline
Miembro
 
Registrado: may 2007
Ubicación: Llagostera (Girona)
Posts: 582
Poder: 17
jafera Va por buen camino
Yo tambien me inclino con la opcion de Ecfisa, es más yo uso este sistema en un grid donde si el valor de un campo es S lo deja en blanco y si es N lo pinta en color.

Tal y como comenta Ecfisa necesitas un valor que se guarde en la tabla, lo puedes mostrar o no en el grid, pero si no tienes este valor de referencia en cuanto salgas del grid y vuelvas a entrar habrán desaparecido todos lo colores y formatos asignados.

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con Popupmenu angelp4492 Varios 2 27-12-2010 17:53:01
PopupMenu !!! Ledian_Fdez OOP 6 08-11-2010 23:12:54
PopupMenu cmfab Varios 1 01-11-2010 23:00:18
El PopupMenu skinnerpro OOP 4 16-10-2007 01:47:30
popupMenu jorodgar Varios 7 20-04-2005 17:16:22


La franja horaria es GMT +2. Ahora son las 22:46:36.


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