setFocus na coluna da grid com o nome do campo que esta no banco

04/10/2019

0

Bom dia,

Tenho um problema, quando quero colocar o foco para uma coluna especifica pelo nome do campo no banco, nao da certo

porem se eu fizer colocando o numero da ordem da coluna, exemplo coluna 4, ai da certo, mas queria pelo nome do campo

Eu desejava dessa forma, porem assim ele nao da o foco.
if condicao then
  grdAjuste.SetFocus(''''id_codigo'''');

Agora se eu fizer assim...
if condicao then
grdAjuste.SetFocus(4);

assim da, porem dessa forma eu acho errado...

se alguem puder me ajudar...

Obrigado.
Mateus Ferreira

Mateus Ferreira

Responder

Posts

04/10/2019

Mateus Ferreira

ignorem o tanto de aspas no primeiro codigo...apenas uma antes e uma depois
Responder

04/10/2019

Emerson Nascimento

crie uma função que te retorne o índice do campo a partir do nome, e use esse resultado para posicionar na coluna da grade.
algo assim:
function GridFieldID( oGrid: TDBGrid; strField: string ): integer;
var indice: integer;
begin
  result := -1;
  for indice := 0 to oGrid.Columns.Count-1 do
    if uppercase(oGrid.Columns.Items[indice].FieldName) = uppercase(strField) then
    begin
      result := indice;
      exit
    end;
end;

daí você usa assim:
if condicao then
  grdAjuste.SetFocus( GridFieldID( grdAjuste, 'id_codigo' ) );
Responder

04/10/2019

Mateus Ferreira

Obrigado parceiro
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar