Todas as Units

Nome Descrição
Action2

 

asn1util

Utilities for handling ASN.1 BER encoding

blcksock

 

clamsend

ClamAV-daemon client

Classes_C

 

Console

 

create_config_stork

 

create_index_stork

O programa create_index_stork cria o arquivo index_stork.toml para o projeto stork.

  • Objetivo

    • Este programa tem como missão criar o arquivo index_stork.torm para ser usado como parâmetro do programa rust stork executado na raiz do site a ser criado o arquivo list_stork.st.

    • O programa de linha de comando stork, receberá o arquivo de configuração .index_stork.toml e criará o arquivo de índice list_stork.st para ser uado como índice do programa stornk.js. O arquivo é blob serializado e compactado que a biblioteca Stork Javascript utiliza. Geralmente tem a extensão de arquivo de nome .st e tem aproximadamente o tamanho de um JPEG.

  • NOTAS

    • Este programa espera que o arquivo './templates/stork/index_stork.toml' exista e contenha a tag files_path em seu conteúdo.

      • Template esperado:

        
        [input]
        base_directory = ""
        url_prefix = ""
        files = [
        
         <!--# file_path #-->
        
        ]

        -

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Pacheco paulosspacheco@yahoo.com.br)

    • 2023-09-12

      • 14:00 as 17:00

        • Criar projeto

      create_index_stork

      • Criar projeto create_index_stork; ✅

      • Criar unit u_criate_index_stork.pas ✅

      • Criar documento do projeto;✅ -

    • **2023-09-14

      • 11:21 as 11:50

        • Criar documento do projeto; -

create_tipuesearch

 

Create_Tipue_Search

