Classe TObjectsMethods

Unit

Declaração

type TObjectsMethods = class(TObjectsConsts)

Descrição

Hierarquia

Visão Geral

Tipos Aninhados

Public TFilesLogs = mi.rtl.objects.Consts.logs.TFilesLogs;
Public TMI_MsgBox = mi.rtl.objects.consts.MI_MsgBox.TMI_MsgBox;
Public TMi_Transaction = mi.rtl.consts.Transaction.TMi_Transaction;
Public TProgressDlg_If = mi.rtl.objects.consts.progressdlg_if.TProgressDlg_If;
Public TProgressDlg_If_Class = mi.rtl.objects.consts.progressdlg_if.TProgressDlg_If_Class;

Campos

Public Mi_Transaction: TMi_Transaction;
Public nested const _Logs : TFilesLogs = nil;

Métodos

Public constructor Create(aOwner:TComponent); override;
Public Destructor destroy; Override;
Public class Function redirectOutput(Var OutputFile: text;aFileName:TFileName):integer;
Protected Function GetAlias:AnsiString; Virtual;
Protected Procedure SetAlias(Const aAlias:AnsiString); Virtual;
Public Function create_MI_MsgBox:TMI_MsgBox; virtual; abstract;
Public class function MI_MsgBox: TMI_MsgBox;
Protected function StartTransaction:Boolean; virtual; Overload;
Protected function COMMIT:Boolean; virtual; Overload;
Protected procedure Rollback; virtual;
Public class function Logs: TFilesLogs;
Public class procedure SysMessageBox(Msg, Title: AnsiString; Error: Boolean);
Public class function MessageBox(const Msg: AnsiString): TMI_MsgBoxTypes.TModalResult; Virtual; overload;
Public class function MessageBox(const aMsg: AnsiString; DlgType: TMI_MsgBoxTypes.TMsgDlgType; Buttons: TMI_MsgBoxTypes.TMsgDlgButtons): TMI_MsgBoxTypes.TModalResult; Virtual; overload;
Public class function MessageBox(const aMsg: AnsiString; DlgType: TMI_MsgBoxTypes.TMsgDlgType; Buttons: TMI_MsgBoxTypes.TMsgDlgButtons; ButtonDefault: TMI_MsgBoxTypes.TMsgDlgBtn): TMI_MsgBoxTypes.TModalResult; Virtual; overload;
Public class procedure Abstracts;
Public Class procedure RegisterError;
Public class procedure RegisterType(Var S: TStreamRec);
Public class function LongMul(X, Y: Integer): LongInt;
Public class function LongDiv(X: LongInt; Y: Integer): Integer;
Public class procedure NNewStr(Var PS : ptstring;Const S : AnsiString);
Public class function CallPointerLocal(Func: codepointer; Frame: Pointer; Param1: pointer): pointer; inline;
Public class PROCEDURE DisposeStr( Var P: ptstring);
Public class Function Name_Type_App_MarIcaraiV1:AnsiString;
Public class Function Set_IsApp_LCL(aIsApp_LCL:Boolean):Boolean;
Public class Procedure PopSItem(Var Items: PSItem);
Public class PROCEDURE DISCARD(Var AClass); overload;
Public class PROCEDURE DISCARD(Var AClass:TObject); overload;
Public class Function SetFlushBuffer_Disk(Const aFlushBuffer_Disk : Boolean): Boolean;
Public class Function SetFlushBuffer(Const aFlushBuffer : Boolean): Boolean;
Public class Function GetDosTicks:DWord;
Public class Function Seg_to_MillSeg(aSegundos:Longint):DWord;
Public class Procedure RunError(Error:Word);
Public class Procedure Run_Error(Error:Word;Procedimento_que_Executou:AnsiString);
Public Class Procedure Alert(aTitle: AnsiString;aMsg:AnsiString);
Public Class procedure ShowMessage(const aMsg: string);
Public Class Function Confirm(aTitle: AnsiString;aPergunta:AnsiString):Boolean;
Public class function MaxItemStrLen(AItems: PSItem) : integer; Overload;
Public class function MaxItemStrLen(PSItems: tString) : integer; Overload;
Public class function conststr( i : Longint; Const a : AnsiChar) : AnsiString;
Public class function centralizesStr(Const campo : AnsiString; Const tamanho : Integer) : AnsiString;
Public class function MaskEdit_to_Mask(const aMaskEdit: AnsiString ): TMask; virtual;
Public class function isDateTime(Const aTemplate : AnsiString):Boolean;
Public class Function TypeFld(Const aTemplate : tString;Var aSize : SmallWord):AnsiChar; overload;
Public class Function TypeFld(Const aTemplate : tString):AnsiChar; overload;
Public class Function IStr( Const I : Longint; Const Formato : tString) : tString; Overload;
Public class Function IStr( Const I : Longint) : tString; Overload;
Public class Function IStr( Const I : tString; Const Formato : tString) : tString; Overload;
Public class function StrNum(formato : AnsiString; buffer :Variant; Const Tipo : AnsiChar;Const OkSpc:Boolean) : AnsiString; overload;
Public class function StrNum(formato : AnsiString; buffer:Variant; Const Tipo : AnsiChar) : AnsiString; overload;
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Boolean) : Boolean; overload;
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : AnsiChar) : AnsiChar; overload;
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Longint ) : Longint; overload;
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Extended ) : Extended; overload;
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : AnsiString ) : AnsiString ; overload;
Public class function IIF<T>(const Logica: Boolean; const E1, E2: T): T; static;
Public class Function SIF(Const Logica : Boolean; Const E1 , E2 : AnsiString ) : AnsiString ;
Public class function MinL(Const a,b:Longint):Longint;
Public class function MaxL(Const a,b:Longint):Longint;
Public class function NumToStr(Const formato : AnsiString;const buffer:Variant; Const Tipo : AnsiChar;Const OkSpc:Boolean):AnsiString;
Public class Function InsertCrtlJ(Const StrMsg:tString):tString;
Public class procedure Create_Progress1Passo(ATitle : tstring;Obs:tstring ; ATotal : Longint); Virtual;
Public class procedure Set_Progress1Passo(aNumber : Longint); Virtual;
Public class procedure Destroy_Progress1Passo; Virtual;
Public class procedure LogError(const Fmt: String; Args: array of const); overload;
Public class procedure LogError(const Msg:AnsiString ); overload;
Public class function WideStringToString(const ws: WideString): AnsiString;
Public class Function Set_FileModeDenyALLSalvaAnt(Const ModoDoArquivo : Boolean;Var _FileModeDenyALLAnt:Boolean):Boolean;
Public Class Function Set_FileModeDenyALL(Const ModoDoArquivo : Boolean):Boolean;
Public class Function Sitems_MsgErro() : PSItem;
Public class Function Pop_MsgErro:PSItem;
Public class function SpcStrD(Const campo : tString; Const Tam : Byte): tString;
Public class function CentralizaStr(Const campo : AnsiString; Const tamanho : Integer) : AnsiString;
Public class function spc(Const campo:AnsiString;Const tam :Longint):AnsiString;
Public class function NumberCharControl(s:AnsiString):Integer;
Public class Function StrAlinhado(aStrMsg:tString;Colunas : byte;Const Alinhamento:TAlinhamento):tString;
Public class Function StringToSItem( StrMsg:AnsiString; Alinhamento:TAlinhamento):PSItem; virtual; overload;
Public class Function StringToSItem( StrMsg:AnsiString ):PSItem; virtual; overload;
Public class function SItemsLen(S: PSItem) : SmallInt;
Public class Function SItemToString(Items: PSItem):AnsiString;
Public class procedure WriteSItems(var S: TMiStringList;const Items: PSItem);
Public class Function PSItem_ListaDeMsgErro:PSItem; virtual;
Public class Procedure MessageError; virtual;
Public class Function String_ListaDeMsgErro(Separador:String):AnsiString; Overload;
Public class Procedure Dispose_ListaDeMsgErro; virtual;
Public class Function UpperCase(str:AnsiString):AnsiString;
Public class function Lowcase(str:AnsiString):AnsiString;
Public class function AnsiString_to_USASCII(const pText: string): string;
Public class function RemoveAccents(const str: String ): String;
Public class Function String_Asc_GUI_to_Asc_Ingles(Const S: String): String;
Public class Function SGI(Const S: String): String;
Public class Function String_Asc_GUI_to_Asc_HTML(Const S: String): String;
Public class Function SGH(Const S: String): String;
Public class Procedure Show_GetEnv_System;
Public class Function FGetMem(Var Buff;Const TamBuff: Word) : Boolean;
Public class Procedure FFreeMem(Var Buff;Const TamBuff: Word) ;
Public class Function CGetMem(Const BuffOriginal:Pointer ;Const TamBuff: Word):Pointer;
Public class function isfileopen(var f:file):boolean ; overload;
Public class function isfileopen(var f:text):boolean ; overload;
Public class Function CloseLst:SmallInt;
Public class Procedure RedirecionaParaImpressora;
Public class Procedure RedirecionaRelatorio;
Public class Function ChangeSubStr(aSubStrOld : AnsiString; aSubStrNew : AnsiString; S: AnsiString ):AnsiString;
Public class Function Alias_To_Name(AAlias : AnsiString):AnsiString;
Public class function CreateGUID():TString;
Public class Function SetExecAsync(aExecAsync:Byte):Byte;
Public class Function GetExecAsync():Byte;
Public class function ShellScript(aCommand:String): String;
Public class function ShellExecute(Const lpOperation, FileName, Params, DefaultDir: AnsiString; ShowCmd: Integer): THandle; Overload;
Public class function ShellExecute(const FileName, Params, DefaultDir: AnsiString;ShowCmd: Integer): THandle; Overload;
Public class function ShellExecute(const FileName, Params: AnsiString): THandle; Overload;
Public class Function GetIpPub:String;
Public class function StrToInt(aStr:String):Int64;
Public class Function BooleanToStr(Const FieldData:Boolean):AnsiString;
Public class function DelSpcED(campo : Ansistring): AnsiString;
Public class function DeleteChars(campo: Ansistring;CharInvalid:TAnsiCharSet): AnsiString;
Public class function Delspace(campo : Ansistring):AnsiString;
Public class function GetNameValid(aName:AnsiString):AnsiString;
Public class function IsNumberReal(const aTemplate: ShortString): Boolean;
Public class function IsNumberInteger(const aTemplate: ShortString): Boolean;
Public class Function IsNumber(Const aTemplate : ShortString):Boolean;
Public class Function IsBoolean(Const aTemplate : ShortString):Boolean;
Public class Function IsData(Const aTemplate : ShortString):Boolean;
Public class Function IsHora(Const aTemplate : ShortString):Boolean;
Public procedure HandleEvent(var Event: TEvent); Virtual;
Public procedure ClearEvent(var Event: TEvent); Virtual;
Public class Function Change_AnsiChar(campo : AnsiString; Const AnsiChar_Font,AnsiChar_Dest : AnsiChar):AnsiString;
Public class Function DeleteMask(S:AnsiString;ValidSet: AnsiCharSet):AnsiString; overload;
Public class function DeleteMask(S:AnsiString;aMask:TString): AnsiString; overload;
Public class function AddMask(S: ShortString;aMask:ShortString): AnsiString;
Public class function CreateDB_or_DropDB(aConnectorType : TConnectorType; aHostname, aUserName, aPassword, aDataBaseName : String; okCreateDB:Boolean ):string;
Public class function StrToStrNumberForProcVal(S: AnsiString): AnsiString;
Public class function CheckRanger(S : AnsiString; aHigh, aLow: Int64; out aErr:Integer): Int64;
Public class function IntValid(S : AnsiString; TypeCode:AnsiChar):Boolean;
Public class Procedure ShowHtml(URL:string); virtual;
Protected Function GetHelpCtx_StrCurrentModule:AnsiString; virtual;
Protected Function GetHelpCtx_StrCurrentCommand: AnsiString; Virtual;
Protected Function GetHelpCtx_StrCurrentCommand_Opcao: AnsiString; virtual;
Public Function TabIndex:Longint; Virtual;
Protected function CreateHTML: AnsiString; Overload; Virtual;
Protected Function GetAcao():AnsiString; Virtual;
Protected function GetHelpCtx_Path: AnsiString; Virtual;
Protected Function GetHelpCtx_StrCommand: AnsiString; Virtual;
Protected Function GetHelpCtx_StrCurrentCommand_Topic: AnsiString; virtual;
Protected Function GetHelpCtx_StrCommand_Topic: AnsiString; virtual;
Protected Function GetHelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run; virtual;
Protected Procedure SetHelpCtx_StrCurrentCommand_Topic_Content_Run(wHelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run); virtual;
Protected Function Get_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File:Boolean; Virtual;
Protected procedure Set_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File(a_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File: Boolean); Virtual;
Protected Function GetHelpCtx_StrCurrentCommand_Topic_Content: AnsiString; virtual;
Protected Procedure SetHelpCtx_StrCurrentCommand_Topic_Content(wHelpCtx_StrCurrentCommand_Topic_Content:AnsiString); virtual;
Public function GetHelpCtx_Doc_HTML: AnsiString; Virtual;
Public class function SplitString(aInputString:string; aDelimiter: Char):TStringArray;
Public class function HTMLToTColor(const HTML: TString): Integer;
Public Class function IsEmptyOrNull(const aValue: Variant): Boolean;
Public class procedure UnlistPublishedProperty(ComponentClass:TPersistentClass; const PropertyName:String);
Public class Procedure str(v : variant; var s : String);
Public class Procedure Print_info_compile;
Public class function VarRecArrayToStr(const Args: array of const): string;
Public class procedure JsonToDataSet(const JSONString: string; var aJSONDataSet: TJSONDataSet );
Public Class Function DataSetToJson(Const aJSONDataSet: TJSONDataSet):String;
Public class function JSONToVariantArray(JSONData: TJSONData): Variant;
Public class function ArrayToVariant(aValues: array of string):Variant;
Public class function getFieldsKeys(aQueryFields: TStrings;out Values: TArray<string>): AnsiString; overload;
Public class function URLEncode(AStr: Ansistring): UTF8String;
Public class function JSONObjectToQueryString(const Params: TJSONObject): string;
Public Class function ConvertCSVToJSONArray(const CSV: string): TJSONArray;
Public class Procedure GetQueryFieldsLocate(var aRequest: TRequest; out aKeyFields: string; Out aKeyValues: Variant; Out aOptions : TLocateOptions ); Overload;
Public Class function LocateParamsToJson(KeyFields: string; KeyValues: Variant; Options: TLocateOptions): TJSONObject;
Public class procedure GetQueryFieldsEventName(var aRequest: TRequest; out aCurrentFieldName : String; out aCurrentFieldValue: String; out aEventName: String);
Public Class function FieldsEventNameParamsToJson(aKeyFields: string; aKeyValues: Variant; aOptions: TLocateOptions; aCurrentFieldName : String; aCurrentFieldValue: String; aEventName: String ): TJSONObject;
Public Class function ValidateAndNormalizeURL(const BaseURL, Action, QueryString: string): string;
Public class procedure ParseServerResponse(const AResponse: string; out KeyFields: string; out KeyValues: Variant);

