Code Monkey home page Code Monkey logo

ecalendario's Introduction

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

ecalendario's People

Contributors

rafael-figueiredo-alves avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.