O programa Create_Tipue_Search cria o arquivo tipuesearch_content.js para o projeto tipue_Search.

  • Objetivo

    • Este programa tem como missão criar o arquivo tipuesearch_content.js a ser usado como índex de pesquisa de um site qualquer.

  • NOTAS

    • Este programa espera que o arquivo './templates/tipue_search/tipuesearch_content.js' exista e contenha a tag files_path em seu conteúdo.

      • Template esperado:

        ```pascal

        //file_path = { title: "˜title", text: "˜text", tags: "˜tags", url: "˜url"

Crypt32

 

dnssend

DNS client by UDP or TCP

fpmake

 

fpTemplate

 

ftpsend

 

ftptsend

TFTP client and server protocol

Historicos

Histórico do projeto Maricarai - mi.rtl

  • Versão atual - mi.rtl

    • Data em que esta versão foi criada: 03/08/2023

    • Versão atual: 0.9.0

    • Versão do Free Pascal: 3.2.2

    • Versão do Lazarus: 2.2.6

  • Tarefas concluídas do projeto Maricarai - mi.rtl

    • 03/07/2023

      • Descrição:

        • Criar documento histórico.md para controlar as alterações do projeto Maricarai - mi.rtl.

      • Status:

        • [x] 03/08/2023

    • 03/07/2023

      • Descrição:

        • Publicado versão 0.9.0

      • Status:

        • [x] 03/08/2023

httpproject1

 

httpsend

 

imapsend

IMAP4 rev1 protocol client

laz_synapse

 

ldapsend

LDAP client

mi.rtl

 

mi.rtl.all

 

mi.rtl.ApplicationAbstract

 

mi.rtl.Class_Of_Char

 

mi.rtl.connection.postgresSQL

 

mi.rtl.Consts

  • A Unit mi.rtl.Consts reúne as constantes globais usados pelo pacote mi.rtl.

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 13/11/2021 : Classe criada

        • /16/11/2021 :

          • Em TConsts.Initialization executar:

            • System.FileMode := TConsts.FileMode;

            • Motivo: O mapa de Bits System.FileMode não permite acesso compartilhado.

        • 15/12/2021

          • Criado a constante Identification = TIdentification.

        • 31/12/2021

          • Criado a constante NRec e NRecAux para manter a compatibilidade com o passado.

        • **24/06/2022

          • Criar constante FldLink

mi.rtl.Consts.StrError

-A unit mi.rtl.Consts.StrError implementa a classe TStrError do pacote mi.rtl.

  • VERSÃO:

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 2021-12-02 -08:00 a 22:15 : Criado a unit mi.rtl.Consts.StrError e implementação da classe TStrError

      • 2021-12-15 : Ajuste do método TStrError.ErrorMessage4;

mi.rtl.Consts.StringList

 

mi.rtl.Consts.StringListBase

-A unit mi.rtl.Consts.StringListBase implementa a classe TStringListBase do pacote mi.rtl.

  • VERSÃO:

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 2022-01-25 -08:00 a 12:00 - Criado a unit mi.rtl.Consts.StringListBase e implementação da classe TStringListBase

    • 2022-05-17

      • T12 Criar método CopyFrom

mi.rtl.Consts.transaction

 

mi.rtl.files

  • A Unit mi.rtl.files contém as funções Wrapper para os sistemas operacionais Win32 Win64 e Linux x86_64 reconhecidos pelo free pascal.

    • OBJETIVO:

      • Evitar de alterar todos os códigos escritos para a plataforma windows e por isso mantenho o mesmo comportamento do windows.

    • VERSÃO:

      • Alpha - 1.0.0

    • NOTA:

    • REFERÊNCIA

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 2021-10-21 08:00 - Data em que essa unit mi.rtl.files foi criada.

        • 2021-11-02 15:42 - Escolha do projeto pasdoc para criar documento do pacote mi.rtl.

        • 2021-11-04 08:37 - Implementação da função SysFileOpen()

        • 2021-11-04 14:00 - Implementação da função SysSetResult()

        • 2021-11-04 14:30 - Implementação da função SetFileMode()

        • 2021-11-04 15:30 - Documentar a unit mi.rtl.files e organizar sessão de constantes, variáveis e funções.

        • 2021-11-04 21:00 - Criar exemplo de uso das funções SysFileOpen e SysFileClose.

        • 2021-11-05 21:30 - Revisar documentação desta nas funções: SysSetResult, ...

        • 2021-11-12 08:56 - Procurar bug da função SysFileOpen na máquina windows.

          • Eureca. Resolvi o problema da função SysFileOpen.

          • O problema da função SysFileOpen estava na forma como no windows a função SysUtils.fileOpen trabalha.

            • Caso ocorra um erro a função SysUtils.fileOpen retorna high(THandle).

            • Para corrigir precisei modificar a função SysSetResult.

        • 2021-11-12 16:56 - Documentar a unit mi.rtl.files e criar a função CopyFile().

        • 2021-11-12 18:05 - Criar a função SysFileSetSize para truncar o arquivo e documenta-la.

        • 2021-11-13

        • 2021-11-15

          • O método TFiles.FileCreate() não está obedecendo o mapa de bits FileMode() checar o porque:

            • Solução:

              • A função SysUtils.FileCreate precisa do fmCreate na criação do arquivo.

              • Após criar o arquivo o mesmo deve ser fechado e aberto novamente com o mapa de bits mode e shareMode passado no parâmetro.

          • Criar método TFiles.FileSeek()

          • Criar método TFiles.FileRead()

        • 2021-11-16

          • O método SysFileSeek não gerar erro se o ponteiro do arquivo for inválido.

            • Para contornar devo fazer a crítica se o ponteiro é maior que zero e menor que fileSize.

            • Essa solução não atende porque não fileSeek não tem o nome do arquivo.

            • Entendendo porque SysUtils.FileSeek não dar erro quando se tenta posicionar além do fim do arquivo:

              • https://man7.org/linux/man-pages/man2/lseek.2.html

              • No linux lseek() permite que o deslocamento do arquivo seja definido além do final do arquivo (mas isso não altera o tamanho do arquivo). Se os dados forem posteriormente escrito neste ponto, leituras subsequentes dos dados no gap (um "buraco") retorna bytes nulos ('\ 0') até que os dados sejam realmente escrito na lacuna.

          • Criar método TFiles.FileSize()

          • Criar exemplo de uso do método TFiles.FileSize()

          • Criar exemplo de uso do método TFiles.FileSeek()

        • 2021-11-17

        • 2021-11-21

        • 2021-11-22

          • 10:00 a 10:06 - Criar classe método : TFiles.CreateDir()

          • 10:29 a 11:10 - Criar classe método : TFiles.SysGetDriveType(aPath : AnsiString): TDriveType;

          • 11:11 a 12:02 - Criar classe método : **TFiles.DuplicateHandle(hSourceHandle: LongInt;Var lpTargeTHandle: Longint) : Longint);

          • 14:10 a 15:16 - Criar classe método : TFiles.FileFlushBuffers(Handle: THandle): Longint;

          • 15:44 a 17:32 - Criar classe método : LockFile(_Handle:THandle; _LockStart, _LockLength: Int64): LongInt;

            • Não encontrei no linux o equivalente ao Windows.LockFile

          • 15:44 a 17:32 - Criar classe método : TFiles.UnLockFile(_Handle:THandle; _LockStart, _LockLength: Int64): LongInt;

            • Não encontrei no linux o equivalente ao Windows.unLockFile

          • 2021-12-01

            • 11:42 a ??:?? : Implementar a função TFiles.Is_TFileOpen

          • 2021-12-02

          • 2021-12-30

          • 2022-01-11

            • 17:10 - Criar método TFiles.ShellExecute

          • 2022-04-22

          • 2023-07-18

            • 16:00 - Criar a classe método FindFilesAll

          • 2023-07-27

            • 08:25 - Em mi.rtl.files.findFileAll adicionar o parâmetro apath.

mi.rtl.miStringlist

 

mi.rtl.MiStringlistbase

-A unit mi.rtl.MiStringlistbase implementa a classe TStringListBase do pacote mi.rtl.

  • VERSÃO:

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 2022-01-25 -08:00 a 12:00 - Criado a unit mi.rtl.MiStringlistbase e implementação da classe TStringListBase

    • 2022-05-17

      • T12 Criar método CopyFrom

    • 22/05/2024

mi.rtl.Objects.Consts

  • A Unit mi.rtl.Objects.Consts reune todos as contantes da unit TObjects globais usados pela class TObjects e suas descendências do pacote mi.rtl.

    • NOTAS

      • Esta unit foi testada nas plataformas: win32, win64 e linux.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 18/11/2021 10:56 a ?? - Criar a unit mi.rtl.objects.Consts.pas

        • 19/11/2021 20:35 a 21:22 - Conclusão da classe TObjectsConsts

        • 13/12/2021 21:00 a 22:10 - Documentar unidade.

        • 22/05/2024 08:00 a 11:30 - Implementação do campo FldENum_db

    • CÓDIGO FONTE:

mi.rtl.Objects.Consts.Logs

mi.rtl.Objects.Consts.Mi_MsgBox

  • A Unit mi.rtl.Objects.Consts.Mi_MsgBox implementa a classe TMI_MsgBox.

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 11/08/2011

          • 08:00 a 12:00 : Criada a unit mi.rtl.Objects.Consts.Mi_MsgBox e a classe TMI_MsgBox

mi.rtl.Objects.Consts.ProgressDlg_If

mi.rtl.objects.consts.strings

 

mi.rtl.Objects.Methods

  • A Unit mi.rtl.Objects.Methods implementa a classe TObjectsMethods do pacote mi.rtl.

    • DESCRIÇÃO:

      • Está unit é base para a class TObjetss

    • NOTAS

      • Esta unit foi testada nas plataformas: win32, win64 e linux.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 19/11/2021

        • 21:25 a 23:15 Criar a unit mi.rtl.objects.TObjectsMethods.pas

      • 20/11/2021

        • 18:00 a 19:15 Criar a unit mi.rtl.objects.tStream.pas

      • 27/07/2023

        • 09:00 a 12:00 Criar método StringReplaceTgLink

      • 10/08/2023

        • 08:10 a 12:00: Implementar componente TPageProducer

        • 14:47 a 14:54: O método GetAlias deve retornar o nome da classe caso o atributo _Alias se igual a vazio.

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.Collection

  • A Unit mi.rtl.Objects.Methods.Collection implementa a classe TCollection do pacote mi.rtl.

    • NOTAS

      • Esta unit foi testada nas plataformas: linux.

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 20/11/2021 10:12 a 22:49 : Criada a classe mi.rtl.Objects.Methods.Collection

mi.rtl.Objects.Methods.Collection.FilesStreams

mi.rtl.Objects.Methods.Collection.SortedCollection

mi.rtl.Objects.Methods.Collection.SortedCollection.StrCollection

  • A Unit mi.rtl.Objects.Methods.Collection.SortedCollection.StrCollection implementa a classe TStrCollection do pacote mi.rtl.

    • NOTA

      • A diferença de tstringCollection para TStrCollection é que a primeira é uma coleção de shortstring e a segunda é uma coleção de PByteArray usada para trabalhar com AnsiString;

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 30/11/2021

          • 11:47 a 11:47 : Criada a unit mi.rtl.Objects.Methods.Collection.SortedCollection.StrCollection e a classe TStCollection

          • 14:00 a 14:20 : Documentar a unit

mi.rtl.Objects.Methods.Collection.SortedCollection.StringCollection

mi.rtl.Objects.Methods.Collection.Sortedcollection.Stringcollection.Collectionstring

mi.rtl.objects.Methods.dates

-A Unit mi.rtl.objects.Methods.dates implementa a classe TDates.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 27/01/99 05:12 a 08:00 - Retirei do Db_Generic e Db_Global todas as rotinas com referência a datas.

      • 27/01/99 09:05 a 09:30 - Debugar as rotinas de datas utilizando o ano 2000.

      • 27/01/99 09:30 a - Todos os relatórios que necessitam de datas de início e fim do período devem ser inicializadas com as datas mínimas e máximas.

      • 15/12/21 13:50 a 14:30 - Criar classe mi.rtl.objects.Methods.dates.Tdates e adicionar as rotinas de datas do passado.

mi.rtl.Objects.Methods.Db.Tb_Access

mi.rtl.Objects.Methods.Db.Tb__Access

Esta unit mi.rtl.Objects.Methods.Db.Tb__Access é usada para criar banco de dados local usando estrutura Type Record End;

mi.rtl.objects.methods.db.tb__access_test

 

mi.rtl.Objects.Methods.Db.Tb___Access

Esta unit mi.rtl.Objects.Methods.Db.Tb___Access é usada para criar banco de dados local usando estrutura Type Record End;

  • NOTA

    • Comandos parecidos com clipper

    • Está obsoleto não recomendo seu uso.

mi.rtl.objects.Methods.db.types.consts.Methods

  • A unit mi.rtl.objects.Methods.db.types.consts.Methods implementa a classe TDb_Methods do pacote mi.rtl.db.

    • NOTAS -

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 01/12/2021

          • 10:15 a ?? : Criar a unit mi.rtl.db_Methods.pas

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.Exception

-A unit mi.rtl.Objects.Methods.Exception implementa a classe TException do pacote mi.rtl.

  • VERSÃO:

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 2021-12-14

        • 11:00 a 11:30 - Criado a unit mi.rtl.Objects.Methods.Exception e implementação da classe TException

      • 2021-12-15

        • 15:00 a 18:42 - T12 Criar a classe TException

        • 21:25 a 22:40 - Troquei o nome de constructor create para que fique equivalente as mensagem de TStrError.ErrorMessage.

mi.rtl.objects.methods.html.tags

 

mi.rtl.objects.methods.pageproducer

  • A unit mi.rtl.objects.methods.pageproducer implementa as propriedade e métodos para produzir página html, semelhante a unit HTTPProd do Delphi.

    • NOTAS -

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 23/07/2023

          • 08:12 a 12:00: Criar a unit mi.rtl.objects.methods.pageproducer

        • 24/07/2023

          • 08:45 a 12:00: Documento da unit

          • 14:00 a 17:30: Documento da unit

        • 25/07/2023

          • 08:15 a 12:00: Documento da unit

          • 13:30 a 17:30: Documento da unit

        • 10/08/2023

        • 16/08/2023

          • 08:00 a 12:00: T12 Criar o componente TPageProducer. A procedure create_css_table() deve criar o arquivo na pasta template/css

          • 13:20 a 17:25: T12 Criar o componente TPageProducer.GetHtmlTable

        • 16/08/2023

        • 17/08/2023

        • 18/08/2023

        • 25/08/2023

    • CÓDIGO FONTE:

mi.rtl.objects.methods.pageproducer.test

 

mi.rtl.Objects.Methods.Paramexecucao

 

mi.rtl.Objects.Methods.Paramexecucao.Application

 

mi.rtl.Objects.Methods.StreamBase

  • A unit mi.rtl.Objects.Methods.StreamBase implementa a classe TStreamBase do pacote mi.rtl.

    • NOTAS

      • O Use da classe mi.rtl.Objects.Methods.StreamBase não deve ser instanciada antes de implementar os métodos abstratos;

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 19/11/2021 21:25 a 23:15 Criar a unit mi.rtl.objects.methods.StreamBase.pas

        • 20/11/2021 14:02 a 15:19 Documentação da classe e agrupar métodos virtuais, métodos não virtuais e proteger os métodos abstratos.

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.StreamBase.Stream

  • A Unit mi.rtl.Objects.Methods.StreamBase.Stream implementa a classe TStream do pacote mi.rtl.

    • NOTAS

      • Está unit foi testada nas plataformas: win32, win64 e linux.

      • Como o linux não tem opção de travar a região de uma arquivo eu removi as classes _TRecLock e TCollRecsLocks.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 20/11/2021 - 09:10 a ??:?? Criar a unit mi.rtl.objects.methods.StreamBase.Stream.pas

        • 22/11/2021

          • 09:44 a 12:05 Adaptar TStream ao free pascal;

          • 14:10 a 19:05 Adaptar _TStream e TStream ao free pascal;

        -

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.StreamBase.Stream.FileStream

  • A Unit mi.rtl.Objects.Methods.StreamBase.Stream.FileStream implementa a classe TFileStream do pacote mi.rtl.

    • NOTAS

      • Implementa banco um fluxo de dados em disco.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 22/11/2021

          • 17:00 a 19:45 Criar a unit mi.rtl.Objects.Methods.StreamBase.Stream.FileStream

        • 29/11/2021

          • 10:10 a 12:01 - t12 Documentar a classe TFileStream. Exemplo 01: Test_FileStream_com_header

          • 13:50 a 14:33 - t12 Documentar a classe TFileStream. Exemplo 01: Test_FileStream_sem_header

        • 21/12/2021

          • 15:30 a 16:20 - T12 Transferir os métodos de TDosStream para TFileStrem.

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.StreamBase.Stream.MemoryStream

  • A Unit mi.rtl.Objects.Methods.StreamBase.Stream.MemoryStream implementa a classe TMemoryStream do pacote mi.rtl.

    • NOTAS

      • Implementa um fluxo de dados em memória.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 23/11/2021

          • 06:10 a 07:17 - Criar a unit mi.rtl.Objects.Methods.StreamBase.Stream.MemoryStream

          • 07:43 a - Documentar a unit mi.rtl.Objects.Methods.StreamBase.Stream.MemoryStream.

    • CÓDIGO FONTE:

mi.rtl.objects.methods.StreamBase.Stream.MemoryStream.BufferMemory

  • A Unit mi.rtl.objects.methods.StreamBase.Stream.MemoryStream.BufferMemory implementa a classe TBufferMemory.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 23/11/2021

          • 12:55 a 14:30 - Criar a unit mi.rtl.objects.methods.StreamBase.Stream.MemoryStream.BufferMemory

          • 14:30 a 19:35 - Criar um exemplo de como usar a classe TBufferMemory

          • 21:35 a 22:44 - Documentar a classe TBufferMemory

        • 29/11/2021

          • 14:45 a 15:10

            • Criar exemplo TMi_Rtl_Tests.Test_TBufferMemory_sem_header;

            • Criar exemplo TMi_Rtl_Tests.Test_TBufferMemory_com_header;

    • CÓDIGO FONTE:

mi.rtl.Objects.Methods.System

SISTEMA : Nort Soft Data Base MODULO : MARICARAY AUTOR : Paulo Pacheco ——— HISTORIA ——— DATA HARA HORA OCORRENCIA ——– —– —– —————————————————————— 01/08/02 08:00 Implementacao inicial 08/08/02 23:00 Implementacao Final 25/01/22 Convertido para lazarus *

mi.rtl.objects.types

  • A Unit mi.rtl.objects.types implementa a classe TObjectsTypes .

    • NOTAS

      • Esta unit foi testada nas plataformas: win32, win64 e linux.

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 17/11/2021 20:30 a 22:49 - Criada a classe TObjectsTypes. Falta conclui...

        • 18/11/2021 09:05 - Concluir a classe TObjectsTypes.

        • 15/12/2021 15:00 a 15:15 - Revisar a documentação da unidade.

mi.rtl.Objectss

  • A Unit mi.rtl.Objectss reune todas as classes base pacote mi.rtl.

    • NOTAS

      • Esta unit foi testada nas plataformas: win32, win64 e linux.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 20/11/2021

          • 9:10 a ??: Criar a unit mi.rtl.Objectss

        • 22/07/2023

          • Implementar a propriedade ObjectsTemplate : TObjectsTemplate

    • CÓDIGO FONTE:

mi.rtl.treenode

  • A Unit mi.rtl.treenode implementa a classe TTreeNode do pacote mi.rtl.

    • NOTAS

      • Este documento descreve a unidade TTreeNode escrita em FreePascal.

        • A unidade define uma classe TTreeNode que representa um nó em uma árvore hierárquica.

    • VERSÃO

      • Alpha - 1.0.0

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 06/11/2023 - Inicio do projeto unit mi.rtl.treenode.pas

      • 07/11/2023 - Fim do projeto unit mi.rtl.treenode.pas

      • 09/11/2023 - Idetifiquei um erro no código html gerado no método TreeToStringListHtml

      • 16/08/2024 - Transformar test1 e test2 em teste(aaListaHtml:Boolesn).

      • 17/08/2024

        • Documentar a unit usando como auxilia o Gemini do Google.

        • Criar método function CompareNodes(const Node1, Node2: TObject): integer;

        • Criar método function AddChildOrdered

        • Criar método AddChildAction para criar arvore de menus

        • Criar objeto TPathAction para ser usando em AddChildAction

        • Criar exemplos

          • Test_AddChildFileName -

    • CÓDIGO FONTE:

mi.rtl.Types

  • A Unit mi.rtl.Types reune os tipos globais usados pelo pacote mi.rtl. Esta unit foi testada nas plataformas: no linux.

    • NOTA

      • O Método TTypes.TPointer.Get_Mem ignora alocação de memória real porque não sei como fazer nas plataformas diferentes do Windows.

    • VERSÃO

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • Period : June to September of 2001)

        • 14/09/2001 : I begin of the version: Windows 98

        • 29/10/2021 : Portado para o compilador free pascal para os sistemas operacionais: 1. x86_64-linux 2. x86_64-win64 3. i386-win32

        • 02/11/2021 : Trabalhei na documentação com pasdoc.

        • 12/11/2021

          • A Unit mi.rtl.types foi convertida para unit mi.types.

          • Criado a class TTypes com todos os tipos definidos em mi.rtl.types com objetivo de encapsular os tipos globais do pacote mi.rtl.

        • 13/11/2021

          • Documentação da unit mi.rtl.Types.

        • 15/12/2021

          • Criado o tipo registro TIndentificação.

mi.rtl.ui.Dmxscroller.dates

-A Unit mi.rtl.ui.Dmxscroller.dates implementa a classe TDatesFreePascal.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

      • 28/03/24 18:322 a 08:00 - Conclui essa unit.

mi.rtl.ui.dmxscroller.inputbox

A unit mi.rtl.ui.dmxscroller.inputbox implementa a classe genérica TMI_UI_InputBox com objtivo do pacote maricarai possa comunicar-se com usuário nas interfaces visuais na qual for implementado inputBox.

Mi.rtl.WebModule

 

Mi.rtl.WebModule.Custom

 

mi.ui.dialogs

  • A unit mi.ui.dialogs implementa a classe TDialogs do pacote mi.ui.

    • VERSÃO:

      • Alpha - 1.0.0

    • CÓDIGO FONTE:

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco e-mail: paulosspacheco@yahoo.com.br

        • 2021-12-02

          • 23:00 a 23:35 - Criado a unit mi.ui.dialogs e implementação da classe TDialogs

      • 2021-12-03

        • 09:40 a 12:00

          • Criar método de classe Confirm();

          • Criar método de classe Prompt();

          • Criar método de classe Password();

      • 2021-12-04

        • 15:11 a 16:40

          • Criar exemplo TForm1.Test_tobjects_dlgs_Confirm;

          • Criar exemplo TForm1.Test_tobjects_dlgs_Prompt;

          • Criar exemplo TForm1.Test_tobjects_dlgs_password;

mimeinln

Utilities for inline MIME

mimemess

MIME message handling

mimepart

MIME part handling

mi_rtl_tarefas_a_fazer

 

mi_rtl_ui_custom_application

A unit mi_rtl_ui_custom_application implementa a classe TMI_ui_Custom_Application.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • PENDÊNCIAS

  • REFERÊNCIA

  • HISTÓRICO

    • Criado por: Paulo Sérgio da Silva Pacheco paulosspacheco@yahoo.com.br)

      • 2022-03-29 16:06

        • Criar a unit mi_rtl_ui_custom_application e analisar o que preciso fazer para integrar com a unit mi_ui_Dmxscroller_sql

      • 2022-04-06 15:40

        • Implementar o evento Get_ParametersCloseQuery e salvar o formulário quando ele for executado. ✅

        • No evento Get_ParametersCloseQuery Checar se o usuário é válido. ✅

        • Criar método DoOnValidUser ✅

        • Criar método Get_ParametersCloseQuery para executar o evento DoOnValidUser. ✅

      • 2022-04-07 08:43

        • Cada banco de dados SQL tem alguns parâmetros básicos para sua conexão:

          • Criar as propriedades de TMI_ui_Custom_Application para que o usuário informe esses parâmetros:

            • Banco de dados PostgresSQL

              • CharSet = 'UTF8'; ✅

              • ConnectorType:='PostgreSQL'; ✅

              • HostName := '127.0.0.1'; ✅

              • UserName := 'postgres'; ✅

              • Password := 'masterkey'; ✅

              • DatabaseName:= 'maricarai'; ✅

              • DirDatabaseName:= './'; ✅

            • connected :Boolean ✅

            • Options : TSQLConnectorOptions ✅

          • Documentar as propriedade criadas hoje ✅.

      • 2022-04-08

      • 2022-04-14 14:58

        • Criar a constante OkCreateDataBase e o método CreateDataBase. ✅

      • 2022-04-15 10:00

        • Criar método NameDataBase que retorna o nome do database porque o nome do dataBase é diferente em cada banco de dados. O postres usa um nome simples e o ip para acessar o banco, o SqLite3 usa o nome da pasta + nome do database + ext. ✅

mi_rtl_ui_Dmxscroller

A unit mi_rtl_ui_Dmxscroller implementa a classe TUiDmxScroller e registro TDmxFieldRec.

  • ORIGEM DESTA IDEIA:

  • VERSÃO

    • Alpha - 1.0.0

  • HISTÓRICO

  • CÓDIGO FONTE:

  • PENDÊNCIAS

    • T12 Criar Property TMi_rtl_dmxScroller.TemplateClient_Path

    • T12 Criar Property TMi_rtl_dmxScroller.ClientTemplates_ dataModule_FileName

    • T12 Criar Property TMi_rtl_dmxScroller.ClientTemplates_Form_FileName

    • T12 O grupo TMi_RadioGroup_Lcl não é selecionado com a tecla na tecla TAB

      • Quando os botões TRadioButton estão dentro do TRadioGroup a propriedade TRadioGroup.TabStop não funciona.

    • T12 Implementar o campo FldLink. (Esse campo executa uma ação usando controle TStaticText.

    • T12 Implementar a possibilidade das fontes do label ser personalizada baseado em um estilo que pode ser uma variável global.

      • Suponha que ˆZ = <h1> Título e ˆD = <B> de negrito então o sistema informa a TDmxFieldRec.Style = nome do estilo onde nome do estilo = 'Font = FonteX; Size= XX; etc.. '

        • Exemplo:

        ˜ˆZCADASTRO DE ALUNOSˆZ˜

        ˜ˆDÑome do AlunoˆD:˜\ssssssssss

    • T12 Implementar a edição de campo FldMemo.

    • T!2 Implementar a campo fldBLOb;

    • t12 Implementar a edição de fldHexValue.

      • O campo Hexadecimal deve ser campo longint mais a edição é uma string comum . FldStr

    • T12 Implementar a execução do evento do tipo CharExecProc quando a tecla F7 é pressionada.

    • T12 Criar opção para gerar cliente HTML a partir de TDmxScroller

    • T12 Nosso código só é executado com o editor de propriedade. Se não estamos no editor de propriedade então não temos controle do código no modo design. Qual o meu problema: O formulário deve ser criado em tempo de execução, porém eu queria ver como ele estava ficando sem precisar compilar e executar o código, por isso coloquei o código em um stringList e ao ativar o objeto, o formulário é criado. Porém esses objetos criados no designer não podem ficar no arquivo de recursos porque quando for executado vai haver duplicidade.

      • Quando eu desativo o objetos todos os objetos que ele criou são excluídos do arquivo de recursos.

      • Isso eu já faço agora, mais quando distribuir o componente as pessoas vão deixar esses componente usado no teste e ao executar vai haver error.

      • Por isso eu queria que caso a propriedade active tivesse em true eu queria que ela ficasse em false.

  • CONCLUÍDO

    • T12 Criar tipo TEn_OnEvent_DmxFieldRec;

    • T12 Criar TEnClientsApplication = (ApLcl,ApJavaScript,ApDynamichtml,ApVueJs,ApAngular); ✅

    • T12 Implementar o método public function Locate(): Boolean;override;overload;✅

    • T12 Implementar a propriedade public property CanModify: Boolean;

    • T12 Implementar a propriedade public property TDmxScrooler.Modified : Boolean read _Modified; ✅

    • T12 Criar método Select_First_Field_Normal para se acionado no método DoOnNewRecord.

    • T12 Implementar o evento OnChange em todos os controles, visto que o mesmo é mais fácil criar lógica de negócios visto que o mesmo só é executado se o campo for modificado. ✅

    • T12 Criar evento Procedure OnCalcField;✅

    • T12 Criar evento Procedure OnCalcFields;✅

    • T12 Criar evento TUiDmxScroller.OnBeforeDelete.✅

    • T12 Criar evento TUiDmxScroller.OnAfterDelete.✅

    • T12 Criar evento TUiDmxScroller.OnBeforeUpdate.✅

    • T12 Criar evento TUiDmxScroller.OnAfterUpdate. ✅

    • T12 Criar evento onAfterInsert e depurar as consequencias caso retorne false; ✅

    • T12 Criar método Procedure updateCommands; ✅

    • T12 Criar evento onBoforeInsert ✅

    • T12 Criar function GetNextValue(const SequenceName: string; IncrementBy: integer): Int64;✅

    • T12 Criar function MaxPKey(aTabela, aID: String): LongInt;overload;✅

    • T12 Criar Function MaxPKey: LongInt;Virtual;overload;✅

    • T12 Criar function GetRecNo: LongInt; virtual;✅

    • T12 Criar function TDmxFieldRec.Mask :TMask.✅

      • Retorna o tipo da mascrara contida no template;✅

    • T12 Checar porque o campo combobox não está funcinando o valor default;✅

    • T12 Criar método: Public Function UpdateRec_if_RecordAltered:Boolean;Virtual;✅

    • T12 Implementar edição do campo FldDateTime. Obs: 'D'; //:< D = TipoData dd/nn/yy✅

    • T12 Criar Método StarTransaction;✅

    • T12 Criar Método Commit✅

    • T12 Criar Método Rollback✅

    • T12 Quando o usuário teclar tab para passar o campo e o campo seguinte não estiver visível o sistema deve passar a página do controle parent.✅

    • T12 Implementar a edição FldBoolean. ✅

      • Os campo Boolean deve ser editados como uma campo enumerado onde:

        • 0 - False; não

        • 1 = True; sim

    • T12 Implementar a propriedade AlignmentLabels := taCenter; ✅ AlignmentLabels := taLeftJustify; ✅ AlignmentLabels := taRightJustify ; ✅

    • T12 Na construção do formulário LCL setar o campo PDmxFieldRec.LinkEdit; ✅

    • T12 Implementar o método: function FieldByNum(aFieldnum:Integer):PDmxFieldRec; ✅

    • T12 Criar método Edit semelhante a TdataSet.edit ✅

    • T12 Criar método: Public Function UpdateRec_if_RecordAltered:Boolean;Virtual;✅

    • T12 Criar método para habilitar e desabilitar a tabela de acordo com seu estado atual; ✅

      • O método EnableUpdateNewRecord é habilita os botões grava e Refresh quando o modo appending for true. É acionando em ChangeMadeOnOff.

        • public procedure EnableUpdateNewRecord;✅

      • O método EnableUpdateRecord habilita os botões Novo, grava e Refresh quando o modo appending for false. É acionando em ChangeMadeOnOff.

        • public procedure EnableUpdateRecord;✅

      • T12 Criar método habilitar todos os botões quando em changeMadeOnOff O registro não foi alterado;

        • Public procedure EnableRefresh; ✅

      • T12 O Método Refresh deve anular o que foi digitado até o momento com os dados do dataset. ✅

      • T12 Quando o DataSet estiver vazio o evento Do OnNewRecord deve ser acionado no método .Refresh ✅

      • T12 Criar Método: public procedure DisableCommands(aCommands: Array of AnsiString);✅

      • T12 Criar Método: Public procedure EnableCommands(aCommands: Array of AnsiString);✅

      • T12 Criar atributo: public Var Mi_ActionList : TActionList;✅

      • T12 Criar métodos: Public function GetAction(aName:AnsiString):TAction;✅

      • T12 Criar métodos: public Procedure SetStateAction(aName:AnsiString;aEnable:Boolean);✅

      • T12 Criar métodos: public Function getStateAction(aName:AnsiString):Boolean; ✅

      • T12 Criar métodos: public function CommandsEnabled(aCommands : array of ansistring): Boolean; ✅

      • T12 Criar métodos: public function CommandsDisabled(aCommands : array of ansistring): Boolean; ✅

      • T12 Publica a propriedade DoOnNewRecord_FillChar e atualizar o buffer quando setado em true; ✅

      • T12 Criar atributo CurrentBookmark: TBookMark; ✅

      • T12 Criar método: Public Function GetRec :Boolean; Virtual; ✅

      • T12 Criar método: Public Function DeleteRec :Boolean; Virtual; ✅

      • T12 Criar método: Public Function PutRec:Boolean;Virtual; ✅

      • T12 Criar método: Public Function UpdateRec: Boolean; Virtual; ✅

      • T12 Criar método: Public Function AddRec:Boolean ;Virtual; ✅;

      • T12 Criar método: Public Function LastRec: Boolean;overload;virtual; ✅

      • T12 Criar método: Public Function FirstRec: Boolean;overload;virtual; ✅

      • T12 Criar método: Public Function PrevRec: Boolean;overload;virtual; ✅

      • T12 Criar método: Public Function NextRec: Boolean;overload;virtual; ✅

      • T12 O campo FldCheckBox não está funcionando o flag charHint ✅.

      • T12 Implementar o controle ChatHint no Template para seja possível passar um documento markdown pelo Template; ✅.

      • T12 Ao executar o evento OnExit é necessário o redraw em de todos os campo caso haja alteração ao retorna da chamada. ✅.

      • T12 O componente TMi_ui_Button_lcl não está na lista dos campos selecionados na tecla tab. ✅

      • T12 Os campos FldEnum não estão mostrando o help. ✅

      • T12 Criar a propriedade Locked; ✅

      • T12 No pacote mi.rtl.ui, transferir toda dependência do pacote LCL para o pacote mi.rtl.form.

      • T12 Implementar a propriedade TUiDmxScroller.JSONObject

      • T12 No método SetString em caso de erro de gera exceção informando valor máximo do campo e não o valor digitado. ✅

mi_rtl_ui_DmxScroller_Buttons

A unit mi_rtl_ui_DmxScroller_Buttons implementa a classe TUiDmxScroller_Buttons.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

    • mi_rtl_ui_DmxScroller_Buttons.pas

    • PENDÊNCIAS

    • CONCLUÍDO

      • Criar classe TUiDmxScroller_Buttons ✅️

      • Criar constructor Create.✅️

      • Criar Function Create_RCommands. ✅️

      • Commands_Buttons_High : Byte; ✅️

      • Commands_Buttons : Array[0..Max_List_Buttons] of TRCommand; ✅️

      • Max_List_Buttons = sizeof(Longint); ✅️

      • Commands_Buttons_Mb : Longint; ✅️

      • Function Add_RCommands_Buttons; ✅️

      • Function Create_RCommands_Buttons; ✅️

      • Function Set_Commands_Buttons_Mb(Const aMb_Bits:Longint):Longint;✅️

      • Documentar os atributos abaixo: ️

        • Commands_Buttons_High : Byte; ✅️

        • Commands_Buttons : Array[0..Max_List_Buttons] of TRCommand; ✅️

    • HISTÓRICOS

mi_rtl_ui_dmxscroller_form

A unit mi_rtl_ui_dmxscroller_form implementa a classe TDmxScroller_Form cuja a sua função é vincular o componente TUiDmxScroller ao componentes visualais tais como TMi_lcl_ui_Form, TMi_lcl_ui_ds_Form e TMi_lcl_ui_js_Form..

  • Primeiro autor: Paulo Sérgio da Silva Pacheco paulosspacheco@yahoo.com.br)

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO:

  • PENDÊNCIAS

    • T12 Criar método public procedure DoCreateForm();

    • T12 Criar propriedade UiDmxScroller_Buttons:TUiDmxScroller_Buttons

  • CONCLUÍDO

    • T12 Implementar o método: Procedure Select_First_Field_Normal; virtual;abstract;✅

    • Criar método procedure LockUpdates;virtual;✅

    • Criar método procedure UnlockUpdate;virtual;✅

    • T12 O método PutBuffers se DataSource for <> nil, com o buffer da propriedade dataSource.DataSet deve atualizar o buffer da propriedade TDmxScroller_Form. ✅

    • T12 O método PutBuffers se DataSource for <> nil, com o buffer da classe TDmxScroller_Form deve atualizar a buffer da propriedade dataSource.DataSet. ✅

    • Criar atributo private FirstDataRow : integer; ✅

    • Criar atributo private PrevRec : integer; ✅

    • Criar atributo protected DMXFields : TFPList; ✅

    • Criar atributo protected FldRadioButtonsAdicionados:TStringList;✅

    • Criar atributo Public Function SetHelpCtx_Hint ✅

    • Criar atributo Public Procedure SetHelpCtx_Hint ✅

    • Criar constructor Create(aOwner:TComponent);Override; ✅

    • Criar método public procedure AfterConstruction; override; ✅

    • Criar public destructor destroy;override; ✅

    • Criar método protected procedure ShowControlState;override; ✅

    • Criar método protected procedure CreateStruct ✅

    • Criar método Protected procedure DestroyStruct; Override; ✅

    • Criar método procedure Scroll_it_inview_LCL ✅

    • Criar método public procedure Scroll_it_inview ✅

    • Criar método protected procedure CreateFormLCL ✅

    • Criar método public function GetTemplate(aNext: PSItem) ✅

    • Criar método protected procedure UpdateBuffers_Controls;virtual; ✅

    • Criar método public procedure UpdateBuffers;override; ✅

    • Criar método public procedure Refresh;override; ✅

    • Criar método protected procedure SetActiveTarget(aActive : Boolean);override; ✅

    • Criar método protected procedure SetActive(aActive : Boolean);override; ✅

    • T12 Documentar a unit. ✅

mi_rtl_ui_dmxscroller_form_ds

 

mi_rtl_ui_Dmxscroller_sql

A unit mi_rtl_ui_Dmxscroller_sql implementa a classe TUiDmxScroller_sql.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

    • mi_ui_Dmxscroller_sql.pas

    • PENDÊNCIAS

      • T12 Falta implementar chave estrangeira em createTable;

      • T12 Em TUiDmxScroller_sql.DoOnNewRecord; está executando o método (CustomBufDataset as TSQLQuery).Append; antes do componenente TUiDmxScroller_sql está visível e isto está gerando exceção.

      • T12 ANÁLISE

        • [Estudar os procedimentos armazenados](https://www.w3schools.com/sql/sql_stored_procedures.asp)

        • [Estudar as restrições SQL](https://www.w3schools.com/sql/sql_constraints.asp)

        • Como saber se um campo é uma chave que liga outra tabela?

          • SQL FOREIGN KEY Constraint

            
            /*Não, podemos permitir que os registros das pessoas que possuim camisetas
              lavando sejam apagados, para garantir a integridade da informação.
              Para isso devemos utilizar o as chaves estrangeiras que acusarão
              um erro quando tentarmos deletar uma pessoa que possuir camisetas.
              Veja em código:
            */
            
            CREATE TABLE Pessoa(
                IdPessoa INT NOT NULL PRIMARY KEY IDENTITY(1,1),
                Nome VARCHAR(20) NOT NULL
            )
            
            CREATE TABLE Camiseta(
                IdCamiseta INT NOT NULL PRIMARY KEY IDENTITY(1,1),
                Descrição VARCHAR(20) NOT NULL,
                IdPessoa INT NOT NULL
                CONSTRAINT FK_Camiseta_Pessoa FOREIGN  KEY(IdPessoa) REFERENCES Pessoa(IdPessoa)
            )
            
            INSERT INTO Pessoa VALUES ('HeyJoe')
            INSERT INTO Pessoa VALUES ('Caique')
            
            
            INSERT INTO Camiseta VALUES ('Azul', 1)
            INSERT INTO Camiseta VALUES ('Amarela', 1)
            INSERT INTO Camiseta VALUES ('Preta', 2)
            
            SELECT * FROM Pessoa, Camiseta WHERE Pessoa.IdPessoa = Camiseta.IdPessoa

        • Como saber o tipo de relacionamento que os campos de outra tabela tem com a tabela atual?

      • T12 A opção CreateTable está dando mensagem de erro quando a coluna já existe.

        • Encontrar uma forma de não gerar exceção ou ignorar as exceções nesta rotina.

      • T12 Em TUiDmxScroller_sql.AlterTable checar:

        • T12 Criar código para todos os tipos reconhecidos por marIcaraí.

        • T12 Debugar para saber se está tudo funcionando.

        • T12 Permitir adicionar uma nova coluna mesmo que a tabela já exista.

      • T12 Em SetTableName(aTableName:String) criticar o nome aTableName é um nome válido para a tabela.

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco paulosspacheco@yahoo.com.br) ✅

      • 2022-03-13

        • 09:00

          • T12 Implementar a criação de código SQL baseado nos dados de TUiDmxScroller.

            • ANÁLISE:

              • Onde pegar o nome da tabela ou consulta? ✅

                • TUiDmxScroller.CustomBufDataset.FileName;

              • Onde pegar o nome dos campos da tabela CustomBufDataset.Filename? ✅

                • A lista de campos encontra-se em : TUiDmxScroller_Atributos.Fields : TFPList;

              • Como saber se TUiDmxScroller é uma tabela ou a uma consulta?

                • Se todos os TUiDmxScroller_Atributos.Fields[].FieldName não contém '|' é porque é FileName é uma tabela. ✅

                • Se pelo menos um TUiDmxScroller_Atributos.Fields[].FieldName contém '|' é porque é FileName é uma consulta envolvendo mais de uma tabela. ✅

              • Como saber se uma tabela ou consulta existe do banco de dados?

                • O SQL do postegres e do sqlite3 tem a clausula IN NOT EXISTS no comando CREATE TABLE:

                  • EXEMPLO:

                    CREATE TABLE IF NOT EXISTS TEST01 ();  ✅

            • REFERÊNCIAS

      • 2022-03-14

        • 08:22

          • T12 Criar a unit mi_ui_Dmxscroller_sql.pas com a classe TUiDmxScroller_sql com objetivo de concentrar a integração do TDmxScroller com o componente TSQLQuery

        • 20:00

          • T12 Na Construção de TFields atualizar a propriedade TField.ProviderFlags com o tipo de acesso definido em TDmxFieldRec.Access

        • 21:12

          • T12 Criar propriedade TableName

        • 21:27

          • T12 Criar Function SetSqlCustomBufDataset:Boolean;Virtual;

            • CustomBufDataset.SQL := SELECT * FROM X onde X será definido pela propriedade TableName

      • 2022-03-15

        • 09:11

          • Depurar o que fiz ontem para fazer funciona a atualização do banco de dados SQL. ✅

        • 11:36

        • 14:38

          • T12 Atualizar TSQLQury.TFields.ProviderFlags com TUiDmxScroller.MiProviderFlags ✅

      • 2022-03-16

      • 2022-03-17

        • 10:48

          • T12 Os flags indicando que se trata de chave primária não está sendo atualizado em createStructor, por isso não está criando a chave primária. ✅

      • 2022-03-18

        • 10:40

          • T12 Ao criar uma tabela SQL em AlterTable adicionar colunas ao invés de criar a tabela toda. ✅

            • Motivo:

              • Permitir que o banco de dados fique compatível com o Template.

              • Alterar um coluna de forma automática não é bom, porque o que está feito gera dependências que produzirão erros ao fazer essas alterações.

      • 2022-03-21

      • 2022-03-22

        • 09:00

          • T12 Documentar as units TuiTypes e TUIConsts. ✅

        • 10:00

          • T12 Criar os relacionamentos entre tabelas (restrições entre tabelas) ✅

        • 14:14

          • T12 Depurar os relacionamentos entre tabelas. ✅

        • 18:47

          • O Componente CustomBufDataset não está entrando no modo edit. ✅

            • O problema estava nos eventos TScrollBoxDMX.DoOnEnter e TScrollBoxDMX.DoOnExit;]

      • 2022-03-22

        • 20:27

          • T12 Analisar como criar os comandos CmIncluir, cmAlterar, cmExcluir, cmConsulta para a tabela TDmxScroller

            • Criar os comandos: ✅

              • Public Procedure DoOnNewRecord;overload;override; //Usado para inicializa os parametros de um novo registro

              • Public Procedure PutRec;Override;//Grava o buffer no arquivo memo

              • Public Procedure GetRec;Override;//O primeiro registro esta gravado em Value

              • Public Function DeleteRec:Boolean;Override;

              • Function UpdateRec: Boolean;Override;

              • Function UpdateRec_if_RecordAltered:Boolean;Override;

              • Function PrevRec : Boolean;overload;override;

              • Function NextRec : Boolean;overload;override;

      • 2022-03-23

        • Criar método Public Function AddRec:Boolean;Override; ✅

          • Para que DoAddrec possa adicionar o registro é necessário que o registro esteja selecionando, ou seja no modo edit.

          • Obs: Está com problema.

      • 2022-03-25

      • 2022-03-28

      • 2022-03-30

        • Implementar a conexão com o banco de dados usando o componente Mi_Application.

      • 2022-04-14

      • 2022-04-15

mi_rtl_ui_form_abstract

A unit mi_rtl_ui_form_abstract implementa a classe TMi_rtl_ui_dmxscroller_View.

  • Autor: Paulo Sérgio da Silva Pacheco paulosspacheco@yahoo.com.br)

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • HISTÓRICO:

  • PENDÊNCIAS

    • T12 - Criar uma forma desta classe ser independente da visão, ou seja:

      • Todo o processamento ser feito em um TDataModule e poder ser usado para interagir com controles LCL, controles html, controles android etc.

  • CONCLUÍDO -

mi_rtl_ui_interfaces

  • A unit mi_rtl_ui_interfaces é usada para implementar as interfaces do pacote mi.ui com propopósito de permitir que se possa criar as interfaces com usuário independente do pacote gráfico instalado.

    • NOTA

      • O IDE Lazarus cria automaticamente o número da interface. Tecla: Crt+Alt+G

mi_rtl_ui_methods

 

mi_rtl_ui_types

A unit mi_rtl_ui_types implementa a classe TUiTypes.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

    • mi_ui_types.pas

    • HISTÓRICO

      • Criado por: Paulo Sérgio da Silva Pacheco paulosspacheco@yahoo.com.br) ✅

      • 2022-03-16

        • 19:49

          • Criar o tipo TStrSQL com objetivo de criar sql para qualquer banco de dados conhecido pelo sistema. ✅

Mi_SQLQuery

 

MI_UI_InputBox_lcl_u

A unit MI_UI_InputBox_lcl_u implementa o formulário TMI_UI_InputBox_lcl usado para criar formulários baseado em Template PSITem.

  • VERSÃO

    • Alpha - 1.0.0

  • CÓDIGO FONTE:

  • DEPENDÊNCIAS

    • Criar uma função que receba um TForm e retorne um retangulo menor que a tela e maior que todos os componentes do mesmo.

      • Motivo: Lazarus apartir da versão 2.2.2 o método autosize deixa os scrollbar visiveis sem necessidade.

    • Criar a funcão InputBox sem eventos e fonte padronizada. ```pascal

      function InputBox (aTitle : AnsiString; aTemplate: AnsiString; aOnCloseQueryLocal:TOnCloseQueryLocal; aFont : AnsiString; aOnEnterLocal:TOnEnterLocal ; aOnExitLocal:TOnExitLocal; aOnEnterFieldLocal:TOnEnterFieldLocal; aOnExitFieldLocal:TOnExitFieldLocal; aArgs: array of const;

      // Se o botão MrOk for pressionado aForm retorna um formulário tipo TMI_UI_InputBox out aMi_ui_InputBox : TMI_UI_InputBox ): TModalResult; overload;

mi_ui_mi_msgbox_dm

 

nntpsend

NNTP client

pop3send

POP3 protocol client

project1

 

slogsend

BSD SYSLOG protocol

smtpsend

SMTP client

snmpsend

SNMP client

sntpsend

NTP and SNTP client

ssl_cryptlib

SSL/SSH plugin for CryptLib

ssl_libssh2

SSH plugin for LibSSH2

ssl_openssl

 

ssl_openssl11

 

ssl_openssl11_lib

OpenSSL support

ssl_openssl3

 

ssl_openssl3_lib

OpenSSL support

ssl_openssl_capi

 

ssl_openssl_lib

OpenSSL support

ssl_sbb

SSL plugin for Eldos SecureBlackBox

ssl_streamsec

SSL plugin for StreamSecII or OpenStreamSecII

svr_http_listRecords

 

synachar

 

synacode

Various encoding and decoding support

synacrypt

Encryption support

synadbg

Socket debug tools

synafpc

 

synaicnv

LibIconv support

synaip

IP adress support procedures and functions

synamisc

 

synaser

 

synautil

 

Tarefas_a_fazer

Tarefas a fazer do projeto MarIcarai - mi.rtl

  • Versão atual - mi.rtl

    • Data em que esta versão foi criada: 24/08/2023

    • Versão atual: 0.9.0

    • Versão do Free Pascal: 3.2.2

    • Versão do Lazarus: 3.0.0 RC1

  • Descrição das tarefas a fazer - mi.rtl

  • 08/08/2023 a 28/08/2023

    • Descrição:

    • Status:

      • [ ]

    • 04/07/2023

      • Descrição:

        • Criar programa install.sh para instalar o projeto maricaraí - mi.rtl.

      • Status:

        • [ ]

    • 04/07/2023

      • Descrição:

      • Status:

        • [ ] fazendo

    • 03/07/2023

      • Descrição:

        • Criar método TFiles.FindFilesAll com objetivo de localizar todos o arquivos de uma pasta e subpastas, obedecendo uma mascara. Ex: TFiles.FindFilesAll('',*.html) vai localizar todos os arquivos cujo a extensão seja html dentro da pasta corrente.

      • Status:

        • [ ] fazendo

test_num_version

 

tipuesearch

 

tlntsend

Telnet script client

tzutil

 

uMiConnectionsDb

A unit uMiConnectionsDb implementa o datamoule uMiConnectionsDb configurado para conectar-se e descontectar-se aos bancos de dados.

uMiDataModule

A unit uMiDataModule implemnta a classe TMiDataModule usada como base para acesso a tabelas no banco de dados.

Unit1

 

u_conts

 

u_conts_mapa_site

 

u_criate_index_stork

O programa u_criate_index_stork cria o arquivo .

  • VERSÃO

    • Alpha - Alpha - 0.1.0

  • CÓDIGO FONTE:

  • OBJETIVO

    • Esta unit tem como missão criar o arquivo index_stork.torm para ser usado como parâmetro do programa rust stork executado na raiz do site a ser criado o arquivo list_stork.st.

    • O programa de linha de comando stork, receberá o arquivo de configuração .index_stork.toml e criará o arquivo de índice list_stork.st para ser uado como índice do programa stornk.js. O arquivo é blob serializado e compactado que a biblioteca Stork Javascript utiliza. Geralmente tem a extensão de arquivo de nome .st e tem aproximadamente o tamanho de um JPEG.

    • Para criar um índice de pesquisa, o projeto Stork requer que se crie um arquivo de configuração que declare quais documentos devem ser indexados. Este arquivo de configuração deve ter o formato de arquivo TOML.

      • EXEMPLO:

        
        [input]
           base_directory = ""
           url_prefix = ""
           files = [
          ]

  • NOTAS

    • Este unit espera o arquivo que o arquivo './templates/stork/index_stork.toml' existe e tenha a tag files_path

  • HISTÓRICO

    • Criado por: Paulo Pacheco paulosspacheco@yahoo.com.br)

    • 2023-09-12

      • 14:00 as 17:00

        • Criar unit

      u_criate_index_stork

    • 2023-09-14

      • 08:32 as 11:50

        • Criar métodos

        • Documentar unit

      u_criate_index_stork

      • Documentar unit u_criate_index_stork; -

