Nesse artigo mostraremos o TMS Pack, uma opção de pacote de componentes de terceiros para FireMonkey.
Artigos Delphi TMS Pack para FireMonkey
Utilidade do TMS Pack
Com o recente lançamento de sua versão XE4, o Delphi teve seu leque de recursos expandido com a adição do suporte ao desenvolvimento Mobile para a plataforma iOS. Isso veio a solidificar ainda mais o conceito cross-platform adotado pela ferramenta, em complemento ao suporte ao Win32, Win64 e Mac OS X já anteriormente existentes. Em meio a esta evolução o FireMonkey, em razão de sua característica multiplataforma, se apresenta naturalmente como o elemento chave que irá possibilitar a construção de aplicações para todas essas plataformas. Dito isto, torna-se essencial a busca por seu aprendizado mais aprofundado, tal como o conhecimento sobre opções de componentes de terceiros, que visam suprir algumas necessidades até então não atendidas pelos componentes nativos.
TMS Pack for FireMonkey é um conjunto de componentes específicos para o framework cross-platform de aplicações da Embarcadero, o FireMonkey. Logo, cada componente presente no pacote é projetado para ser utilizado em interfaces de usuário de aplicações voltadas a esta tecnologia. Isso significa dizer que eles estarão presentes no desenvolvimento de aplicações Delphi para diferentes plataformas e dispositivos, vide PCs (Windows 32/64 bits e Mac OS X) e mais recentemente, tablets e smartphones (iOS). Por conseguinte, o presente artigo trará uma visão geral dos principais componentes presentes no pacote, abordando seus conceitos relacionados tanto no aspecto técnico quanto no aspecto prático.
Componentes do TMS Pack
Uma vez que é instalado, o TMS Pack for FireMonkey adiciona à Tool Palette do IDE do Delphi duas novas categorias de componentes, denominadas TMS FMX UI e TMS FMX Instrumentation (Figura 1). Cada categoria engloba uma extensa quantidade de componentes, o que inviabiliza, por questões de espaço, uma abordagem totalmente completa do pacote. Dessa forma, aqui serão tratados apenas alguns deles, com a intenção de enfatizar aqueles considerados mais usuais.
Figura 1. Categorias de componentes do TMS Pack for FireMonkey
Componente de pop-up cujo layout é projetado com base na janela pop-up nativa do iOS. Somente essa característica já o difere de qualquer elemento padrão similar, contudo, ele apresenta outras capacidades singulares. A começar pelo seu design totalmente personalizável, partindo de uma estrutura composta por cabeçalhos, rodapés, botões e conteúdos formatados em HTML. Além disso, o componente provê internamente a visualização de qualquer tipo de controle FireMonkey.
Componente simples de classificação, cuja estilização básica apresenta o indicativo de estrelas. Em uma dada aplicação, o mesmo poderia ser utilizado para indicar o nível de satisfação do usuário perante alguma informação ou serviço, através do apontamento do número de estrelas.
Este componente nada mais é do que uma variação do TEdit clássico do FireMonkey, voltado ao contexto de buscas, tal qual seu nome sugere. Para isso são adicionados à sua estrutura visual dois botões, interpretados como Find e Clear, em alusão aos processos de pesquisar e apagar o conteúdo do controle. Em razão disso o componente conta ainda com eventos exclusivos (OnClickFind e OnClickClear) para a interação de ambos, assim como propriedades para o manuseio da visibilidade de cada um (ShowFind e ShowClear).
Componente que descende de TSpeedButton, incorporando a capacidade de exibir uma imagem em seu conteúdo. Além disso, TTMSFMXSpeedButton provê ainda uma propriedade denominada StaysPressed, que causa o efeito de manter o botão pressionado assim que é clicado. Aliado a essa funcionalidade, está outra propriedade de nome GroupName. Através dela, é possível se definir um nome para determinado agrupamento de botões do tipo TTMSFMXSpeedButton e fazer com que cada elemento atue, por exemplo, como um RadioButton. Na prática isto faz com que sempre apenas um botão do grupo fique pressionado.
Componente de relógio que opera basicamente em dois modos. Quanto "ativo" (propriedade Active = True), sua marcação de tempo se baseia no horário atuante na própria máquina em que está sendo rodado o aplicativo que o possui. Do contrário, a marcação de tempo toma como base o valor definido em sua propriedade ClockTime, tal como a seguir: