como pintar colunas no dbgrid apos locate
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
poste o codigo por favor
junior
Njuniorba
Curtidas 0
Respostas
Bruno Belchior
03/09/2005
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:
GOSTEI 0
Njuniorba
03/09/2005
[quote=´Bruno Belchior´]
Pelo menos foi o que entendi que queria fazer... :oops:
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
GOSTEI 0
Gigatel
03/09/2005
Estude este código
aki seleciona somente o procurado.. ainda num tive tempo de trabalhar neste função..
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..
GOSTEI 0
Bruno Belchior
03/09/2005
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 :?:
GOSTEI 0
Martins
03/09/2005
[quote:4a7ee031cd=´Bruno Belchior´]
Pelo menos foi o que entendi que queria fazer... :oops:
var Cont: Byte; begin if Table1.Locate(´Name´, ´Boa´, []) then begin for Cont := 0 to 2 do DBGrid1.Columns[Cont].Color := clRed; end; end;
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!!!
GOSTEI 0
Martins
03/09/2005
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!!!!
Boa Sorte!!!!
GOSTEI 0
Bruno Belchior
03/09/2005
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: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:
if gdSelected in State then if UpperCase(Column.FieldName) = UpperCase(´Name´) then DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
GOSTEI 0
Martins
03/09/2005
[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: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!!!!!
if gdSelected in State then if UpperCase(Column.FieldName) = UpperCase(´Name´) then DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Blz [b:f3eefef3f5]Bruno[/b:f3eefef3f5], agora o colega vai poder utilizar o Grid como queria.
Valew!!!!!
GOSTEI 0