Propriedades

Published property Alias : AnsiString Read GetAlias Write SetAlias;
Public property HelpCtx_StrCurrentModule: AnsiString read GetHelpCtx_StrCurrentModule write _HelpCtx_StrCurrentModule;
Public property HelpCtx_StrCurrentCommand: AnsiString read GetHelpCtx_StrCurrentCommand write _HelpCtx_StrCurrentCommand;
Public property HelpCtx_StrCurrentCommand_Opcao: AnsiString read GetHelpCtx_StrCurrentCommand_Opcao write _HelpCtx_StrCurrentCommand_Opcao;
Public property HelpCtx_StrCommand: AnsiString read GetHelpCtx_StrCommand write _HelpCtx_StrCommand;
Public property HelpCtx_StrCurrentCommand_Topic: AnsiString read GetHelpCtx_StrCurrentCommand_Topic write _HelpCtx_StrCurrentCommand_Topic;
Public property HelpCtx_StrCommand_Topic: AnsiString read GetHelpCtx_StrCommand_Topic write _HelpCtx_StrCommand_Topic;
Public property HelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run read GetHelpCtx_StrCurrentCommand_Topic_Content_Run write SetHelpCtx_StrCurrentCommand_Topic_Content_Run;
Public property Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File: Boolean read _Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File write Set_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File;
Public property HelpCtx_StrCurrentCommand_Topic_Content: AnsiString read GetHelpCtx_StrCurrentCommand_Topic_Content write SetHelpCtx_StrCurrentCommand_Topic_Content;

