Fórum como pintar colunas no dbgrid apos locate #294373

03/09/2005

0

ola amigos, tenho dezenas de registros e 3 colunas em 1 tabela, preciso pintar somente as 3 colunas apos o locate, como proceder?

poste o codigo por favor

junior


Njuniorba

Njuniorba

Responder

Posts

03/09/2005

Bruno Belchior

var
  Cont: Byte;
begin
  if Table1.Locate(´Name´, ´Boa´, []) then
  begin
    for Cont := 0 to 2 do
      DBGrid1.Columns[Cont].Color := clRed;
  end;
end;


Pelo menos foi o que entendi que queria fazer... :oops:


Responder

Gostei + 0

03/09/2005

Njuniorba

[quote=´Bruno Belchior´]
var
  Cont: Byte;
begin
  if Table1.Locate(´Name´, ´Boa´, []) then
  begin
    for Cont := 0 to 2 do
      DBGrid1.Columns[Cont].Color := clRed;
  end;
end;


Pelo menos foi o que entendi que queria fazer... :oops:


eh a ideia, mas ele esta pintando todo o grid, quero pintar somente uq achei ex:

coluna1 coluna2 coluna3
BOLA AZUL GRANDE
MEIA PRETA SUJA

se eu busco por MEIA , kero q apos o locate pinte toda a linha da meia, no caso

-> MEIA PRETA SUJA


Responder

Gostei + 0

04/09/2005

Gigatel

Estude este código
SELECT DEPT_NO, FIRST_NAME, LAST_NAME, JOB_CODE 
FROM EMPLOYEE 
WHERE UPPER(CAST(DEPT_NO AS CHAR(6))||FIRST_NAME||LAST_NAME||JOB_CODE)
LIKE…



aki seleciona somente o procurado.. ainda num tive tempo de trabalhar neste função..


Responder

Gostei + 0

05/09/2005

Bruno Belchior

mas você já não a seleciona com o locate? ou vc quer restringir a sua grid a apenas o conteúdo que o [b:de34d66ee5]locate[/b:de34d66ee5] possivelmente encontrou :?:


Responder

Gostei + 0

05/09/2005

Martins

[quote:4a7ee031cd=´Bruno Belchior´]
var
  Cont: Byte;
begin
  if Table1.Locate(´Name´, ´Boa´, []) then
  begin
    for Cont := 0 to 2 do
      DBGrid1.Columns[Cont].Color := clRed;
  end;
end;
Pelo menos foi o que entendi que queria fazer... :oops:


eh a ideia, mas ele esta pintando todo o grid, quero pintar somente uq achei ex:

coluna1 coluna2 coluna3
BOLA AZUL GRANDE
MEIA PRETA SUJA

se eu busco por MEIA , kero q apos o locate pinte toda a linha da meia, no caso

-> MEIA PRETA SUJA[/quote:4a7ee031cd]

Olha só, o [b:4a7ee031cd]Bruno[/b:4a7ee031cd] lhe passou o código pro q vc pediu, vc foi bem claro em dizer ´ola amigos, tenho dezenas de registros e 3 colunas em 1 tabela, [b:4a7ee031cd]preciso pintar somente as 3 colunas apos o locate[/b:4a7ee031cd], como proceder?´. Vc queria pintar as 3 colunas do seu Grid, o código faz isso, mas se a intenção era encontrar um código q pintasse apenas a linha selecionada com [b:4a7ee031cd]Locate[/b:4a7ee031cd], vc deveria de escrito linha ou invés de coluna, por tanto tente mudar o código de Columns para Rows, deve funcionar OK!!

Boa Sorte!!!


Responder

Gostei + 0

05/09/2005

Martins

Só pra lembrar q vc deve fazer algumas modificações no código do [b:86cdbd0e5d]Bruno[/b:86cdbd0e5d], pq vc não quer selecionar as 3 colunas e sim a linha encontrada pelo locate, então faça as devidas modificações no código.

Boa Sorte!!!!


Responder

Gostei + 0

05/09/2005

Bruno Belchior

Na verdade no caso de linhas não é tão simples assim. Par isso coloque esse código no evento [b:375a286be3]OnDrawColumCell[/b:375a286be3] do seu grid:
  if gdSelected in State then
    if UpperCase(Column.FieldName) = UpperCase(´Name´) then
      DBGrid1.Canvas.Brush.Color := clRed;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
o detalhe é que aqui eu comparei apenas com a columa [b:375a286be3]Name.[/b:375a286be3] Mas é só você adaptar a suas necessidades comparando com todas as colunas que você queira mudar de cor... (obs.: o código só funciona para o registro selecionado, o mesmo que estaria por exemplo num DBEdit associado ao mesmo DataSource)... :wink:


Responder

Gostei + 0

05/09/2005

Martins

[quote:f3eefef3f5=´Bruno Belchior´]Na verdade no caso de linhas não é tão simples assim. Par isso coloque esse código no evento [b:f3eefef3f5]OnDrawColumCell[/b:f3eefef3f5] do seu grid:
  if gdSelected in State then
    if UpperCase(Column.FieldName) = UpperCase(´Name´) then
      DBGrid1.Canvas.Brush.Color := clRed;
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
o detalhe é que aqui eu comparei apenas com a columa [b:f3eefef3f5]Name.[/b:f3eefef3f5] Mas é só você adaptar a suas necessidades comparando com todas as colunas que você queira mudar de cor... (obs.: o código só funciona para o registro selecionado, o mesmo que estaria por exemplo num DBEdit associado ao mesmo DataSource)... :wink:[/quote:f3eefef3f5]

Blz [b:f3eefef3f5]Bruno[/b:f3eefef3f5], agora o colega vai poder utilizar o Grid como queria.

Valew!!!!!


Responder

Gostei + 0

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

Aceitar