Este é um post disponível para assinantes MVPCriando uma deskbar - Revista Clube Delphi 134
O artigo trará uma abordagem prática dos temas programação orientada a objetos, generics, herança x composição, refactoring, interface com o usuário e API do Windows. Esses temas serão combinados de modo a produzir uma Deskbar que pode conter íc
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da ClubeDelphi 134
Existem no mercado vários programas para atuar como barra de ferramentas da área de trabalho. No Windows XP era possível colocar atalhos em uma pasta e “arrastar” esta pasta contendo somente atalhos para um canto do desktop, que ela se tornava automaticamente uma barra de ferramentas. Era possível configurar essa barra para se auto-ocultar e para exibir ícones pequenos e sem descrição, tornando a área de trabalho bem limpa, pois era possível se livrar de todos aqueles atalhos na área de trabalho.
No Windows 7 há aqueles gadgets da área de trabalho que podem conter um relógio, leitores de RSS e outras (in)utilidades. No entanto não é possível colocar atalhos para programas nesta barra.
Outro produto digno de nota é o google desktop, que além de trazer várias funcionalidades para a desktop ainda conta com as buscas do google e com uma eficiente indexação e busca de e-mails e arquivos em seu próprio computador. Esta também não permite criação de atalhos para programas, mas possui uma função interessante onde é possível digitar o nome de um programa, e o mesmo será aberto, caso seja encontrado.
Há os programas que criam apenas barras de atalhos bonitas para tentar imitar o estilo das barras de ferramentas do Mac, como a RK Launcher e a Object Dock. Esses aplicativos podem parecer simples, mas há uma lógica bem elaborada em seu comportamento e na sua apresentação. Por exemplo o recurso de ocultar-se automaticamente faz com que a barra desapareça em uma lateral qualquer da tela para reaparecer apenas quando o mouse toca essa lateral. Uma desvantagem desse comportamento é que a barra pode ser ativada “sem querer” caso seja necessário levar o mouse para um ponto extremo da tela, como o botão fechar de uma janela maximizada ou para virar a “câmera” em um jogo encostando o cursor no limite da tela para “enxergar” do outro lado.
Se a barra estiver na direita ela pode ser ativada sem querer ao se clicar no botão fechar de um programa. Na parte inferior ela será ativada sempre que for necessário clicar no menu iniciar ou em uma janela minimizada. Na esquerda atrapalha sempre que se for usar os ícones da esquerda, como a lixeira, e na parte superior ela pode atrapalhar ao se navegar na internet ou acessar menus de janelas maximizadas.
Parece uma coisa simples, e que pode ser configurada, mas ninguém pensa nisso. Usabilidade também significa ter o comportamento que vai incomodar menos por padrão, sem a necessidade de se configurar nada. E principalmente para quem trabalha com o computador o dia inteiro, usabilidade significa produtividade. A produtividade é diferente para cada tipo de trabalho. Enquanto uma “notificação de e-mail” pode tornar um vendedor ou comprador super eficiente em responder seus e-mails e se comunicar ou negociar com clientes e fornecedores, a mesma notificação de e-mail pode atrapalhar um programador ou designer quando este estiver precisando de concentração.
Particularmente eu acho interessante o comportamento de ao se aproximar o mouse exibir apenas uma área bem fina da barra de ferramentas, e esta só abrir mediante um clique. Acho que esse comportamento não prejudica a usabilidade e não atrapalha no uso de um browser, por exemplo.
Vale ressaltar que algumas dessas barras usam recursos gráficos como transparências e animações que as tornam pesadas e inviáveis para uso em netbooks, por exemplo.
Alguns conhecimentos teóricos serão apresentados neste artigo que podem ser úteis no desenvolvimento de outras aplicações. São eles:
Agregação à Não é só com herança que se estende as funcionalidades de uma classe. Se uma classe tiver internamente em seu corpo campos que são objetos de outras classes, ela pode incorporar as funções destes. Por exemplo, um ícone é uma figura com um texto embaixo, então pode-se pensar que um ícone pode ser “montado” com um TImage que tem um TLabel na parte inferior.
Generics à Generics facilitam muito a criação de listas tipadas dinâmicas. Como uma barra de ferramentas lateral pode ter várias listas de coisas (widgets, ícones etc.) listas genéricas podem ser usadas para atingir esse objetivo.
API do Windows à Arrastar um ícone ou arquivo para dentro de uma aplicação só é possível mediante o uso da API. Primeiro deve-se informar que determinada janela (ou panel, ou handle) pode receber arquivos arrastados. Depois é preciso dizer ao sistema o que fazer com os arquivos arrastados.
Ícones e menus na system tray à É importante para “travar” a barra ou fechá-la.
ClientDataset desconectado à A lista de “ícones”, por exemplo, será gravada em um arquivo XML do ClientDataset sem o uso de providers ou bancos de dados.
Noções Gráficas à Conversões de ícone para bitmap, transparências, aparência.
Registro do Windows à A barra deve iniciar junto com o Windows, mas não deve ser um serviço pois serviços iniciam antes do login, e rodam mesmo se nenhum usuário se logar. No caso de uma barra de atalhos, ela é um programa essencialmente visual, por isso precisa iniciar apenas depois do login, para trazer apenas os atalhos do usuário logado.
"ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor



0
0