Descrição

Tipos Aninhados

Public TFilesLogs = mi.rtl.objects.Consts.logs.TFilesLogs;
 
Public TMI_MsgBox = mi.rtl.objects.consts.MI_MsgBox.TMI_MsgBox;
 
Public TMi_Transaction = mi.rtl.consts.Transaction.TMi_Transaction;
 
Public TProgressDlg_If = mi.rtl.objects.consts.progressdlg_if.TProgressDlg_If;
 
Public TProgressDlg_If_Class = mi.rtl.objects.consts.progressdlg_if.TProgressDlg_If_Class;
 

Campos

Public Mi_Transaction: TMi_Transaction;

A constante Mi_Transaction deve ser iniciada ao criar conexão com o banco de dados.

Public nested const _Logs : TFilesLogs = nil;

  • Logs é inicializado em Initialization e destruído em finalization

Métodos

Public constructor Create(aOwner:TComponent); override;
 
Public Destructor destroy; Override;
 
Public class Function redirectOutput(Var OutputFile: text;aFileName:TFileName):integer;

A classe método redirectOutput redireciona a saida de vídeo para arquivo passado como parâmetro.

Protected Function GetAlias:AnsiString; Virtual;
 
Protected Procedure SetAlias(Const aAlias:AnsiString); Virtual;
 
Public Function create_MI_MsgBox:TMI_MsgBox; virtual; abstract;

O método create_MI_MsgBox deve ser implementado que se possoa criar formulários MI_MsgBox diferente do padrão setado por Tapplication.

Public class function MI_MsgBox: TMI_MsgBox;
 
Protected function StartTransaction:Boolean; virtual; Overload;

O método StartTransaction inicia uma transação se puder.

  • RESULT

    • True

      • Se a transação atual for false;

    • false

      • Se a transação atual for true;

    • **Objetivo:

      • Permitir que após o processamento, só executar commit ou rollback se StartTransaction tenha retornado true;

    • EXEMPLO DE USO

      
      Function AddRec:Boolean;
      Var
        Finalize : boolean;
      begin
        try /Exepet
      
          Finalize := StartTransaction;
      
          AddRec;
      
          if Finalize
          then Commit
      
        Except
          On E : Exception do
          begin
            if finalize
            then Roolback;
      
             TException.Create(Self,'AddRec',E.Message);
          end;
      end;

Protected function COMMIT:Boolean; virtual; Overload;

O método COMMIT confirme a transação no banco de dados

Protected procedure Rollback; virtual;

O método Rollback anula a transação do banco de dados

Public class function Logs: TFilesLogs;
 
Public class procedure SysMessageBox(Msg, Title: AnsiString; Error: Boolean);

Public class function MessageBox(const Msg: AnsiString): TMI_MsgBoxTypes.TModalResult; Virtual; overload;

A classe MessageBox deve ser implementada no pacote mi.ui.

Public class function MessageBox(const aMsg: AnsiString; DlgType: TMI_MsgBoxTypes.TMsgDlgType; Buttons: TMI_MsgBoxTypes.TMsgDlgButtons): TMI_MsgBoxTypes.TModalResult; Virtual; overload;
 
Public class function MessageBox(const aMsg: AnsiString; DlgType: TMI_MsgBoxTypes.TMsgDlgType; Buttons: TMI_MsgBoxTypes.TMsgDlgButtons; ButtonDefault: TMI_MsgBoxTypes.TMsgDlgBtn): TMI_MsgBoxTypes.TModalResult; Virtual; overload;

O método MessageBox recebe 3 parâmetros. Criar um dialogo e retrona as opções escolhidas.

  • Exemplo de uso

    
    If MessageBox('O arquivo '+TMI_DataFile(DatF).nomeArq+' não existe.'+ˆM+
                  ˆM+
                  'Cria o arquivo agora?'
                  ,MtConfirmation,mbYesNoCancel,mbYes)= MrYes
    Then begin
         end;

Public class procedure Abstracts;

  • A classe método Abstracts encerra o programa com um erro de tempo de execução 211.

    • NOTA

      • Ao implementar um tipo de classe abstrato, chame Abstract nesses métodos Override que deve ser substituído em tipos descendentes. Isso garante que qualquer tentativa de usar instâncias do tipo abstrato de classe falhará.

Public Class procedure RegisterError;
 
Public class procedure RegisterType(Var S: TStreamRec);

  • A classe método RegisterType registra o tipo de classe fornecido com os fluxos do Free Vision, criando uma lista de objetos conhecidos. Streams só podem armazenar e retornar esses Tipos de classe.

    • Cada classe registrada precisa de um registro de stream único registro, do tipo TStreamRec.

Public class function LongMul(X, Y: Integer): LongInt;

  • A class function LongMul retorna o valor inteiro longo de valores inteiros X * Y.

Public class function LongDiv(X: LongInt; Y: Integer): Integer;

A classe function LongDiv retorna o valor inteiro do inteiro longo X dividido pelo inteiro Y.

Public class procedure NNewStr(Var PS : ptstring;Const S : AnsiString);

-

Public class function CallPointerLocal(Func: codepointer; Frame: Pointer; Param1: pointer): pointer; inline;
 
Public class PROCEDURE DisposeStr( Var P: ptstring);
 
Public class Function Name_Type_App_MarIcaraiV1:AnsiString;
 
Public class Function Set_IsApp_LCL(aIsApp_LCL:Boolean):Boolean;
 
Public class Procedure PopSItem(Var Items: PSItem);
 
Public class PROCEDURE DISCARD(Var AClass); overload;
 
Public class PROCEDURE DISCARD(Var AClass:TObject); overload;
 
