Páginas

sexta-feira, 12 de agosto de 2011

Lazarus - Recursos do Editor de Código

Neste post vamos apresentar alguns dos inúmeros recursos que o Editor de Código oferece aos desenvolvedores. O Editor pode ser configurado via menu em Tools | Options | Editor. Estas opções também podem ser acessadas através do menu de contexto.

O detalhamento das opções e configuração do Editor exige um post específico, portanto não iremos nos ater a isso no momento. Queremos falar de recursos que a ferramenta oferece para facilitar o trabalho do programador.

Syncron

Esta é uma opção onde podemos rapidamente modificar o nome de um identificador em um trecho de código  selecionado.

Quando você seleciona um trecho do código (ou o código inteiro), no lado esquerdo do Editor aparece um ícone com uma caneta. Clique nesse ícone ou tecle CTRL + J. A área selecionada muda de cor e o cursor é movido para uma instância do identificador, destacando cada uma de suas ocorrências naquela área. Modifique o identificador e cada ocorrência dele será alterada automaticamente.
Volte a clicar no ícone ou tecle ESC para sair do modo syncron.

O Code Completion é um dos recursos que pode poupar muito tempo de digitação. Dependendo da posição do cursor no Editor, várias funções podem ser chamadas.

Complementação de classe

Se você escreveu uma classe incluindo propriedades e métodos, este recurso irá adicionar o corpo do método, variáveis e métodos de acesso às propriedades, etc. Suponha que você tenha criado a seguinte classe:

TPessoa = class(TObject)
    constructor Create;
    destructor Destroy; override;
    property nome: string;
end;

Posicione o cursor no interior da classe e pressione CTRL + SHIFT + C. O código seguinte será gerado, e o cursor será movido para que o corpo do primeiro método seja digitado.

type

  { TPessoa }

  TPessoa = class(TObject)
  private
    Fnome: string;
    procedure Setnome(AValue: string);
  published
    constructor Create;
    destructor Destroy; override;
    property nome: string read Fnome write Setnome;
  end;

implementation

{ TPessoa }

procedure TPessoa.Setnome(AValue: string);
begin
  if Fnome=AValue then exit;
  Fnome:=AValue;
end;

constructor TPessoa.Create;
begin

end;

destructor TPessoa.Destroy;
begin
  inherited Destroy;
end;

Complementação de declaração de variável

Se o cursor é posicionado em um identificador e for pressionado CTRL + SHIFT + C, é adicionado ao código uma declaração de variável local. Por exemplo, imagine o seguinte código fonte:

procedure TForm1.FormClick(Sender: TObject);
begin
  i := 5;
end;

Posicione o cursor na variável i (antes ou depois) e pressione CTRL + SHIFT + C. O código será modificado e ficará assim:

procedure TForm1.FormClick(Sender: TObject);
var
  i: Integer;
begin
  i := 5;
end;

O tipo da variável é deduzida a partir da expressão.

Message Composer

O Message Composer é uma ferramenta que auxilia na criação de caixas de diálogos,  tais ShowMessage, MessageDlg e InputBox. Para isso é necessário instalar o pacote messagecomposerpkg. Vá em Package | Install/Uninstall packages. Na lista Do not install localize e selecione messagecomposerpkg. Clique em Install selection e depois em Save and rebuild IDE. Em seguida clique no botão Continue para confirmar. Após o IDE ser reiniciado uma nova opção será adicionada ao menu Source. Você também pode usar o atalho CTRL + M. Esta opção irá abrir a seguinte janela:
Após escolher o tipo de mensagem, os parâmetros demais opções, confirme em OK e o diálogo selecionado será adicionado no seu código na posição do cursor.

Dicas para funções e procedimentos

Se você não lembra dos parâmetros, ordem, tipos de dados de uma função ou procedimento, digite a mesma e dentro dos parênteses tecle CTRL + SHIFT + ESPAÇO. Irá aparecer uma janela de dica com os argumentos:
À medida que um argumentos é digitado, o próximo fica em destaque na janela. Um botão à direita permite colar os parâmetros no código fonte.

Templates

Templates são modelos que podem ser inseridos no código. Por exemplo, suponha que você deseja inserir um comando case no seu código. Digite casee no ponto onde deseja inserir e tecle CRTL + J. Será inserido o seguinte código, e o cursor será posicionado no local onde deve ser inserida a variável do comando.
Existem vários modelos prontos, mas você pode criar os seus próprios templates usando a opção Tools | Code Templates. Na janela que será aberta você usará o botão Add para adicionar novo modelo.
Clique aqui para ver um rápido tutorial de como criar novos modelos. Por enquanto é isso que temos. Aproveite os recursos e explore mais possibilidades com o Lazarus

9 comentários:

simone de ramos disse...

Professor Carlos! sou iniciante no lazarus e estou com uma duvida a respeito da propriedade da query para que corresponde a
Requistlive da query que usava no delphi que permitia editar a tabela diretamente. Estou lendo seus artigos e tem me ajudado muito, mas ainda estou patinando em algumas coisas. Desde ja agradeço pela infomação.

Professor Carlos disse...

Oi Simone
Não existe essa propriedade na SQLQuery. Não é necessária. Veja no post http://professorcarlos.blogspot.com/2010/02/lazarus-acessando-banco-de-dados-com.html
que conseguimos editar a tabela. Só seguir esses passos. Qualquer dúvida me escreva.

simone de ramos disse...

Professor! não consigo habilitar o dbnavigator esta tudo como o sr. colocou no artico mas nada de funcionar, percebi através de um teste que é por que tenho um campo que é autonumeração pois criei uma tabela pra testar sem ter campo autonumeração e o dbnavigator habilitou. Ja verifiquei esta tudo true e estão setados corretamente...

Professor Carlos disse...

Você está usando SQLdb, certo? Qual o banco de dados? Qual a versão do Lazarus? Talvez seja melhor você criar um pequeno demo (ou esse mesmo que você está fazendo) e enviar pra eu verificar aqui. Pode se comunicar comigo por e-mail, é mais ágil que os comentários.

simone de ramos disse...

Professor! tentei mandar um e-mail neste endereço mas voltou e mesmo este?
stonefull.stm@gmail.com
tem Outro?

Professor Carlos disse...

É esse mesmo. Mas pode enviar também para profcarlos@profcarlos.com

Anônimo disse...

Alguém sabe me dizer como eu crio um Link de site no Lazarus; ex: Link Label Link Button?

Atenciosamente

Marcos Paulo

welton disse...

ola me intereçei muito pelo lazarus, começei montar um programa para gerenciar os livros do meu serviço, tem as janela cadastro de livro, de pessoa emprestimo de livro e venda, esta ficando bem legal, mas estou com 2 problemas, fiz o banco no ibexpert em fireboard, ai o auto encremento fika em branco ele n ta preenchendo no lazarus precisa de algum codigo de encremento?

Professor Carlos disse...

Welton, vamos por partes:
1. Como você definiu autoincremento no Firebird? O refresh do form não é automatico, então se você grava tabela os dados não retornam para os controles automaticamente.
2. O Lazarus tem recursos de AutoSize, Anchor e Layout para adaptar a interface a várias resoluções e ambientes. Veja aqui http://wiki.lazarus.freepascal.org/Autosize_/_Layout
3. Quanto ao ACBr eu nunca instalei no Lazarus, mas acredito que deve ser simples. Existe o forum onde você pode tirar duvidas sobre o componente

 
Creative Commons License
This work by Carlos Alberto P. Araújo is licensed under a Creative Commons Atribuição-Uso não-comercial-Compartilhamento pela mesma licença 3.0 Brasil License.