Ver Mensaje Individual
  #9  
Antiguo 06-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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