Public class Function SetFlushBuffer_Disk(Const aFlushBuffer_Disk : Boolean): Boolean;
 
Public class Function SetFlushBuffer(Const aFlushBuffer : Boolean): Boolean;
 
Public class Function GetDosTicks:DWord;

  • returns ticks at 18.2 Hz, just like DOS

Public class Function Seg_to_MillSeg(aSegundos:Longint):DWord;

A função Seg_to_MillSeg converte segundos para milisegundos.

  • NOTA

    • 1 Milliseconds = 1/1000 segundos -> 1 segundo = 1000 Milliseconds

Public class Procedure RunError(Error:Word);
 
Public class Procedure Run_Error(Error:Word;Procedimento_que_Executou:AnsiString);
 
Public Class Procedure Alert(aTitle: AnsiString;aMsg:AnsiString);

  • A procedure Alert executa um dialogo com botão OK

Public Class procedure ShowMessage(const aMsg: string);
 
Public Class Function Confirm(aTitle: AnsiString;aPergunta:AnsiString):Boolean;

  • A função Confirm executa um dialogo com os botões OK e Cancel fazendo uma pergunta.

    • RETORNA:

      • True : Se o botão OK foi pŕessionando;

      • False : Se o botão Cancel foi pŕessionando.

Public class function MaxItemStrLen(AItems: PSItem) : integer; Overload;
 
Public class function MaxItemStrLen(PSItems: tString) : integer; Overload;
 
Public class function conststr( i : Longint; Const a : AnsiChar) : AnsiString;
 
Public class function centralizesStr(Const campo : AnsiString; Const tamanho : Integer) : AnsiString;
 
Public class function MaskEdit_to_Mask(const aMaskEdit: AnsiString ): TMask; virtual;
 
Public class function isDateTime(Const aTemplate : AnsiString):Boolean;
 
Public class Function TypeFld(Const aTemplate : tString;Var aSize : SmallWord):AnsiChar; overload;
 
Public class Function TypeFld(Const aTemplate : tString):AnsiChar; overload;
 
Public class Function IStr( Const I : Longint; Const Formato : tString) : tString; Overload;
 
Public class Function IStr( Const I : Longint) : tString; Overload;
 
Public class Function IStr( Const I : tString; Const Formato : tString) : tString; Overload;
 
Public class function StrNum(formato : AnsiString; buffer :Variant; Const Tipo : AnsiChar;Const OkSpc:Boolean) : AnsiString; overload;
 
Public class function StrNum(formato : AnsiString; buffer:Variant; Const Tipo : AnsiChar) : AnsiString; overload;
 
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Boolean) : Boolean; overload;
 
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : AnsiChar) : AnsiChar; overload;
 
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Longint ) : Longint; overload;
 
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : Extended ) : Extended; overload;
 
Public class function IIF(Const Logica : Boolean; Const E1 , E2 : AnsiString ) : AnsiString ; overload;
 
Public class function IIF<T>(const Logica: Boolean; const E1, E2: T): T; static;

A class método IIF avalia uma condição lógica e retorna um dos dois valores com base no resultado da condição.

  • Parâmetros

    • Logica

      • Uma expressão booleana que determina qual valor será retornado.

    • E1

      • O valor a ser retornado se Logica for True.

    • E2

      • O valor a ser retornado se Logica for False.

  • returns

    • Retorna o valor de E1 se Logica for True; caso contrário, retorna o valor de E2.

  • Note

    • Esta função é genérica e pode ser usada com diferentes tipos de dados, desde que E1 e E2 sejam do mesmo tipo.

  • Example

    var
      intResult: Longint;
      strResult: AnsiString;
      boolResult: Boolean;
      charResult: AnsiChar;
      enumResult: TDayOfWeek;  // Supondo que você tenha uma enumeração chamada TDayOfWeek
    begin
      intResult := TObjectsMethods.IIF<Longint>(True, 10, 20);  // Retorna 10
      strResult := TObjectsMethods.IIF<AnsiString>(False, 'Hello', 'World');  // Retorna 'World'
      boolResult := TObjectsMethods.IIF<Boolean>(True, True, False);  // Retorna True
      charResult := TObjectsMethods.IIF<AnsiChar>(False, 'A', 'B');  // Retorna 'B'
      enumResult := TObjectsMethods.IIF<TDayOfWeek>(True, Sunday, Monday);  // Retorna Sunday
    end;

Public class Function SIF(Const Logica : Boolean; Const E1 , E2 : AnsiString ) : AnsiString ;
 
Public class function MinL(Const a,b:Longint):Longint;
 
Public class function MaxL(Const a,b:Longint):Longint;
 
Public class function NumToStr(Const formato : AnsiString;const buffer:Variant; Const Tipo : AnsiChar;Const OkSpc:Boolean):AnsiString;
 
Public class Function InsertCrtlJ(Const StrMsg:tString):tString;
 
Public class procedure Create_Progress1Passo(ATitle : tstring;Obs:tstring ; ATotal : Longint); Virtual;
 
Public class procedure Set_Progress1Passo(aNumber : Longint); Virtual;
 
Public class procedure Destroy_Progress1Passo; Virtual;
 
Public class procedure LogError(const Fmt: String; Args: array of const); overload;
 
Public class procedure LogError(const Msg:AnsiString ); overload;
 
Public class function WideStringToString(const ws: WideString): AnsiString;
 
Public class Function Set_FileModeDenyALLSalvaAnt(Const ModoDoArquivo : Boolean;Var _FileModeDenyALLAnt:Boolean):Boolean;
 
Public Class Function Set_FileModeDenyALL(Const ModoDoArquivo : Boolean):Boolean;
 
Public class Function Sitems_MsgErro() : PSItem;
 
Public class Function Pop_MsgErro:PSItem;

Retire o ultimo string na pilha

Public class function SpcStrD(Const campo : tString; Const Tam : Byte): tString;
 
Public class function CentralizaStr(Const campo : AnsiString; Const tamanho : Integer) : AnsiString;
 
Public class function spc(Const campo:AnsiString;Const tam :Longint):AnsiString;
 
Public class function NumberCharControl(s:AnsiString):Integer;

O método NumberCharControl retorna o número de caracteres de controle da string s

Public class Function StrAlinhado(aStrMsg:tString;Colunas : byte;Const Alinhamento:TAlinhamento):tString;
 
Public class Function StringToSItem( StrMsg:AnsiString; Alinhamento:TAlinhamento):PSItem; virtual; overload;
 
Public class Function StringToSItem( StrMsg:AnsiString ):PSItem; virtual; overload;
 
Public class function SItemsLen(S: PSItem) : SmallInt;
 
Public class Function SItemToString(Items: PSItem):AnsiString;
 
Public class procedure WriteSItems(var S: TMiStringList;const Items: PSItem);

A classe procedure WriteSItems retorna um TStringList com a lista passado por items

  • NOTA

    • S : Deve ser passado não inicializado, ouseja deve ser NIL.

Public class Function PSItem_ListaDeMsgErro:PSItem; virtual;
 
Public class Procedure MessageError; virtual;

O método MessageError imprime a sequência de mesagems de erro da pilha de mensagens.

Public class Function String_ListaDeMsgErro(Separador:String):AnsiString; Overload;

O Método String_ListaDeMsgErro retorna uma lista de erros da pilha de erros;

Public class Procedure Dispose_ListaDeMsgErro; virtual;

A procedure Dispose_ListaDeMsgErro esvazia a pilha de mensagens de error caso as mensagen não tenhão sido tratadas antes de encerrar TMI_Application.

