Ver Mensaje Individual
  #24  
Antiguo 05-09-2007
mcalmanovici mcalmanovici is offline
Miembro
 
Registrado: jun 2006
Posts: 78
Reputación: 18
mcalmanovici Va por buen camino
Cuando hago dos veces click en el comboBox desaparece el mismo

Hola gente:
revivo este hilo para ver si me pueden ayudar con el problemita que tengo...
Me sirvio un montón todo lo que pusieron en el hilo este...
Puse en mi programa el código prupuesto por "el_barto", solo que lo hice para string y no booleano... Les copio el código para que no tengan que revisar hacia atras:

Código Delphi [-]
procedure TwMain.DBGrid4CellClick(Column: TColumn);//Cambia el estado del checkBox si es que el usuario hace un click sobre él.
begin
  if Column.FieldName = 'administrador' then
  begin
    CDSAbmUsuario.Edit;
    if CDSAbmUsuario.FindField('administrador').AsString = 'S' then
      CDSAbmUsuario.FindField('administrador').AsString := 'N'
    else
      CDSAbmUsuario.FindField('administrador').AsString := 'S';
    CDSAbmUsuario.Post;
    Dbgrid4.Repaint;
   end;
end;
procedure TwMain.DBGrid4DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);//Dibuja el checkBox en el dbGrid de usuarios (dbGrid4).
var
  Check: Integer;
  R: TRect;
begin
  if Column.FieldName = 'administrador' then //Primero que nada me fijo si es el campo administrador que yo quiero que sea checkBox.
  begin
    DBGrid1.Canvas.FillRect(Rect);//Construye la región rectangular del checkBox.
    Check := 0;
    if CDSAbmUsuario.FindField('administrador').AsString = 'S' then
      Check := DFCS_CHECKED; //Pone tilde en el checkBox si el campo administrador es 'S'
    R:=Rect;
    InflateRect(R,-2,-2); //Disminuye el tamaño del CheckBox
    DrawFrameControl(DBGrid4.Canvas.Handle,R,DFC_BUTTON, DFCS_BUTTONCHECK or Check);
  end;
end;
Me esta andando bastante bien el comboBox en el dbgrid...
El problema es el siguiente: hago click en el comboBox y me anda perfecto, ahora cuando vuelvo a hacer click en el mismo registro sin irme a otro desaparece el comboBox. Para que aparezca me tengo que ir a otro registro de dbgrid.....
No sé si alguien tiene alguna solución para este problema...

Desde ya agradezco sus repuestas.
Muchas gracias.
Mariano.

Última edición por marcoszorrilla fecha: 04-02-2010 a las 06:52:52.
Responder Con Cita