Utilizando o componente cxScheduler da DevExpress

Veja neste artigo uma breve apresentação do componente cxScheduler da biblioteca DevExpress para Delphi. Serão apresentados suas principais funcionalidades, juntamente como um exemplo onde se grava os dados dos agendamentos em uma arquivo local.

Um dos componentes mais complexos e ao mesmo tempo mais “extraordinários” da DevExpress é, sem dúvidas, o cxScheduler que nos permite montar toda uma estrutura de agenda com um único controle.

Explicar detalhadamente todas as propriedades, eventos e métodos do cxScheduler levaria algum tempo e um único artigo não seria bastante para isso. Então, o objetivo deste artigo é apresentar, de forma rápida, as principais funcionalidades deste componente através de exemplos práticos de uso.

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.


Figura 1: cxScheduler básico na tela

A respeito da imagem acima vale fazer algumas observações:

Executando o projeto, vemos que não é possível adicionar nenhum evento, dando dois cliques ou 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.


Figura 2: Menu de contexto do cxScheduler com opções desabilitadas

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.


Figura 3: Opção Go to Date

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 informações serão gravadas, como veremos a seguir.

Salvando a agenda em arquivo local

Uma das formas de se armazenar os dados da agenda é utilizando o componente auxiliar cxSchedulerStorage para salvar os agendamentos em um arquivo local. Então, para prosseguir adicione um componente desse ao form e o ligue ao cxScheduler através da propriedade Storage desse segundo.

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.

Listagem 1: Gravando os dados da agenda em arquivo

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction) begin</p> cxSchedulerStorage1.SaveToFile('D:\Agenda.txt'); end;

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.

Listagem 2: Carregando os dados do arquivo

procedure TForm1.FormShow(Sender: TObject); begin cxSchedulerStorage1.LoadFromFile('D:\Agenda.txt'); end;

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.


Figura 4: Adição de evento

Os campos encontrados nessa tela são os seguintes:


Figura 5: Alarme de evento

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).

Ainda na tela de cadastro de evento, clicando no botão “Recurrence” é possível definir configurações de repetição do evento, como mostra a Figura 6.


Figura 6: Definindo a repetição do evento

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.


Figura 7: Evento marcado na agenda

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.

O objetivo dessa publicação foi apresentar as principais funcionalidades do componente em execução, explicando o significado de cada um dos campos apresentados para o usuário.

Espero que o conteúdo aqui apresentado possa ser útil. Agradeço a atenção do leitor e até a próxima.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados