Buscar

Fazer o fácil deve ser fácil(design de intarface) ii

nome

Ivo Nascimento

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

 Olá pessoal, espero que tenham gostado do artigo anteriro que, apesar de superficial, apresentava dicas sobre layout de formulários que eu considero importantes e que utilizo diariamente.
  Neste novo artigo daremos seqüência ao estudo de interfaces e o faremos começando por deixar os componentes de input de dados mais leve.
 
Esse passo é simples e consiste em mudar as propriedades referentes ao visual destes mesmos no intuito de deixa-los sem muito destaque, no mesmo nível visual dos formulários.
 
Componentes como Edit, combobox e seus pares conscientes de dados(DBEdit, DBCombobox) tem as propriedades BevelInner, BevelKind, BevelOuter e BorderStyle setadas por padrão com valores que os deixam com destaque, fazendo com que dividam a atenção com as informações que estão contidas neles.
 
Esse comportamento torna a interface pesada, não importa o que se faça.
 
Mudaremos então estas propriedades para os seguintes valores:
BevelInner = bvspace
BevelKind = bkFlat
BevelOuter = bvLowered
BorderStyle = bsnone

 
Essa simples mudança irá conferir à interface um visual mais agradável onde a competição pela atenção do usuário ficará baseada na forma com que você configura seu esquema de fontes(conforme descrito no primeiro artigo).
 
A DBGrid pode ser suavizada da seguinte forma:
Ctl3D = false;
FixedColor = $00CECECE;
  Em options:
DgRowLines =false;
 
 
Nada pior para um usuário de software do que olhar um Dbgrid totalmente "populado" com informçãoes que, por tratarem de uma mesma entidade de dados, parecem-se entre si.
 
Procurar nas linhas, muitas vezes longas, com muitos campos e não se perder é um tarefa árdua.
 
Você pode resolver este problema utilizando o seguinte código, que, uma vez escrito pode ser chamado de qualquer lugar do formulário, ao até mesmo da aplicação se assim você preferir.
 
Insira este código em alguma Dbgrid, chamando o evento DrawColumnCell

   If not Odd(Datamodule.table.RecNo) then
      
If not (gdselected in state) then begin
        
(Sender as Tdbgrid).canvas.brush.color := COLORGRID;
        
(Sender as TdbGrid).canvas.FillRect(rect);
        
(Sender as TdbGrid).DefaultDrawDataCell(rect, column.field,state);
      
end;

  Este código fará com que as linhas sejam intercaladas entre a cor definida no objeto e a cor que você definiu na Constante COLORGRID que eu costumo definir dentro do DataModule visto que a DbGrid com certeza estará conectada a alguma tabela criada lá.
 
Quando for utiliza-lo basta fazer com que a função DrawColumnCell chame a função em que reside este código ao invés de executar um código proprietário. Ela recebera no sender a DBGrid em questão e manejará essas propriedades.
 
Todos sabemos que a repintura manual de qualquer objeto faz com que um processo seja mais lento, mas feito dessa forma julga tão poucas coisas e deixa a apresetnação dos dados tão mais convincente que vale a pena e não adiciona Nregistro/Nregistro*100 s ao tempo de processamento em várias arquiteturas de máquina.
 
Bem, agora vamos tratar de outras partes da interface.
 
A primeira será aquele velho grupo de botões e funcionalidades básicas que existem num formulário que trabalha com banco de dados.
 
Os Botões Incluir,editar,gravar,apagar,cancelar,imprimir.
 
Para tanto faremos uso de um recurso que poucos programadores utilizam que é o simples e amigo, o Object Repository.
 
O object repository esta disponível, entre outros lugares, em File, new, others.
 
Dentro dele encontramos vários modelos de objetos que podemos utilizar em nossos projetos.
 
Mãos á obra então.
 
Crie um novo projeto, sem nada de especial e no insira os botões comentados acima dentro deste projeto, de prefencia, para edeito estético de agrupamento os coloque dentro de um Panel com BorderStyle = bsnone.
 
Neste ponto já podemos gravar este formulário como um template, para ser utilizado posteriormente.
 
Clique com o botão direito do mouse sobre o formulário e selecione a opção Add to Repository.
 
Abrirá uma cixa de diálogo com as opções
Title = Título do formulário dentro do repositório.
Description = Descrição do mesmo.
Page = Em qual página repositório você deseja inclui-lo(se digitar um nome de página que não conste o Delphi a criará para você).
Autor = Digita aqui o teu Nome :)

 
Pronto, já temos um modelo de formulário pronto para ser utilizado.
 
Para testar clique em file > New > Others. Selcione o formulário que você acabou de gravar dentro da página em que você o colocou.
 
Calma... aqui temos uma informação importante:
 
Antes de clicar em OK preste atenção às três formas com que você poderá utiliza-lo.
 
A opção copy criará um novo formulário que não tem mais ligação nenhuma com o original gravado dentro do repositório.
 
A opção inharet criará uma instância do modelo do repositório, ou seja, qualquer modificação feita no formulário gravado no repositório refletirá diretamente nas cópias espalhadas no projeto, inclusive referente à programação inserida no modelo através da inserção da palavra inherited dentro do código da instancia. Esta delcaração pode ser apagada a qualquer momento, te permitindo aplicar um código em particular, assim como também te permite aproveitar o código e inserir mais instruções na seqüência. Permitindo assim o reaproveitamento do código que é um dos pilares da POO(assunto que num futuro pretendo discutir aqui).
 
Bem, espero que possa ter colaborado para aumentar a produtividade e a qualidade da apresentação dos aplicativos vocês.
 
No próximo artigo estarei inserindo mais detalhes sobre layout, discutindo mais a fundo a criação de formulários de autenticação de usuários, splash screens e partindo definitivamente para o interior dos aplicativos, mostrando técnicas de aproveitamento de código como desenvolvimento de units de funções, dlls e utilização da RTTI.

Um grande abraço e até a próxima.

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 16/07/04
Por: Ivo Nascimento
Visualizado: 28552 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009