Public class Function UpperCase(str:AnsiString):AnsiString;
 
Public class function Lowcase(str:AnsiString):AnsiString;
 
Public class function AnsiString_to_USASCII(const pText: string): string;

A função AnsiString_to_USASCII remove os acentos do texto pText

Public class function RemoveAccents(const str: String ): String;

A class function RemoveAccents converte caracteres acentuados para caracteres não acentuados

  • POR QUE?

    • Preciso que as chaves dos índices não tenha acentos para evitar confusão nas pesquisas.

Public class Function String_Asc_GUI_to_Asc_Ingles(Const S: String): String;
 
Public class Function SGI(Const S: String): String;
 
Public class Function String_Asc_GUI_to_Asc_HTML(Const S: String): String;
 
Public class Function SGH(Const S: String): String;
 
Public class Procedure Show_GetEnv_System;
 
Public class Function FGetMem(Var Buff;Const TamBuff: Word) : Boolean;
 
Public class Procedure FFreeMem(Var Buff;Const TamBuff: Word) ;
 
Public class Function CGetMem(Const BuffOriginal:Pointer ;Const TamBuff: Word):Pointer;

Retorna um ponteiro para a memória alocada e este ponteiro aponta para uma copia dos dados passado por BuffOriginal

Public class function isfileopen(var f:file):boolean ; overload;
 
Public class function isfileopen(var f:text):boolean ; overload;
 
Public class Function CloseLst:SmallInt;
 
Public class Procedure RedirecionaParaImpressora;
 
Public class Procedure RedirecionaRelatorio;
 
Public class Function ChangeSubStr(aSubStrOld : AnsiString; aSubStrNew : AnsiString; S: AnsiString ):AnsiString;

Retorna S com o tString Trocado

Public class Function Alias_To_Name(AAlias : AnsiString):AnsiString;
 
Public class function CreateGUID():TString;

A class método CreateGUID cria um novo valor de GUID (Globally Unique Identifier).

  • RETORNA

    • GUID : Novo GUID se sucesso ou string vazia se fracasso.

Public class Function SetExecAsync(aExecAsync:Byte):Byte;
 
Public class Function GetExecAsync():Byte;
 
Public class function ShellScript(aCommand:String): String;

O método ShellScript executa o shell do sistema operacional e retorna o Buffer da Tela

Pascal

           program Project1;
             uses
               mi.rtl.objectss;

             var
               s : string;
           begin
             s := TObjectss.ShellScript('ls *.res');
             if s <>''
             then WriteLn(s);
           end.

Public class function ShellExecute(Const lpOperation, FileName, Params, DefaultDir: AnsiString; ShowCmd: Integer): THandle; Overload;
 
Public class function ShellExecute(const FileName, Params, DefaultDir: AnsiString;ShowCmd: Integer): THandle; Overload;
 
Public class function ShellExecute(const FileName, Params: AnsiString): THandle; Overload;
 
Public class Function GetIpPub:String;

A classe function GetIpPub retorna o ip publico da máquina local

Public class function StrToInt(aStr:String):Int64;
 
Public class Function BooleanToStr(Const FieldData:Boolean):AnsiString;
 
Public class function DelSpcED(campo : Ansistring): AnsiString;
 
Public class function DeleteChars(campo: Ansistring;CharInvalid:TAnsiCharSet): AnsiString;

O método DeleteChars exclui de campo os caracteres contidos em CharInvalid

  • Exemplo de uso

    pascal
    
               //inclui um conjunto de caracateres a tString
                 Var
                   s : String;
               Begin
                 S := '"Paulo.Sergio Idade: 1958"';
                 DelChars(S,['"']);
                 Resultado: Paulo.Sergio Idade: 1958
               end;

Public class function Delspace(campo : Ansistring):AnsiString;
 
Public class function GetNameValid(aName:AnsiString):AnsiString;
 
Public class function IsNumberReal(const aTemplate: ShortString): Boolean;
 
Public class function IsNumberInteger(const aTemplate: ShortString): Boolean;
 
Public class Function IsNumber(Const aTemplate : ShortString):Boolean;
 
Public class Function IsBoolean(Const aTemplate : ShortString):Boolean;
 
Public class Function IsData(Const aTemplate : ShortString):Boolean;
 
Public class Function IsHora(Const aTemplate : ShortString):Boolean;
 
Public procedure HandleEvent(var Event: TEvent); Virtual;
 
Public procedure ClearEvent(var Event: TEvent); Virtual;
 
Public class Function Change_AnsiChar(campo : AnsiString; Const AnsiChar_Font,AnsiChar_Dest : AnsiChar):AnsiString;
 
Public class Function DeleteMask(S:AnsiString;ValidSet: AnsiCharSet):AnsiString; overload;
 
Public class function DeleteMask(S:AnsiString;aMask:TString): AnsiString; overload;
 
Public class function AddMask(S: ShortString;aMask:ShortString): AnsiString;
 
Public class function CreateDB_or_DropDB(aConnectorType : TConnectorType; aHostname, aUserName, aPassword, aDataBaseName : String; okCreateDB:Boolean ):string;

A função CreateDB_or_DropDB é usada para criar ou apagar um banco de dados

  • Banco de dados possíveis:

    • PostreSQL;

    • SqlLite;

  • Retorna

    • True : Conseguiu criar o banco de dados;

    • False : Error na ação

      • Error possiveis:

        • Banco de dados já existe quando se quer criar;

        • Banco de dados não existe quando se quer apagar;

        • Banco de dados usado por outro usuário.

  • EXEMPLO

    
    // Cria banco de dados maricarai no postgresSql
    Procedure TForm1.Button2sqlPQConectionClick ( Sender : TObject ) ;
      var
        s : String;
    begin
      s := CreateDB_or_DropDB(PostgresSQL,'127.0.0.1',
                                        'postgres',
                                        'masterkey',
                                        'maricarai',
                                        true);
      if s = ''
      then ShowMessage('Banco de dados maricarai foi criado no postgresSql')
      else ShowMessage(s);
    End;
    
    // Apaga banco de dados maricarai no SqLite3
    Procedure TForm1.Button2sqlPQConectionClick ( Sender : TObject ) ;
      var
        s : String;
    begin
      s:= CreateDB_or_DropDB(PostgresSQL,'127.0.0.1',
                                        'SqLite3',
                                        'masterkey',
                                        'maricarai',
                                        false);
      if s = ''
      then ShowMessage('Banco de dados maricarai foi apagado SqLite3')
      else ShowMessage(s);
    End;

Public class function StrToStrNumberForProcVal(S: AnsiString): AnsiString;

O método StrToStrNumberForProcVal converte um string com mascara e ponto decimar default em string com ponto decimal='.'.

  • Motivo de sua existência.

    • A função system.val e system.str não reconhecem o registro DefaultFormatSettings.

Public class function CheckRanger(S : AnsiString; aHigh, aLow: Int64; out aErr:Integer): Int64;

o classe método CheckRanger checa se s está entre aHigh e aLow retorna zero se houver erro e em aErr o código do erro.

Public class function IntValid(S : AnsiString; TypeCode:AnsiChar):Boolean;

O método IntValid retorna TRUE se o parâmetro S for número inteiro ou FALSE caso contrário.

Public class Procedure ShowHtml(URL:string); virtual;

O método ShowHtml Executa o browser padrão do sistema operacional.

Protected Function GetHelpCtx_StrCurrentModule:AnsiString; virtual;
 
