Ver Mensaje Individual
  #3  
Antiguo 04-03-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Lightbulb Me respondo yo mismo

Bueno.., intentando y intentando creo que lo he solucionado con el siguiente codigo:
Al crear el formulario....
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
item:=1;//varible global
//DBGrid1.Columns[0].ReadOnly:=True;//no me sirvio
DBGrid1.Columns[0].Color:=clBtnFace;
end;

Al entrar en una celda del DBGrid....(Focus)
Código Delphi [-]
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if DBGrid1.SelectedIndex=0 then
    DBGrid1.SelectedIndex:=1;
end;

Despues de poner al ClientDataSet1 en estado de Insersion
Código Delphi [-]
procedure TForm1.ClientDataSet1AfterInsert(DataSet: TDataSet);
begin
DataSet.Fields[0].AsInteger:=item;
item:=item+1;
 if DBGrid1.SelectedIndex=0 then
 DBGrid1.SelectedIndex:=1;
end;
Tengan en cuenta que lo que hago es solo una simulacion de que la columna cero(0)del dbGrid es (FixedCols), desde luego seguramente se puede mejorar.
Para probarlo presionen la tecla tab en un DBGrid que este enganchado a un ClientDataSet que contenga algunas columnas(Las que ustede quieran con la codicion de que la columna 0 sea de tipo entero y tenga como Nombre "Item").
Espero que alguien le sirva.
Saludos....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita