Skip to content

Latest commit

 

History

History
128 lines (92 loc) · 7.51 KB

README.md

File metadata and controls

128 lines (92 loc) · 7.51 KB

logotipo

Informações sobre projeto Status do projeto Versão estrelas do projeto Linhas Mais linhas arquivos

You can read this Readme.md in English if you want by clicking here.

Descrição: Componente Delphi Firemonkey que pode ser facilmente implementado em todas as plataformas que o framework Firemonkey compila (Windows 32-bit, Windows 64-bit, MacOS, iOS, Linux, Android). O objetivo é ser um calendário simples de ser implementado em runtime (este componente não funciona em Design time).

imagem do componente em inglês imagem do componente em português

Features

  • Componente criado em runtime;
  • Utiliza o conceito de interfaces;
  • É personalizável;
  • Possui animações e pode ser customizado de formas simples
  • Possui suporte para dois idiomas (Português e Inglês);
  • Dispensa instalação de package, basta adicionar a unit ou usar o Boss para gerenciar as dependências (Recomendado);
  • Componente estará em constante atualização para trazer novos recursos e fixes;
  • Simples de usar.

Como começar a usar o componente

Para começar a usar o eCalendário, você precisa apenas da Unit eCalendario.component.pas e do eCalendario.component.fmx. Você pode baixar o zip do código (ou mesmo do release que é mais recomendável) e adicionar no seu projeto ou utilizar o Boss, com os comandos abaixo:

Para iniciar o projeto (criar arquivo boss.json e poder controlar as dependências)

Boss init

Para instalar o eCalendario como dependência

Boss install https://github.com/rafael-figueiredo-alves/eCalendario

Depois basta usar o código da seção abaixo para utilizar e não esquecer de declarar a Unit eCalendario.Component.pas nas uses onde desejar usar o calendário.

Como colocar o eCalendario no form do seu projeto

A primeira coisa a fazer para poder usar o eCalendario em um dos formulários do seu projeto, é colocar um Tlayout no form com as propriedades Height de pelo menos 340 e Width de pelo menos 300.

imagem do form com TLayout

Agora, no evento onCreate (pode ser também no onShow), você deverá utilizar os seguintes comandos na seguinte ordem:

TeCalendario.New(formulário ao qual calendario será vinculado , layout onde o calendário será renderizado)

Este comando serve para criar o eCalendario, chamando a classe (que é uma interface) TeCalendario e chamando o método New (que criará uma instância da classe), onde definiremos dois parametros: o formulário onde será usado o calendário, e o Tlayout onde será renderizado.

onClickDate(Função a ser acionada ao se clicar num dia ou ao trocar-se os meses e anos no calendário)

Este comando deve vir após a criação para associar o método (ação) que será usado quando trocarmos a data, seja clicando numm dia, trocando o mês ou o ano. O parametro deve ser uma function com a seguinte assinatura: function nome_da_função (Data: TDate);

Locale(aceita os valores: ptBr | EN | Espanol | Fr | It | Ger )

O comando Locale é usado para definir o idioma do calendário. Há seis possibilidades:

  • ptBr - Para definir o calendário na língua portuguesa;
  • EN - Para definir o calendário na língua inglesa.
  • Espanol - Para definir o calendário na língua Espanhola
  • Fr - Para definir o calendário na língua Francesa.
  • It - Para definir o calendário na língua Italiana.
  • Ger - Para definir o calendário na língua Alemã.

StartDate(aceita um valor do tipo TDate ou TDateTime, como o now())

O StartDate é usado para definir a data atual (o hoje) ou a data que deve estar selecionada por padrão. Deve receber um parametro no formato TDate ou TDateTime.

ShowCalendar;

É este último comando que realiza a mágica de exibir um calendário no nosso formulário dentro do layout definido no método New. Veja abaixo um exemplo de código para usar o eCalendario usando o que foi apresentado:

procedure TFormMain.FormCreate(Sender: TObject);
begin
  teCalendario.New(self, Layout1)
                .onClickDate(ExibeData)
                .Locale(ptBr)
                .StartDate(Now)
                .ShowCalendar;
end;

procedure TFormMain.ExibeData(Data: TDate);
begin
  Label1.Text := DateToStr(Data);
end;

Configurando o calendário

Se desejar personalizar o calendário, pode-se editar diretamente no arquivo eCalendario.Component.fmx ou pode-se usar o seguinte código:

                .config
                  .BackgroundColor(talphaColors.Yellow)
                  .SundaysColor(talphacolors.Red)
                  .SelectorColor(TAlphaColors.Blue)
                  .DaysColor(TAlphaColors.Blue)
                  .LineColor(TAlphaColors.Blue)
                  .MonthYearColor(TAlphaColors.Blue)
                  .ButtonsColor(TAlphaColors.Blue)                  
                  .&End

O comando Config permite abrir as opções de edição. Em BackgroundColor(), você configura a cor de fundo do calendário (que é branco por padrão), sendo que o parametro a ser usado deve ser do tipo TAlphaColors. O comando SundaysColor() é o responsável por definir a cor dos domingos no calendário (que por padrão é azul). Aceita parametro do tipo TAlphaColors. O comando SelectorColor() é o responsável por definir a cor do seletor e aceita parametro do tipo TAlphaColors. Para setar a cor da linha, dos botões, do nome do mês e ano use os respectivos comandos: LineColor(), MonthYearColor(), ButtonsColor(). Para definir a cor dos dias, com exceção dos Domingos, utilize o comando DaysColor(). Todos esses comandos esperam um parametro do tipo TAlphaColors. O comando &End sai da interface de configuração e volta para a principal. Veja o trecho do Código abaixo com a adição de uma customização simples:

procedure TFormMain.FormCreate(Sender: TObject);
begin
  teCalendario.New(self, Layout1)
                .onClickDate(ExibeData)
                .Locale(ptBr)
                .StartDate(Now)
                .config
                  .BackgroundColor(talphaColors.Yellow)
                  .SundaysColor(talphacolors.Red)
                  .&End
                .ShowCalendar;
end;

Quer ajudar?

Sua contribuição é muito bem vinda, seja uma identificação de erro (issue) ou um Pull request. Fique a vontade para contribuir. Se desejar, ficaria feliz se puder divulgar este trabalho para outras pessoas.

Rafael de Figueiredo Alves