Protected Function GetHelpCtx_StrCurrentCommand: AnsiString; Virtual;
 
Protected Function GetHelpCtx_StrCurrentCommand_Opcao: AnsiString; virtual;
 
Public Function TabIndex:Longint; Virtual;

O método TabIndex retorna o número de ordem do controlo no grupo.

Protected function CreateHTML: AnsiString; Overload; Virtual;
 
Protected Function GetAcao():AnsiString; Virtual;
 
Protected function GetHelpCtx_Path: AnsiString; Virtual;
 
Protected Function GetHelpCtx_StrCommand: AnsiString; Virtual;
 
Protected Function GetHelpCtx_StrCurrentCommand_Topic: AnsiString; virtual;
 
Protected Function GetHelpCtx_StrCommand_Topic: AnsiString; virtual;
 
Protected Function GetHelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run; virtual;
 
Protected Procedure SetHelpCtx_StrCurrentCommand_Topic_Content_Run(wHelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run); virtual;
 
Protected Function Get_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File:Boolean; Virtual;
 
Protected procedure Set_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File(a_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File: Boolean); Virtual;
 
Protected Function GetHelpCtx_StrCurrentCommand_Topic_Content: AnsiString; virtual;
 
Protected Procedure SetHelpCtx_StrCurrentCommand_Topic_Content(wHelpCtx_StrCurrentCommand_Topic_Content:AnsiString); virtual;
 
Public function GetHelpCtx_Doc_HTML: AnsiString; Virtual;
 
Public class function SplitString(aInputString:string; aDelimiter: Char):TStringArray;

A classe método SplitString recebe em aInputString uma string separada pelo delimitador informado em aDelimiter e retorna um arrey de strings

Public class function HTMLToTColor(const HTML: TString): Integer;

O Método HTMLToTColor converte código HTML em cor da LCL

  • Exemplo de usado da função

    
    unit Unit1;
    
      interface
    
      uses
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
        Dialogs, ExtCtrls, StdCtrls;
    
      type
        TForm1 = class(TForm)
          Edit1: TEdit;
          Button1: TButton;
          Shape1: TShape;
          procedure Button1Click(Sender: TObject);
        private
    
        public
    
        end;
    
      var
        Form1: TForm1;
    
    implementation
    
      $R *.dfm
    
    
      function HTMLToTColor(const HTML: String): Integer;
      var
        Offset: Integer;
      begin
        try
          // check for leading '#'
          if Copy(HTML, 1, 1) = '#' then
            Offset := 1
          else
            Offset := 0;
          // convert hexa-decimal values to RGB
          Result :=
            Integer(StrToInt('$' + Copy(HTML, Offset + 1, 2))) +
            Integer(StrToInt('$' + Copy(HTML, Offset + 3, 2))) shl 8 +
            Integer(StrToInt('$' + Copy(HTML, Offset + 5, 2))) shl 16;
        except
          // try for color names
      //    Result := TranslateColorName(LowerCase(HTML));
        end;
      end;
    
    
    
      function RGBToColor(R,G,B:Byte): TColor;
      begin
        Result:= B Shl 16 Or  //Blue
                 G Shl 8  Or  //Verde
                 R;           //Vermelho
      end;
    
      procedure TForm1.Button1Click(Sender: TObject);
      begin
      //  Shape1.Brush.Color:= rgbtocolor(107,183,239);
        Shape1.Brush.Color:= HTMLToTColor(Edit1.Text);
    
        Shape1.Invalidate;
      end;

Public Class function IsEmptyOrNull(const aValue: Variant): Boolean;

O método IsEmptyOrNull retorna true se avalue for vazio ou null

Public class procedure UnlistPublishedProperty(ComponentClass:TPersistentClass; const PropertyName:String);

O método UnlistPublishedProperty usado para ocultar a propriedade de um componente.

  • Criei esse método na minha classe base com objetivo de tornar a propriedade de uma classe invisível.

  • O mesmo deve se usado ao registrar um componente;

    • Exemplo

      procedure Register;
       begin
           RegisterComponents('Mi.Rtl',[TMi_SQLQuery]);
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'Options');
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'FileName');
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'DataSource');
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'UniDirecional');
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'Tag');
           Tmi_rtl.UnlistPublishedProperty(TMi_SQLQuery,'PacketRecords');
      end;

  • Se essas propriedades forem alteradas pelo usuário do componente certamente o componente dará problema, por isso precisei remove-lo da lista de propriedade para evitar problema.

  • Para que não de problema, no constructor create da classe seto o que preciso, porém se essa propriedade fossem visíveis o usuário perderia muito tempo para entender porque o que ele informou o que ele queria e o comportamento do componente não mudaria.

Public class Procedure str(v : variant; var s : String);
 
Public class Procedure Print_info_compile;
 
Public class function VarRecArrayToStr(const Args: array of const): string;

O classe método converte um array of const em um string separado por virgula.

  • NOTAS

    • Iteração sobre o array: A função VarRecArrayToStr percorre cada elemento do array Args e converte-o em uma string usando um case para identificar o tipo de dado.

    • Construção da string de resultado: Para cada elemento do array, a string correspondente é concatenada ao Result. Entre os elementos, é adicionada uma vírgula e um espaço.

  • EXMPLO DE USO

    
    var
      S: string;
    begin
      S := VarRecArrayToStr([1, 'Ola Mundo', 3.14, True]);
      WriteLn(S);  // Saída: 1, Hello, 3.14, True
    end.

Public class procedure JsonToDataSet(const JSONString: string; var aJSONDataSet: TJSONDataSet );

O método JsonToDataSet Salva o array JSONString para aJSONDataSet.rows

Public Class Function DataSetToJson(Const aJSONDataSet: TJSONDataSet):String;
 
Public class function JSONToVariantArray(JSONData: TJSONData): Variant;

A classe método JSONToVariantArray converter um jsonData em Variant

  • Exemplo de uso

    
    program test;
    
      uses
        SysUtils, fpjson, jsonparser, Variants;
    
      var
        JSONStr: string;
        JSONData: TJSONData;
        JSONVariantArray: Variant;
        i: Integer;
    begin
      // Exemplo de string JSON contendo um array
      JSONStr := '[1, "Texto", true, null,3.56 ]';
    
      try
        // Parseando o JSON
        JSONData := GetJSON(JSONStr);
    
        // Convertendo JSON para array de Variant
        JSONVariantArray := JSONToVariantArray(JSONData);
    
        // Exibindo os valores convertidos
        for i := VarArrayLowBound(JSONVariantArray, 1) to VarArrayHighBound(JSONVariantArray, 1) do
          WriteLn('JSONVariantArray[', i, '] = ', JSONVariantArray[i]);
      finally
        JSONData.Free;
      end;
    end.

Public class function ArrayToVariant(aValues: array of string):Variant;

A classe método ArrayToVariant recebe em a value um array e retorna um array de string

  • **EXEMPLO DE USO

    
    program ArrayToVariantExample;
      uses
        Variants, SysUtils;
    
      var
        aKeyValues: array of string;
        vKeyValues: Variant;
        i: Integer;
    begin
      // Inicializando o array
      SetLength(aKeyValues, 3);
      aKeyValues[0] := 'Valor1';
      aKeyValues[1] := 'Valor2';
      aKeyValues[2] := 'Valor3';
    
      vKeyValues := ArrayToVariant(aKeyValues);
    
      // Exemplo de acesso aos valores do Variant
      for i := VarArrayLowBound(vKeyValues, 1) to VarArrayHighBound(vKeyValues, 1) do
        WriteLn('vKeyValues[', i, '] = ', vKeyValues[i]);
    
      // Tentativa de acessar os elementos do array Variant para verificar
      for i := 0 to VarArrayHighBound(vKeyValues, 1) do
      begin
        // Atribua cada elemento a uma variável string (s) para teste
        WriteLn('Elemento ', i, ': ', VarToStr(vKeyValues[i])); // Exibe os elementos no console para verificação
      end;
    end.

