Escolar Documentos
Profissional Documentos
Cultura Documentos
idcomp=25800
www.devmedia.com.br
[versão para impressão]
Link original: https://www.devmedia.com.br/utilizando-o-componente-cxscheduler-da-devexpress/25800
Para iniciar, crie uma nova aplicação de formulário no Delphi (File > New > VCL Forms Application)
e no form principal adicione um componente cxScheduler, como mostra a Figura 1.
1 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
No lado esquerdo tem-se uma marcação vertical referente ao horário. A marcação é feita a cada 30 min,
aos quais corresponde uma linha no centro (região amarela). Não significa que os eventos da agenda só
podem ser definidos em horários múltiplos de trinta minutos, essa é apenas uma marcação visual para
facilitar a identificação.
Ainda na marcação dos horários, há uma linha horizontal (de cor laranja, na figura) que indica o horário
atual. Mesmo em tempo de design esta linha se mantém em uma posição fiel. Assim, no momento da
captura da Figura 1, o relógio marcava aproximadamente 11h20.
Nas laterais da região amarela existem dois botões: “Previous appointment” e “Next apointment” que,
quando houver eventos agendados antes ou depois do dia e horário que se está visualizando, levarão o
usuário até eles.
Na parte superior direita, há um calendário que pode ser usado, inclusive em tempo de design, para
navegar entre as datas.
Clicando com a direita sobre o controle, em tempo de design a primeira opção do menu de contexto é
“Active view”, que permite escolher a forma como a agenda é exibida (diária, semanal, mensal, etc).
Executando o projeto, vemos que não é possível adicionar nenhum evento, dando dois cliques ou
2 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
clicando com a direita sobre o horário. Como vemos na Figura 2, as opções do menu de contexto
principal estão desabilitadas, sendo permitido utilizar apenas duas opções de navegação.
A opção “Today” faz com que a agenda exiba a data atual, enquanto a opção “Go to Date...”
permite ir para uma data específica, conforme a Figura 3.
O campo “Show In” define o tipo de calendário que será exibido após a busca. As opções são:
diário, semanal, mensal e semanal com apenas os dias úteis.
A inserção de eventos está desabilitada porque nenhuma forma de armazenamento foi definida
ainda. É necessário escolher um arquivo ou um uma conexão com ou banco de dados no qual as
3 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
Para testes, os dados serão salvos quando o formulário for fechado, pois nesse ponto o usuário já
deve ter feito todas as inserções, alterações e exclusões necessárias. No evento onClose do
formulário principal, adicione o código para gravar os dados conforme mostra a Listagem 1.
Em seguida, acesse o evento OnShow do formulário e insira o código para carregar os dados da
agenda a partir do arquivo previamente gravado. Caso o arquivo não exista, será gerado um erro,
então crie um arquivo de texto com nome e caminho que informou no método SaveToFile.
Nos exemplos foi utilizado o path ‘D:\Arquivo.txt’, mas outros formatos também podem ser
utilizados. Porém, o formato escolhido não reflete diretamente na forma como os dados são
dispostos no arquivo.
Os métodos para salvar e carregar os dados já foram definidos, pode-se então testar o
funcionamento do projeto. Para isso, execute-o, escolha um horário e dê dois cliques sobre a linha
correspondente na região amarela. Uma janela como a da Figura 4 será mostrada.
4 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
5 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
Quando o alarme é exibido, pode-se utilizar a opção “soneca” (snooze) para adiá-lo por alguns
minutos, ou finalizar a tarefa usando os botões “Dismiss” ou “Dismiss All” (para finalizar todas).
6 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
Nessa tela pode-se definir que o evento repete-se diariamente, semanalmente, mensalmente ou
anualmente, utilizando uma das várias opções disponíveis.
Na parte inferior pode ser escolhida uma data de encerramento do evento ou uma quantidade de
vezes que o evento vai se repetir até ser encerrado.
Registre um evento e feche a aplicação. Em seguida, execute novamente o projeto e veja que o
agendamento foi gravado no arquivo e carregado na abertura do formulário.
7 of 8 14/01/2019 13:30
Utilizando o componente cxScheduler da DevExpress https://www.devmedia.com.br/view/print.php?idcomp=25800
Conclusão
Como foi possível ver ao longo deste artigo, não é complicado criar um sistema de agendamento
simples utilizando o cxScheduler e armazenando dados em um arquivo local. Certamente a maioria
deve preferir armazenar as informações em um banco de dados, separar por usuário, etc, mas este
assunto caberia a outro artigo, pois requer um maior detalhamento do componente e de algumas
de suas propriedades e componentes auxiliares.
Espero que o conteúdo aqui apresentado possa ser útil. Agradeço a atenção do leitor e até a
próxima.
8 of 8 14/01/2019 13:30