Blog Lazarus Programação
Implementando uma Interface no Lazarus

Vou apresentar aqui muito sutilmente um caso de construção de uma interface em Lazarus.

Qual a diferença entre uma interface e uma classe.

A Interface é como um contrato, onde se estabelece as conexões de saída (Métodos e propriedades) que serão utilizadas. Nela voce não precisa criar código, pois só estabelece quais serão as conexões.

Ao criar uma classe, vc estabele as conexões porem tem que realizar uma série de codificações (implementation) que de fato não seriam necessárias. Pois a codificação fica a cargo da classe filha.

Exemplo de projeto

Desenvolvi uma interface no projeto da API da impressora.

GIT do Projeto

https://github.com/marcelomaurin/LIBESCPOS

Exemplo de uso

Na unit imp_generico.pas, estabelecemos a interface, que será herdada das demais classes.

  { TIMP_GENERICO }
  TIMP_GENERICO = interface
    ['{045F6EED-2C11-447D-A7DC-09DB995367C2}']

     function getserial : string;
     procedure setserial(value : string);

     function InitPrint(): string;
     function NewLine(): string;
     function LineText(Info : string): string;
     function Negrito(): string;
     function Normal(): string;
     function Sublinhado(): string;
     function DoubleTexto(): string;
     function beep(): string;
     function Guilhotina(): string;
     function AcionaGaveta(): string;
     function Barra1D(Info : string): string;
     function Barra2D(info : String): string;
     function loadImagem(X,Y : integer; Info : String): string;
     function imprimeImagem(X,Y : integer): string;
     property Serial : String read getserial  write setserial;
end;                     

No fonte imp_ELGINI9.pas, chamamos a interface, criando os métodos, realmente propostos na interface.

type

 { TIMP_ELGINI9 }

 TIMP_ELGINI9 = class(TInterfacedObject,TIMP_GENERICO)
     FCOLUNA : integer;
     FSERIAL : String;

 private
     function getserial : string;
     procedure setserial(value : string);


 public
     constructor create();
     destructor destroy();

     function NewLine(): string;
     function InitPrint(): string;
     function LineText(Info : string): string;
     function beep(): string;
     function Negrito(): string;
     function Normal(): string;
     function Sublinhado(): string;
     function DoubleTexto(): string;
     function Guilhotina(): string;
     function AcionaGaveta(): string;
     function Barra2D(Info : string): string;
     function Barra1D(Info : string): string;
     function loadImagem(X,Y : integer;Info : String): string;
     function imprimeImagem(X,Y : integer): string;
     function Centralizado(): string;
     function PaginaM616(): string;
     function CorPg618(): string;
     function HabilitaArmazenaDados(): string;
     function Armazenadados( Info : string): string;
     function ImprimeQRCODEArmazenado(): string;
 published
     property Serial : String read getserial  write setserial;
end;

var
  IMPELGINI9: TIMP_ELGINI9;

implementation          

Omiti a implementation, para que o artigo não fique demasiado longo.

C/C++ Delphi Lazarus Sem categoria
Comandos do GDB

O GDB é acrônimo GNU DeBuger, e é utilizado para depurar aplicações escritas em C, C++, Kylix, Delphi entre outras.

Como realizar a carga do GDB

gdb -d <aplicacao> [source]

Onde Aplicacao é aplicação que se deseja debugar.

source é aonde estão os fontes do projeto.

Recomendação:

Posicione o gdb no local dos fontes, fazendo a chamada da aplicação pelo caminho completo, desta forma, pode ignorar o local (source). ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

Exemplo de código:

Principais comandos GDB

Breakpoint (b)

O comando b adiciona um break point (ponto de debug) para analise, sua sintaxe é bem simples.

b source:linha

Run (r)

O comando r, roda a aplicação, iniciando o debug da mesma.

Kill (k)

O comando k, para a aplicação, finalizando o debug.

Quit (q)

O comando q, sai do debug.

List (l)

O comando l mostra um fragmento do fonte em que esta. Ele usa o fonte que vc apontou no source.

Display

O comando display, mostra o conteúdo de uma variável ou expressão.

O comando p, mostra o conteúdo de uma variável.

Sintaxe:

p [nome_variavel]

Continue (c)

O comando c, vai até o próximo break point.

Next (n)

O comando n, executa o programa até a próxima linha, mas não muda a tela.

Step (s)

O comando s, executa o comando até o próximo linha, mudando a tela.

Step into (si)

O comando si, executa exatamente uma instrução entrando dentro desta, se houver funções internas.

Finish

O comando finish, executa a linha até o final desta.

Info threads

O comando info threads, lista as threads apontando informações das mesmas.

Info breakpoints

O comando info breakpoints ou i break, mostra os breakpoints que adicionei no meu debug durante a execução.

Sintaxe:

i break

mostra lista de breakpoints adicionados no debug
Comando i break

Info args

O comando info args, mostra os argumentos passados pela função que foi chamada.

Exemplo:

info b

comando lista os break points criados.

thread

O comando thread, muda a execução para alguma thread especifica.

Clear

O comando clear, apaga todos os break points ativos.

Delete

O comando delete, apaga o break point criado, deve ser usado o número de identificação deste break point.

Exemplo

delete 1

Deleta o primeiro breakpoint criado

Backtrace (bt)

Mostra a cadeia de chamada de funções

sintaxe:

bt

DIRECTORY

Inclui o caminho dos fontes. (Agradeço ao amigo Felipe Resende pela dica)

Exemplo:

directory=/home/mm/proj01/src

Interface de Fontes

Ativa interface texto de visualização de fontes.

tui [enable] [disable]

Delphi
Exemplo de Firedac em Delphi XE10

Exemplo prático Delphi XE10

Este exemplo didático permite visualizar as requisições de SMS, e enviar novos.

Detalhes do Projeto

Banco de Dados: mysql 5

Servidor Banco: Linux Raspberry PI

Aplicação: X86

Linguagem: Delphi XE10

Tabela: jobs.sql

Fonte: src_clienteSMS2.zip

Binário: clientSMSAlpha1.zip

Tela principal da aplicação.

Nela o usuário pode selecionar a pesquisa de SMS, através do menu superior. Para tanto, basta clicar em SMS > Enviados.

Surgirá uma tela com Título JOBS.

Nela é possível verificar na área superior um campo telefone, este permite filtrar os telefones enviados por mensagem.

Pesquisa por Telefone

Para realizar a pesquisa, digite o telefone que pretende filtrar no campo telefone.

 Click no botão Pesquisar, a aplicação pesquisará todos os SMSs que não foram enviados ainda com este telefone.

O Resultado da pesquisa aparecerá no grid inferior.

Para maiores informações mande um email: marcelomaurinmartins@gmail.com

Outros projetos relacionados:

Exemplo de Delphi XE10 consumindo REST ankara escort çankaya escort ankara escort çankaya escort escort ankara çankaya escort escort bayan çankaya istanbul rus escort eryaman escort escort bayan ankara ankara escort kızılay escort istanbul escort ankara escort ankara rus escort escort çankaya ankara escort bayan istanbul rus Escort atasehir Escort beylikduzu Escort Ankara Escort malatya Escort kuşadası Escort gaziantep Escort izmir Escort

maurinsoft.com.br