u_dm_mapa_site

O programa u_dm_mapa_site cria o arquivo template_pssp_app_br.html com todas as URLs contidos em ./tipuesearch_content.js.

  • VERSÃO

    • Alpha - Alpha - 0.1.0

  • CÓDIGO FONTE:

  • OBJETIVO

    • Este programa tem como missão criar o arquivo mapa_do_site.html

  • NOTAS

    • Este unit espera o arquivo que o arquivo './tipuesearch_content.js' para servir como conteúdo da tag ˜conteudo

  • HISTÓRICO

    • Criado por: Paulo Pacheco paulosspacheco@yahoo.com.br)

    • 2023-10-26

      • 14:00 as 09:16

        • Criar unit

      u_dm_mapa_site

      • Criar unit u_dm_mapa_site; ✅

u_gerar_mapa_site

 

u_mapa_site

O programa u_mapa_site cria o arquivo template_pssp_app_br.html com todas as URLs contidos em ./tipuesearch_content.js.

  • VERSÃO

    • Alpha - Alpha - 0.1.0

  • CÓDIGO FONTE:

  • OBJETIVO

    • Este programa tem como missão criar o arquivo mapa_do_site.html

  • NOTAS

    • Este unit espera o arquivo que o arquivo './tipuesearch_content.js' para servir como conteúdo da tag ˜conteudo

  • HISTÓRICO

    • Criado por: Paulo Pacheco paulosspacheco@yahoo.com.br)

    • 2023-10-26

      • 14:00 as 09:16

        • Criar unit

      u_mapa_site

      • Criar unit u_mapa_site; ✅

webModule1

 

webmodule2

 


Gerado por PasDoc 0.16.0.