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 04-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
DBGrid con Button

Hola a todos,
tengo un pequeño problema,
tengo un DBGrid y en una de las columnas tengo un Button
el problemas es que si coloco la propiedad dgRowSelect := True,
el button no funciona y como False si funciona.
Gracias
Responder Con Cita
  #2  
Antiguo 04-07-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Si tienes el botón configurado como un tipo de "InplaceEdit", ten en cuenta que cuando activas la opción dgRowSelect el TDBGrid ignora las opciones de InplaceEdit. Es algo normal según tengo entendido.

Lamentablemente, tendrás que buscar otro método para colocar el botón. Talvez te sirva pintar uno virtual en el evento OnDrawColumnCell.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 04-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
Hola,
tengo el botón criado en el evento OnDrawColumnCell:

Código Delphi [-]
  
procedure TFormPrincipal.Grid_propostaDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var 
  BUTTON: Integer; 
  R: TRect; 
  SCapt : string;

begin
if Column.FieldName = 'P_OBS_INATIVO' then
  begin 
    Grid_proposta.Canvas.FillRect(Rect);
    BUTTON := 0; 
    R:=Rect; 
    SCapt := 'Ren.';
    InflateRect(R,-2,0); 
    DrawFrameControl(Grid_proposta.Canvas.Handle,R,BUTTON, BUTTON or BUTTON); 
    with Grid_proposta.Canvas do
    begin 
      Brush.Style := bsClear; 
      Font.Color := clBtnText; 
      TextRect(Rect, (Rect.Left + Rect.Right - TextWidth(SCapt)) div 2, (Rect.Top + Rect.Bottom - TextHeight(SCapt)) div 2, SCapt); 
    end; 
  end;
end;
Saludos
Responder Con Cita
  #4  
Antiguo 06-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
DBGrid con botón

Hola a todos,
tengo un pequeño problema,
tengo un DBGrid y en una de las columnas tengo un botón
el problemas es que si coloco la propiedad dgRowSelect := True,
el botón no funciona y como False si funciona.
Estoy criando el botón con el siguiente código en el evento OnDrawColumnCell del DBGrid:

Código Delphi [-]
procedure TFormPrincipal.Grid_propostaDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var 
  BUTTON: Integer; 
  R: TRect; 
  SCapt : string;

begin
if Column.FieldName = 'P_OBS_INATIVO' then
  begin 
    Grid_proposta.Canvas.FillRect(Rect);
    BUTTON := 0; 
    R:=Rect; 
    SCapt := 'Ren.';
    InflateRect(R,-2,0); 
    DrawFrameControl(Grid_proposta.Canvas.Handle,R,BUTTON, BUTTON or BUTTON); 
    with Grid_proposta.Canvas do
    begin 
      Brush.Style := bsClear; 
      Font.Color := clBtnText; 
      TextRect(Rect, (Rect.Left + Rect.Right - TextWidth(SCapt)) div 2, (Rect.Top + Rect.Bottom - TextHeight(SCapt)) div 2, SCapt); 
    end; 
  end;
end;

sera que hay alguna otra opción para cuando seleccionar un registro pinte toda la linea.
Gracias
Responder Con Cita
  #5  
Antiguo 06-07-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
La imagen del botón que dibujas con la función DrawFrameControl aparece aún cuando activas la propiedad dgRowSelect? Cuál es en específico el problema que tienes?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 06-07-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola silvie! No deberías repetir hilos. Mejor es que sigas el hilo que habías creado ya una vez. Sin saber que habías vuelto hacer la pregunta, yo ya te he contestado en el otro.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 06-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.

Por favor no dupliques los temas, lee la guía de estilo , en especial el punto 6 .

Combiné ambos mensajes (el del foro Varios y el de BBDD) en el foro Varios.

Saludos y gracias por tu colaboración.

Edito: Veo que Chris ya había advertido la situación al estar redactando este mensaje.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 06-07-2011
gsilvei gsilvei is offline
Miembro
 
Registrado: jul 2006
Posts: 44
Poder: 0
gsilvei Va por buen camino
hola Chris y ecfisa,
disculpas por repetir el hilo,
y si mi boton aparece, solo que no da para clicar en el.
Saludos

Última edición por gsilvei fecha: 06-07-2011 a las 18:48:32.
Responder Con Cita
  #9  
Antiguo 06-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.

Lo que sucede es que estas dibujando un frame, pero es sólo eso: Un dibujo, no un TButton.

Creo que una de las soluciones es poner un TButton en el form, asignar su propiedad Visible a False, algún código en el evento OnClick y
luego hacer algo así:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
 DrawRect: TRect;
begin
  if Column.Field.FieldName = 'Nombre_de_tu_campo' then
  begin
    if (gdFocused in State) then
    begin
     Button1.Left:= Rect.Left + DBGrid1.Left+2;
     Button1.Top:= Rect.Top + DBGrid1.Top+2;
     Button1.Width:= Rect.Right-Rect.Left;
     Button1.Height:= Rect.Bottom - Rect.Top;
     Button1.Visible:= True;
    end
    else
    begin
     DrawRect:= Rect;
     InflateRect(DrawRect,-1,-1);
     DrawFrameControl(DBGrid1.Canvas.Handle, DrawRect, 0, 1);
    end;
  end;
end;
Podés jugar con los valores y el código dependiendo si queres que siempre se muestre el botón u ocultándolo en evento OnColExit del TDBgrid, etc, etc, dependiendo esto del comportamiento que desees tenga el botón.
El código es como para acercarte alguna idea.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-07-2011 a las 21:53:44.
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
button mjjj Varios 5 11-06-2007 20:45:40
BUtton yoko Varios 1 30-06-2006 04:28:05
Button en DBgrid Iskariote0087 Varios 2 15-05-2006 13:06:13
Button dentro de un dbgrid fabian20s Conexión con bases de datos 0 29-03-2005 00:17:30
Como ejecutar cbsEllipsis button de DbGrid en un Click? nefy OOP 4 17-04-2004 01:40:17


La franja horaria es GMT +2. Ahora son las 12:51:16.


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