Verificar item selecionado
Ola pessoal,
eu preciso selecionar um determinado campo no meu grid, e todos os campos do mesmo nome precisam ser selecionados junto . No caso são ruas, selecionando a rua 1 todas as outras ruas 1 serão selecionadas junto automaticamente e trocar de cor para depois quanto selecionada outra rua estas fiquem marcadas de vermelho digamos, indicando que já foi selecionada.
Vlw
eu preciso selecionar um determinado campo no meu grid, e todos os campos do mesmo nome precisam ser selecionados junto . No caso são ruas, selecionando a rua 1 todas as outras ruas 1 serão selecionadas junto automaticamente e trocar de cor para depois quanto selecionada outra rua estas fiquem marcadas de vermelho digamos, indicando que já foi selecionada.
Vlw
Is Informação
Curtidas 0
Respostas
Wilson Junior
22/02/2011
Você pode ter uma coluna oculta, informando o status.
Exemplo:
0 - Não faz nada;
1 - Rua selecionada atualmente;
2 - Rua que foi selecionada
Sendo assim, no evento OnDraw do seu grid use para pintar as células com o valor desta coluna oculta.
Espero ter colaborado.
Exemplo:
0 - Não faz nada;
1 - Rua selecionada atualmente;
2 - Rua que foi selecionada
Sendo assim, no evento OnDraw do seu grid use para pintar as células com o valor desta coluna oculta.
Espero ter colaborado.
GOSTEI 0
Is Informação
22/02/2011
Poderia me dar um exemplo pratico,
pois não entendi a parte que as outra linhas com o mesmo valor seram selecionados.
Já me deu uma luz,
Abraço
pois não entendi a parte que as outra linhas com o mesmo valor seram selecionados.
Já me deu uma luz,
Abraço
GOSTEI 0
Wilson Junior
22/02/2011
Que componente é a sua grade (TstringGrid, TDrawGrid, TDBGrid, etc)?
GOSTEI 0
Is Informação
22/02/2011
TDbgrid, esta pronto só preciso fazer a parte de selecionar e depois colorir os que eu jah selecionei,
vou usar um (bitbtn), para poder marcar quais foram selecionados e colorir, soh preciso descobrir como
vou usar um (bitbtn), para poder marcar quais foram selecionados e colorir, soh preciso descobrir como
GOSTEI 0
Wilson Junior
22/02/2011
- Crie um campo virtual no seu SQL do DBGrid, para poder ter esta coluna.
Exemplo: SELECT *, CAST(0 AS SMALLINT) AS Status FROM NOME_TABELA
- No envento OnDrawColumnCell do seu TDBGrid, faça:
- No clique do seu botão, percorra o o seu ClientdataSet alterando o campo Status de cada registro.
Espero ter colaborado.
Exemplo: SELECT *, CAST(0 AS SMALLINT) AS Status FROM NOME_TABELA
- No envento OnDrawColumnCell do seu TDBGrid, faça:
if (TDBGrid(Sender).DataSource.DataSet <> nil )
and ( not (gdSelected in State) )
and ( TDBGrid(Sender).DataSource.DataSet.FieldByName('Status').AsInteger <> 0 ) then
begin
if ( UpperCase(Column.FieldName) = UpperCase('Status') ) then
begin
TDBGrid(Sender).Canvas.FillRect( Rect );
if TDBGrid(Sender).DataSource.DataSet.FieldByName('Status').AsInteger = 1 then
TDBGrid(Sender).Canvas.Brush.Color := clGreen
else //Status = 2
TDBGrid(Sender).Canvas.Brush.Color := clRed
;
TDBGrid(Sender).Canvas.Font.Color := clWhite;
TDBGrid(Sender).DefaultDrawDataCell(
Rect, TDBGrid(Sender).Columns[DataCol].Field, State );
end
;
end
;
- No clique do seu botão, percorra o o seu ClientdataSet alterando o campo Status de cada registro.
Espero ter colaborado.
GOSTEI 0