Public class function getFieldsKeys(aQueryFields: TStrings;out Values: TArray<string>): AnsiString; overload;

A classe método getFieldsKeys percorre a lista de strings fornecida em aQueryFields, que normalmente contém pares chave-valor no formato chave=valor, e separa as chaves e os valores.

  • As chaves são concatenadas em uma única string, separadas por ponto e vírgula (;), e retornadas como resultado da função. Os valores correspondentes são armazenados no array Values, que é passado como um parâmetro de saída.

  • Parâmetros

    • param(aQueryFields)

      • Uma lista de strings contendo pares chave-valor no formato chave=valor.)

    • param(Values)

      • Um array de strings que conterá os valores extraídos dos pares chave=valor.)

  • Returns()

    • A string contendo todas as chaves extraídas dos pares, separadas por ponto e vírgula.)

  • Por que foi criado

    • O método locate precisa de uma lista de nome de campos e uma array de variantes

  • Exemplo de uso:

    
    uses
      SysUtils, Classes;
    
    procedure TestGetFieldsKeys;
    var
      QueryFields: TStringList;
      Values: array of string;  // Array dinâmico de strings
      Keys: AnsiString;
      I: Integer;
    begin
      QueryFields := TStringList.Create;
      try
        // Adicione pares chave=valor
        QueryFields.Add('key1=value1');
        QueryFields.Add('key2=value2');
        QueryFields.Add('key3=value3');
    
        // Chame a função passando a lista e o array dinâmico.
        Keys := TObjectsMethods.getFieldsKeys(QueryFields, Values);
    
        // Exibir as chaves extraídas
        Writeln('Keys: ', Keys);
    
        // Exibir os valores extraídos
        for I := Low(Values) to High(Values) do
        begin
          Writeln('Value ', I, ': ', Values[I]);
        end;
      finally
        QueryFields.Free;
      end;
    end;
    
    begin
      TestGetFieldsKeys;
    end.

Public class function URLEncode(AStr: Ansistring): UTF8String;

A classe método URLEncode Codifica uma string para ser usada em uma URL

Parâmetros:

  • AStr: A string que será codificada, do tipo Ansistring.

Retorno:

  • Retorna a string codificada no formato UTF8String, onde caracteres especiais são convertidos para sua representação hexadecimal (%XX) conforme o padrão de codificação de URLs.

Descrição:

  • Este método percorre a string fornecida e codifica os caracteres que não são seguros para URLs (como espaços e caracteres especiais). A codificação usa o formato hexadecimal, precedido pelo símbolo %. Caracteres dentro da faixa ASCII imprimível (32-126) são mantidos, exceto para [' ', '&', '=', '?', '#', '%'], que são codificados.

  • A função converte a string de entrada para UTF-8 antes de realizar a codificação, garantindo que seja compatível com a codificação de URL padrão.

Exceções:

  • Não lança exceções diretamente, mas pode haver problemas se uma string não for adequadamente codificada para UTF-8.

Exemplo:

var
  EncodedStr: UTF8String;
begin
  EncodedStr := TObjectsMethods.URLEncode('name=John Doe & age=30');
  // EncodedStr resultará em "name=John%20Doe%20%26%20age%3D30"
end;

Public class function JSONObjectToQueryString(const Params: TJSONObject): string;

O método JSONObjectToQueryString converte um objeto JSON em uma string de query para URLs

Parâmetros:

  • Params: O objeto JSON do tipo TJSONObject contendo os parâmetros a serem convertidos.

Retorno:

  • Retorna uma string formatada como uma query de URL, onde cada chave-valor do JSON é convertido no formato chave=valor, e pares múltiplos são concatenados usando &.

Descrição: Este método percorre cada par chave-valor de um objeto JSON e o converte para uma string de query. Diferentes tipos de valores JSON são tratados da seguinte forma:

  • jtNull: A chave é incluída sem valor.

  • jtString: A chave e o valor são codificados para URL.

  • jtNumber: O valor é convertido para string com suporte a números.

  • jtBoolean: O valor booleano é convertido para 'true' ou 'false'.

  • jtArray: Os valores do array são concatenados por vírgulas, como valor1,valor2.

Exceções:

  • Uma exceção é lançada se um tipo de valor JSON não suportado for encontrado.

Exemplo:

var
  JSONObject: TJSONObject;
  QueryString: string;
begin
  JSONObject := TJSONObject.Create;
  JSONObject.Add('name', 'John');
  JSONObject.Add('age', 30);
  JSONObject.Add('active', True);

  QueryString := TObjectsMethods.JSONObjectToQueryString(JSONObject);
  // QueryString resultará em "name=John&age=30&active=true"
end;

Public Class function ConvertCSVToJSONArray(const CSV: string): TJSONArray;

O método ConvertCSVToJSONArray usado para converter strings separadas por vírgulas em um array JSON.

  • Descrição

    • Este método de classe converte uma string no formato CSV (Comma-Separated Values) em um array JSON (TJSONArray). A string CSV é dividida usando a vírgula como delimitador, e cada item resultante é adicionado ao array JSON. Espaços extras ao redor dos valores são removidos.

  • Parâmetros

    • CSV: string

      • A string no formato CSV que será convertida em um array JSON.

  • Retorno

    • TJSONArray

      • Um array JSON contendo os valores extraídos da string CSV.

  • Fluxo de Execução

    1. Cria um novo objeto TJSONArray e um TStringList.

    2. Configura o TStringList para usar a vírgula como delimitador e desativa o tratamento de espaços como parte dos valores.

    3. Divide a string CSV em uma lista de valores.

    4. Itera sobre a lista e adiciona cada item ao array JSON, removendo espaços extras.

    5. Libera a memória alocada para o TStringList.

  • Exceções

    • Não há tratamento específico de exceções implementado neste método.

  • Ver Também

    • TJSONArray

    • TStringList

    • DelimitedText

Public class Procedure GetQueryFieldsLocate(var aRequest: TRequest; out aKeyFields: string; Out aKeyValues: Variant; Out aOptions : TLocateOptions ); Overload;

A classe método GetQueryFieldsLocate extrae de aRequest.QueryFields os parâmetros abaixo:

  • PARAMETROS

    • aKeyFields: string;

      • Espera uma lista de nome dos campos separados por virgula.

    • aKeyValues: Variant;

      • Espera uma lista de valores dos campos separados por virgula.

    • aOptions : TLocateOptions

      • Espera uma lista de opções separados por vírgula onde as opções podem ser: 'loCaseInsensitive','loPartialKey'

        • Obs:

          • Pode ser um ou outros ou ambos.

          • São parâmetros espardos no função .TDataSet.Locate

Public Class function LocateParamsToJson(KeyFields: string; KeyValues: Variant; Options: TLocateOptions): TJSONObject;

