Ajuda - Busca - Membros - Calendário
Versão Completa: Focar Celula do DBgrid
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
robinhocne
Pessoal não estou conseguindo deixar focado uma celula no DBgrid quando não tem registro nenhum, eu faço dessa maneira mas não dá certo...ela sempre pula para a proxima....o que eu faço ???

QUOTE

if DbgClas.Fields[00].AsString = '' then
begin
DbgClas.SelectedIndex := 0;
end;


Jhonas
procure sempre ser detalhista na explicação, para poder obter uma resposta .. ok ?

em qual evento voce esta usando o comando ?
robinhocne
QUOTE(Jhonas @ 28/02/2011 - 10:54) *
procure sempre ser detalhista na explicação, para poder obter uma resposta .. ok ?

em qual evento voce esta usando o comando ?



opa, me desculpa, abri esse tópico e nem prestei atenção....


Eu utilizo o Evento OnColExit do DbGrid, nele eu tenho ligado um DataSource que está ligado a uma tabela temporário(RxMemoryData).
Onde gravo temporáriamente as informações do DbGrid e ai salvo, mas quando eu passo pela a coluna por exemplo a coluna 0 ( DbgClas.Fields[00].AsString ) que recebe o código da classificação eu verifico se existe algum valor

CODE
if DbgClas.Fields[00].AsString = '' then
  begin
    DbgClas.SelectedIndex := 0;
  end;


e quando está vazia em vez de ela ficar na primeira coluna ela pula para a proxima.
O que pode ser ?
Jhonas
exemplo:

Voce deve usar o evento OnKeyPress do DBGrid

CODE
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   if Key = #13 then  // se teclar <Enter >
      if not (ActiveControl is TDBGrid) then
         begin
            Key := #0;
            Perform(WM_NEXTDLGCTL, 0, 0);
         end
      else if (ActiveControl is TDBGrid) then
         with TDBGrid(ActiveControl) do
         if selectedindex < (fieldcount -1) then
            begin
               selectedindex := selectedindex + 1;
               CDS_Banco.Edit;
               case selectedindex of
                1 : CDS_BancoCODCLI.AsInteger  := CDS_CadcliCOD.AsInteger;
                2 : CDS_BancoDATA.value := now;
                3 : if CDS_BancoDEPOSITOS.AsString = '' then selectedindex := 3;
                4 : begin
                       // comandos
                    end;
            end;
end;


abraço
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.