Desenvolvimento de Sistemas para Automação Comercial

Pascal

Instalação e Configuração ACBr POO Configuração do componente ACBrNFe Suspender Evento Temporariamente Configurações Lazarus Traduzir botões Acesso MariaDB

Instalação e Configuração ACBr

Apps

Tortoise => https://tortoisesvn.net/downloads.html

ACBr => svn://svn.code.sf.net/p/acbr/code/trunk2

FortesReportCE => https://github.com/fortesinformatica/fortesreport-ce/trunk

FireBird 2.5 => https://firebirdsql.org/en/firebird-2-5/

DLLs

..\ACBr_Fonts\DLLs\OpenSSL\1.1.1.7\x86\libcrypto-1_1.dll

..\ACBr_Fonts\DLLs\OpenSSL\1.1.1.7\x86\libssl-1_1.dll

..\ACBr_Fonts\DLLs\LibXml2\x86\libexslt.dll

..\ACBr_Fonts\DLLs\LibXml2\x86\libiconv.dll

..\ACBr_Fonts\DLLs\LibXml2\x86\libxml2.dll

..\ACBr_Fonts\DLLs\LibXml2\x86\libxslt.dll

Executáveis de terceiros

..\gbak.exe – para backup firebird

Dll de terceiros

..\libmysql.dll - para conexão com sites

Configurações

..\ACBr_Fonts\Fontes\ACBrComum\ACBr.inc

// Descomente a linha abaixo, se você quer que seu Executável NÃO dependa das DLLs LibXML2, LibXMLSEC, (NÃO RECOMENDADO)

{.$DEFINE DFE_SEM_OPENSSL}

// Comente a linha abaixo, se você quer que seu Executável dependa das DLLs LibXMLSEC (NAO RECOMENDADO)

{$DEFINE DFE_SEM_XMLSEC}

// Descomente a linha abaixo, se você quer que seu Executável NÃO dependa das DLLs LibXML2. (NAO RECOMENDADO)

{.$DEFINE DFE_SEM_LIBXML2}

// Descomente a linha abaixo, se você não utiliza a obsoleta Capicom para Criptografia (RECOMENDADO)

{$DEFINE DFE_SEM_CAPICOM}

// Descomente a linha abaixo, se você não utiliza a obsoleta MSXML para Assinatura de XML (RECOMENDADO)

{$DEFINE DFE_SEM_MSXML}

// Descomente a linha abaixo, se você não deseja adicionar a Dependência da INDY nos seus Projetos

{$DEFINE DFE_SEM_INDY}


POO

Termos

Abstração: E uma caracteristica da POO que permite passar objetos reais do mundo real para linguagem de programacao.

Polimorfismo: E a capacidade de criar varios metodos com o mesmo nome mas com parametros diferentes;

Encapsulamento: separar o codigo em blocos de codigo.

Métodos

overload; => permitem mesmos metodos com o mesmo nome diferenciando apenas os parametros.

virtual; => permite (sem ser obrigatorio) que a classe herdeira reescreva um metodo criado na classe pai utilizando o override;

override; => usado para adicionar código em um metodo virtual da classe pai na classe filha utilizando o inherited.

virtual; abstract; => pode ser implemantado na classe herdeira com o override, mas nao precisar ser implementado na classe pai.

reintroduce; => utilizado para tirar o warning que avisa que o metodo ja existe na classe pai, dizendo que ele sera reecrito na classe filha ignorando por completo tudo que estiver nesse metodo na classe pai.

class function => cria uma funcao sem a necessidde de instaciar a classe em que ela esta.

inherited "Metodo"; executa o metodo da classe pai. (o nome do metodo é opcional quando se está dentro do metodo herdado na classe filha)

construtores => utilizado para inicializar variaveis, objetos, etc na criacao da classe(objeto) = constructor Create;

destrutores => e aconselhavel usar o inherited ao final para destrur tudo das clases antecessoras = destructor Destroy;

Visibilidade

strict private => visivel apenas na mesma classe.

private => visivel dentro da propria classe ou de uma classe derivada na mesma unit.

strict protected => visivel apenas pelas herdeiras.

protected => visivel pelas herdeiras e classes da mesma unit.

public => visivel em qualquer lugar.

published => faz aparecer no object inspector.


Configuração do componente ACBrNFe


Suspender Evento Temporariamente



Configurações Lazarus

Em Ferramentas => Opções... => Ambiente

Arquivos: Desmarcar "Abrir o ultimo projeto e pacotes ao iniciar".

Cópia de Segurança: Selecionar "Sem arquivo de Segurança" em ambas opções.

Nomeação: Selecionar "Sem renomeação automatica".


Traduzir botões

Acessar o arquivo => C:\lazarus\lcl\lclstrconsts.pas

Outra forma mais simples e que não precisa fazer toda vez que reinstala o Lazarus é declarar Translations em uses colocar a linha abaixo no FormCreate do Form principal.

Obs.: O arquivo contendo as traduções pode ser de qualquer nome ou extenção mas precisa acompanhar a aplicação.


Acesso MariaDB

Com o componente MySQL56Connection e SQLQuery nativos do Lazarus

Com o componente ZConnection e ZQuery da paleta Zeos Acces