O método LocateParamsToJson converte os parâmetros de uma chamada TDataSet.Locate() em TJSonObject para ser enviado para o servidor para pesquisar o registro.

  • EXEMPLO

    
    Procedure LocateParamsToJsonTest;
    var
      JsonLocateParams: TJSONObject;
      s:string;
    begin
      JsonLocateParams := LocateParamsToJson('Company;Contact;Phone',
        VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
      try
        s := JsonLocateParams.AsJSON;
        writeln(JsonLocateParams.AsJSON);
      finally
        JsonLocateParams.Free;
      end;
    end;

Public class procedure GetQueryFieldsEventName(var aRequest: TRequest; out aCurrentFieldName : String; out aCurrentFieldValue: String; out aEventName: String);

O método GetQueryFieldsEventName retorna o nome do corrente campo e o nome do evento a ser disparado no método que o chamou.

  • Descrição

    • O método GetQueryFieldsEventName extrai os parâmetros CurrentFieldName, CurrentFieldValue e EventName da query string de uma requisição HTTP, decodificando os valores URL-encoded e assegurando que os parâmetros não estejam vazios. Se qualquer um desses parâmetros estiver ausente ou vazio, uma exceção será levantada exceto no campo aCurrentFieldValue.

Public Class function FieldsEventNameParamsToJson(aKeyFields: string; aKeyValues: Variant; aOptions: TLocateOptions; aCurrentFieldName : String; aCurrentFieldValue: String; aEventName: String ): TJSONObject;

A classe método name cria um objeto JSON contendo os parâmetros de localização de registros, juntamente com o nome e valor do campo atual e o nome de um evento. Esse método facilita a construção de uma estrutura JSON que pode ser usada para comunicação em processos que envolvem localização de registros e manipulação de eventos associados a campos.

Public Class function ValidateAndNormalizeURL(const BaseURL, Action, QueryString: string): string;

O método ValidateAndNormalizeURL tem como objetivo construir e validar uma URL a partir de três partes: a URL base (BaseURL), uma ação (Action), e uma string de consulta (QueryString). Ela garante que a junção dessas partes ocorra de maneira correta, removendo duplicações de barras (/) e verificando a formatação da string de consulta.

  • Parâmetros

    • BaseURL: A URL base, geralmente fornecida pelo método GetURL(). Pode ou não terminar com uma barra (/).

    • Action: O caminho ou ação que será anexado à BaseURL. Pode ou não começar com uma barra (/).

    • QueryString: A string de consulta que será anexada à URL final, representando os parâmetros da requisição. Se fornecida, deve começar com um ponto de interrogação (?), o qual será verificado pela função.

  • Retorno

    • A função retorna uma string contendo a URL completa e validada, pronta para ser utilizada em requisições HTTP.

  • Exemplo de Uso

    var
      CompleteURL: string;
    begin
      CompleteURL := ValidateAndNormalizeURL('http://example.com', '/api/resource', '?id=123&name=test');
      // Resultado: http://example.com/api/resource?id=123&name=test
    end;

Public class procedure ParseServerResponse(const AResponse: string; out KeyFields: string; out KeyValues: Variant);

O método ParseServerResponse faz o parsing de uma resposta JSON recebida e extrai os campos de chave e seus respectivos valores. O campo keyFields é uma string que contém os nomes dos campos separados por vírgula, e o campo keyValues pode ser um array de valores ou um único valor.

  • Parâmetros -AResponse:

    • String contendo o JSON da resposta do servidor.

    • KeyFields:

      • String de saída que armazenará os campos de chave extraídos do JSON.

    • KeyValues: Variável de saída que armazenará os valores dos campos de chave. Pode ser um array de variantes ou um valor único.

  • Fluxo de Execução

    1. Inicializa as variáveis KeyFields e KeyValues com valores padrão ('' e Null, respectivamente).

    2. Realiza o parsing do JSON contido em AResponse.

    3. Extrai o valor de keyFields, que deve ser uma string no JSON.

    4. Verifica se keyValues é um array:

      • Se for, cria um array de variantes e itera pelos itens do array, armazenando-os em KeyValues.

      • Se não for, KeyValues recebe um único valor extraído do JSON.

    5. Libera o objeto JSON ao final da execução.

    6. Caso ocorra um erro durante o parsing, o método captura a exceção e exibe uma mensagem de erro.

  • Exceções

    • E: Exception:

      • Exceção capturada se ocorrer algum erro durante o processamento do JSON. A mensagem de erro é exibida no console.

  • Ver Também

    • TJSONObject

    • TJSONArray

    • GetJSON

    • VarArrayCreate

Propriedades

Published property Alias : AnsiString Read GetAlias Write SetAlias;
 
Public property HelpCtx_StrCurrentModule: AnsiString read GetHelpCtx_StrCurrentModule write _HelpCtx_StrCurrentModule;

A propriedade HelpCtx_StrCurrentModule contém o nome do corrente módudo do projeto

  • NOTAS

    • Ao criar o objeto inicializa com Db_Global.StrCurrentModule

Public property HelpCtx_StrCurrentCommand: AnsiString read GetHelpCtx_StrCurrentCommand write _HelpCtx_StrCurrentCommand;
 
Public property HelpCtx_StrCurrentCommand_Opcao: AnsiString read GetHelpCtx_StrCurrentCommand_Opcao write _HelpCtx_StrCurrentCommand_Opcao;
 
Public property HelpCtx_StrCommand: AnsiString read GetHelpCtx_StrCommand write _HelpCtx_StrCommand;

A propriedade HelpCtx_StrCommand retorna o nome do comando que está utilizando esta classe

Public property HelpCtx_StrCurrentCommand_Topic: AnsiString read GetHelpCtx_StrCurrentCommand_Topic write _HelpCtx_StrCurrentCommand_Topic;

A propriedade HelpCtx_StrCurrentCommand_Topic retorna o nome do tópico corrente do comando que está utilizando esta classe

  • NOTAS

    • Ao criar o objeto inicializa com Db_Global.StrCurrentCommand_topic

Public property HelpCtx_StrCommand_Topic: AnsiString read GetHelpCtx_StrCommand_Topic write _HelpCtx_StrCommand_Topic;

A propriedade HelpCtx_StrCommand_Topic retorna o nome do tópico corrente do comando que está utilizando esta classe

  • NOTAS

    • Ao criar o objeto deve ser inicicializado pelo Alias da classe

Public property HelpCtx_StrCurrentCommand_Topic_Content_Run: TEnum_HelpCtx_StrCurrentCommand_Topic_Content_run read GetHelpCtx_StrCurrentCommand_Topic_Content_Run write SetHelpCtx_StrCurrentCommand_Topic_Content_Run;

A propriedade HelpCtx_StrCurrentCommand_Topic_Content_Run retorna o nome StrCurrentCommand_topic_Content_run do comando que está utilizando esta classe

  • NOTAS

    • Ao criar o objeto inicializa com Db_Global.StrCurrentCommand_topic_Content_run;

Public property Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File: Boolean read _Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File write Set_Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File;

A propriedade Ok_HelpCtx_StrCurrentCommand_Topic_Content_run_Parameter_File é usado para indica a propriedade HelpCtx_StrCurrentCommand_Topic_Content_Run que existe documento referente a visão corrente. Ou seja help sencível ao contexto.

Public property HelpCtx_StrCurrentCommand_Topic_Content: AnsiString read GetHelpCtx_StrCurrentCommand_Topic_Content write SetHelpCtx_StrCurrentCommand_Topic_Content;

A propriedade HelpCtx_StrCurrentCommand_Topic_Content contém o conteúdo do campo no qual será criado um arquivo .html

  • NOTAS

    • Ao criar o objeto inicializa com Db_Global.StrCurrentCommand_topic_Content;


Gerado por PasDoc 0.16.0.