setFocus na coluna da grid com o nome do campo que esta no banco
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.
Agora se eu fizer assim...
assim da, porem dessa forma eu acho errado...
se alguem puder me ajudar...
Obrigado.
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
Curtidas 0
Respostas
Mateus Ferreira
04/10/2019
ignorem o tanto de aspas no primeiro codigo...apenas uma antes e uma depois
GOSTEI 0
Emerson Nascimento
04/10/2019
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:
daí você usa assim:
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' ) );
GOSTEI 0
Mateus Ferreira
04/10/2019
Obrigado parceiro
GOSTEI 0