 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
28440959842 Aprendiz

Registrado: Quinta-Feira, 12 de Abril de 2012 Mensagens: 166
|
Enviada: Qua Mar 02, 2016 12:52 am Assunto: Ocultar Colunas no dbgrid |
|
|
Amigos, estou com uma dúvida,
Para ocultar uma coluna no dbgrid faço o seguinte:
| Código: | | DBGrd2.Columns[8].Visible := False; |
Blz, mas o que gostaria é o seguinte.
tenho um dbgrid com 24 colunas, onde cada uma é um horário, 01:00, 02:00, 03:00....00:00
fiz um cadastro de turno onde tenho 3 horários, ou posso ter mais, como por exemplo:
horário 1 - 07:00 as 15:00
horario 2 15:00 as 23:00
horario 3 23:00 as 07:00
então, quando o usuário das 07:00 as 15:00 entrassem no sistema, só ficasse visível as colunas das 07:00 as 15:00.
como se pegasse colunas <07>15:00 disable, mas como faz isso no delphi?
Abraços! |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mar 02, 2016 10:12 am Assunto: |
|
|
Bom dia,
Acho que você pode utilizar um looping para varrer as colunas do DBGrid e verificar se cada coluna está dentro do intervalo.
Exemplo utilizando o título da coluna para fazer a comparação:
| Código: | var
i: integer;
HoraAux := TTime;
// ...
begin
// ...
for i := 0 to DBGrd2.Columns.Count - 1 do
begin
HoraAux := StrToTime(DBGrd2.Columns[i].Title);
DBGrd2.Columns[i].Visible :=
( (dm1.DataSet1.FieldByName('HoraFim').AsDateTime > dm1.DataSet1.FieldByName('HoraIni').AsDateTime) and
(HoraAux >= dm1.DataSet1.FieldByName('HoraIni').AsDateTime) and
(HoraAux <= dm1.DataSet1.FieldByName('HoraFim').AsDateTime) ) or
( (dm1.DataSet1.FieldByName('HoraFim').AsDateTime < dm1.DataSet1.FieldByName('HoraIni').AsDateTime) and
( (HoraAux >= dm1.DataSet1.FieldByName('HoraIni').AsDateTime) or
(HoraAux <= dm1.DataSet1.FieldByName('HoraFim').AsDateTime) ) );
end; |
Espero que ajude
Editado pela última vez por imex em Seg Dez 04, 2023 11:39 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
28440959842 Aprendiz

Registrado: Quinta-Feira, 12 de Abril de 2012 Mensagens: 166
|
Enviada: Qua Mar 02, 2016 12:25 pm Assunto: |
|
|
Obrigado meu amigo, vou fazer o teste aqui, apenas para tirar uma dúvida, tenho 24 colunas no dbgrid, faço o laço para cada coluna?
Abraços! |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Mar 02, 2016 1:40 pm Assunto: |
|
|
| Não, você executa o laço apenas uma vez para o DBGrid. |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|