Unit mi_rtl_ui_dmxscroller_form

Descrição

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..

Uses

Visão Geral

Classes, Interfaces, Objetos e Registros

Nome Descrição
Classe TMi_rtl_ui_Form_abstract  
Classe _TDmxScroller_Form_Atributos  
Classe _TDmxScroller_Form  
Classe TDmxScroller_Form  

Funções e Procedimentos

procedure Register;

Tipos

TMsgDlgType = TMI_MsgBoxTypes.TMsgDlgType;
TMsgDlgBtn = TMI_MsgBoxTypes.TMsgDlgBtn;
TMsgDlgButtons = TMI_MsgBoxTypes.TMsgDlgButtons;
TModalResult = TMI_MsgBoxTypes.TModalResult;
TArray_MsgDlgBtn = TMI_MsgBoxTypes.TArray_MsgDlgBtn;
TPanel_Lista_de_Botoes = TMI_MsgBoxTypes.TPanel_Lista_de_Botoes;
TOnGetTemplate = mi_rtl_ui_Dmxscroller.TOnGetTemplate;
TOnAddTemplate = mi_rtl_ui_Dmxscroller.TOnAddTemplate;
TOnEnter = mi_rtl_ui_Dmxscroller.TOnEnter;
TOnExit = mi_rtl_ui_Dmxscroller.TOnExit;
TOnNewRecord = mi_rtl_ui_Dmxscroller.TOnNewRecord;
TOnCloseQuery = mi_rtl_ui_Dmxscroller.TOnCloseQuery;
TOnEnterField = mi_rtl_ui_Dmxscroller.TOnEnterField;
TOnExitField = mi_rtl_ui_Dmxscroller.TOnExitField;
TOnCalcField = mi_rtl_ui_Dmxscroller.TOnCalcField;
TOnChangeField = mi_rtl_ui_Dmxscroller.TOnChangeField;
TOnBeforeInsert = mi_rtl_ui_Dmxscroller.TOnBeforeInsert;
TOnAfterInsert = mi_rtl_ui_Dmxscroller.TOnAfterInsert;
TOnBeforeUpdate = mi_rtl_ui_Dmxscroller.TOnBeforeUpdate;
TOnAfterUpdate = mi_rtl_ui_Dmxscroller.TOnAfterUpdate;
TOnBeforeDelete = mi_rtl_ui_Dmxscroller.TOnBeforeDelete;
TOnAfterDelete = mi_rtl_ui_Dmxscroller.TOnAfterDelete;
TOnCalcFields = mi_rtl_ui_Dmxscroller.TOnCalcFields;
TDmxFieldRec = mi_rtl_ui_Dmxscroller.TDmxFieldRec;
pDmxFieldRec = mi_rtl_ui_Dmxscroller.pDmxFieldRec;
SmallWord = TUiDmxScroller.SmallWord;

Constantes

MaxBufLength = $ff00;
mbOK = TMI_MsgBoxTypes.mbOK;
mrOK = TMI_MsgBoxTypes.mrOK;
mbCancel = TMI_MsgBoxTypes.mbCancel ;
mrCancel = TMI_MsgBoxTypes.mrCancel;
mbAbort = TMI_MsgBoxTypes.mbAbort;
mrAbort = TMI_MsgBoxTypes.mrAbort;
mrIgnore = TMI_MsgBoxTypes.mrIgnore;
mbYes = TMI_MsgBoxTypes.mbYes;
mrYes = TMI_MsgBoxTypes.mrYes;
mbNo = TMI_MsgBoxTypes.mbNo;
mrNo = TMI_MsgBoxTypes.mrNo;
mbClose = TMI_MsgBoxTypes.mbClose;
mrClose = TMI_MsgBoxTypes.mrClose;
mbAll = TMI_MsgBoxTypes.mbAll;
mrAll = TMI_MsgBoxTypes.mrAll;
mbNoToAll = TMI_MsgBoxTypes.mbNoToAll;
mrNoToAll = TMI_MsgBoxTypes.mrNoToAll;
mbYesToAll = TMI_MsgBoxTypes.mbYesToAll;
mrYesToAll = TMI_MsgBoxTypes.mrYesToAll;
mrNone = TMI_MsgBoxTypes.mrNone;
mrLast = TMI_MsgBoxTypes.mrLast ;
mbRetry = TMI_MsgBoxTypes.mbRetry;
mrRetry = TMI_MsgBoxTypes.mrRetry;
mbIgnore = TMI_MsgBoxTypes.mbIgnore ;
mbHelp = TMI_MsgBoxTypes.mbHelp;
accDelimiter = TConsts.accDelimiter ;
accHidden = TConsts.accHidden ;
AccNormal = TConsts.AccNormal;
accReadOnly = TConsts.accReadOnly ;
accSkip = TConsts.accSkip ;
CharHint = TConsts.CharHint;
CharHintOnde = TConsts.CharHintOnde;
CharHintPorque = TConsts.CharHintPorque;
FldDateTime = TConsts.FldDateTime ;
fld_LHora = TConsts.fld_LHora ;
fldAnsiChar = TConsts.fldAnsiChar ;
fldAnsiChar_LowCase = TConsts.fldAnsiChar_LowCase;
fldAnsiCharNUM = TConsts.fldAnsiCharNUM ;
fldAnsiCharVAL = TConsts.fldAnsiCharVAL ;
fldAPPEND = TConsts.fldAPPEND ;
fldBLOb = TConsts.fldBLOb ;
fldBYTE = TConsts.fldBYTE ;
fldBoolean = TConsts.fldBoolean;
fldCONTRACTION = TConsts.fldCONTRACTION ;
fldENum = TConsts.fldENUM ;
fldENum_db = TConsts.fldENum_db ;
CharExecAction = TConsts.CharExecAction ;
fldExtended = TConsts.fldExtended ;
CharFieldName = TConsts.CharFieldName ;
ChFN = TConsts.ChFN ;
fldHexValue = TConsts.fldHexValue ;
fldLHora = TConsts.fldLHora ;
fldLONGINT = TConsts.fldLONGINT ;
FldMemo = TConsts.FldMemo ;
FldOperador = TConsts.FldOperador ;
FldRadioButton = TConsts.FldRadioButton ;
fldReal4 = TConsts.fldReal4 ;
fldReal4P = TConsts.fldReal4P ;
fldReal4Positivo = TConsts.fldReal4Positivo ;
fldReal4PPositivo = TConsts.fldReal4PPositivo ;
fldRealNum = TConsts.fldRealNum ;
fldRealNum_Positivo = TConsts.fldRealNum_Positivo;
FldSData = TConsts.FldSData ;
FldSHora = TConsts.FldSHora ;
fldSHORTINT = TConsts.fldSHORTINT ;
fldSItems = TConsts.fldSItems ;
fldSmallInt = TConsts.fldSmallInt ;
fldSmallWORD = TConsts.fldSmallWORD ;
fldSTR = TConsts.fldSTR ;
fldstr_Lowcase = TConsts.fldstr_Lowcase;
fldSTRNUM = TConsts.fldSTRNUM ;
CharUpperlimit = TConsts.CharUpperlimit ;
fldZEROMOD = TConsts.fldZEROMOD ;
CharShowPassword = TConsts.CharShowPassword ;
CharShowPasswordChar = TConsts.CharShowPasswordChar ;
TypeDate = TConsts.TypeDate ;
_TypeDate = TConsts._TypeDate ;
TypeHora = TConsts.TypeHora ;
TypeMemo = TConsts.TypeMemo ;

Descrição

Funções e Procedimentos

procedure Register;
 

Tipos

TMsgDlgType = TMI_MsgBoxTypes.TMsgDlgType;
 
TMsgDlgBtn = TMI_MsgBoxTypes.TMsgDlgBtn;
 
TMsgDlgButtons = TMI_MsgBoxTypes.TMsgDlgButtons;
 
TModalResult = TMI_MsgBoxTypes.TModalResult;
 
TArray_MsgDlgBtn = TMI_MsgBoxTypes.TArray_MsgDlgBtn;
 
TPanel_Lista_de_Botoes = TMI_MsgBoxTypes.TPanel_Lista_de_Botoes;
 
TOnGetTemplate = mi_rtl_ui_Dmxscroller.TOnGetTemplate;

Usado para criar modelos de formulários dinamicamente usando como parâmetro listas de PSItems.

TOnAddTemplate = mi_rtl_ui_Dmxscroller.TOnAddTemplate;

O tipo TOnAddTemplate é usado para criar modelos de formulários dinamicamente usando o método add

  • EXEMPLO

    
    Procedure AddTemplate(const aUiDmxScroller:TUiDmxScroller);
    begin
      with aUiDmxScroller do
      begin
        add('˜EXEMPLO DE TEMPLATE˜');
        add('');
        add('˜Alfanumérico maiúscula com 15 posições:˜\SSSSSSSSSSSSSSS');
        add('˜Alfanumérico maiúscula e minuscula com 30 posições:˜');
        add('˜˜\ssssssssssssssssssssssssssssssssssssss');
        add('˜Alfanumérico com a primeira letra maiúscula:˜\Sssssssssssssss');
        add('˜Valor double.......:˜\RRR,RRR.RR');
        add('˜Valor SmalInt......:˜\II,III');
        add('˜Valor Byte.........:˜\BBB');
        add('˜Valor Smallword....:˜\WW,WWW');
        add('˜Sexo...............:˜'+ CreateEnumField(TRUE, accNormal, 0,
                                      NewSItem(' indefinido ',
                                      NewSItem(' Masculino',
                                      NewSItem(' Feminino',
                                              nil)))));
        add('˜Estado Civil              ˜\KA Indefinido  '+chFN+'Sexo');
        add('˜˜\X Casado?                \KA Masculino    ');
        add('˜˜\X Pretende se divorciar? \KA Feminino     ');
        add('˜˜\X Tens filhos?          ');
        add('');
      end;
    end;
    
    procedure TForm1.DmxScroller_Form1AddTemplate(const aUiDmxScroller: TUiDmxScroller);
    begin
      AddTemplate(aUiDmxScroller);
    end;

TOnEnter = mi_rtl_ui_Dmxscroller.TOnEnter;

O tipo TOnEnter é usado para implementar evento onEnter da classe TUiDmxScroller

TOnExit = mi_rtl_ui_Dmxscroller.TOnExit;

O tipo TOnExit é usado para implementar evento onExit da classe TUiDmxScroller

TOnNewRecord = mi_rtl_ui_Dmxscroller.TOnNewRecord;

O tipo TOnNewRecord é usado para implementar evento onNewRecord da classe TUiDmxScroller

TOnCloseQuery = mi_rtl_ui_Dmxscroller.TOnCloseQuery;

O tipo TOnCloseQuery é usado para implementar evento OnCloseQuery da classe TUiDmxScroller

  • NOTA*

    • Este evento é disparado antes de desativar a classe **TUiDmxScroller

    .

    • Obs: Se o parâmetro CanClose for false, então a classe TUiDmxScroller não é desativado.

TOnEnterField = mi_rtl_ui_Dmxscroller.TOnEnterField;

O tipo TOnEnterField é usado no evento OnEnterField e disparado em TDmxFieldRec.DoOnEnter()

TOnExitField = mi_rtl_ui_Dmxscroller.TOnExitField;

O tipo TOnExitField é usado no evento OnExitField

TOnCalcField = mi_rtl_ui_Dmxscroller.TOnCalcField;

O tipo TOnCalcField é usado no evento para calcular um campo e é executado em TDmxFieldRec.DoOnEnter() e TDmxFieldRec.DoOnExit()

TOnChangeField = mi_rtl_ui_Dmxscroller.TOnChangeField;

O tipo TOnChangeField é usado para fazer calculos quando um valor campo é alterado.

  • PARÂMETROS:

    • aUiDmxScroller : Classi que edita o campo;

    • Previous_value : Valor do campo antes da auteração

    • Current_value : Valor do campo atual.

TOnBeforeInsert = mi_rtl_ui_Dmxscroller.TOnBeforeInsert;

O tipo TOnBeforeInsert é usado para criar o evento OnBeforeInsert e disparado no método TUiDmxScroller.AddRec

TOnAfterInsert = mi_rtl_ui_Dmxscroller.TOnAfterInsert;

O tipo TOnAfterInsert é usado para criar o evento OnAfterInsert e disparado no método TUiDmxScroller.AddRec

TOnBeforeUpdate = mi_rtl_ui_Dmxscroller.TOnBeforeUpdate;

O tipo TOnBeforeUpdate é usado para criar o evento OnBeforeUpdate e disparado no método TUiDmxScroller.PutRec

TOnAfterUpdate = mi_rtl_ui_Dmxscroller.TOnAfterUpdate;

O tipo TOnAfterUpdate é usado para criar o evento OnAfterUpdate e disparado no método TUiDmxScroller.PutRec

TOnBeforeDelete = mi_rtl_ui_Dmxscroller.TOnBeforeDelete;

O tipo TOnBeforeDelete é usado para criar o evento OnBeforeDelete e disparado no método TUiDmxScroller.PutRec

TOnAfterDelete = mi_rtl_ui_Dmxscroller.TOnAfterDelete;

O tipo TOnAfterDelete é usado para criar o evento OnAfterDelete e disparado no método TUiDmxScroller.PutRec

TOnCalcFields = mi_rtl_ui_Dmxscroller.TOnCalcFields;

O tipo TOnCalcFields é usado para fazer calculos é executado ao entrar no registro e ao sair do registro

TDmxFieldRec = mi_rtl_ui_Dmxscroller.TDmxFieldRec;
 
pDmxFieldRec = mi_rtl_ui_Dmxscroller.pDmxFieldRec;
 
SmallWord = TUiDmxScroller.SmallWord;
 

Constantes

MaxBufLength = $ff00;
 
mbOK = TMI_MsgBoxTypes.mbOK;
 
mrOK = TMI_MsgBoxTypes.mrOK;
 
mbCancel = TMI_MsgBoxTypes.mbCancel ;
 
mrCancel = TMI_MsgBoxTypes.mrCancel;
 
mbAbort = TMI_MsgBoxTypes.mbAbort;
 
mrAbort = TMI_MsgBoxTypes.mrAbort;
 
mrIgnore = TMI_MsgBoxTypes.mrIgnore;
 
mbYes = TMI_MsgBoxTypes.mbYes;
 
mrYes = TMI_MsgBoxTypes.mrYes;
 
mbNo = TMI_MsgBoxTypes.mbNo;
 
mrNo = TMI_MsgBoxTypes.mrNo;
 
mbClose = TMI_MsgBoxTypes.mbClose;
 
mrClose = TMI_MsgBoxTypes.mrClose;
 
mbAll = TMI_MsgBoxTypes.mbAll;
 
mrAll = TMI_MsgBoxTypes.mrAll;
 
mbNoToAll = TMI_MsgBoxTypes.mbNoToAll;
 
mrNoToAll = TMI_MsgBoxTypes.mrNoToAll;
 
mbYesToAll = TMI_MsgBoxTypes.mbYesToAll;
 
mrYesToAll = TMI_MsgBoxTypes.mrYesToAll;
 
mrNone = TMI_MsgBoxTypes.mrNone;
 
mrLast = TMI_MsgBoxTypes.mrLast ;
 
mbRetry = TMI_MsgBoxTypes.mbRetry;
 
mrRetry = TMI_MsgBoxTypes.mrRetry;
 
mbIgnore = TMI_MsgBoxTypes.mbIgnore ;
 
mbHelp = TMI_MsgBoxTypes.mbHelp;
 
accDelimiter = TConsts.accDelimiter ;

A constante accDelimiter informa que o campo é delimitador de campos no Template.

accHidden = TConsts.accHidden ;

A constante accHidden (Const accHidden = 2;) é um mapa de bits usado para identificar o bit do campo TDmxFieldRec.access que informa se o mesmo é invisível.

  • EXEMPLO

    • Como usar o mapa de bits accHidden para saber se o campo está invisível.

      
      with pDmxFieldRecˆ do
        If (access and accHidden <> 0)
        then begin
               ShowMessage(Format('O campo %s está invisível'),[CharFieldName]); 
             end;

AccNormal = TConsts.AccNormal;

A constante AccNormal (Const AccNormal = 0;) é um mapa de bits usado para identificar o bit do campo TDmxFieldRec.access que informa se que o campo pode ser editado.

  • EXEMPLO

    • Como usar o mapa de bits accNormal para saber se o campo pode ser editado.

      
      with pDmxFieldRecˆ do
        If (access and accNormal <> 0) 
        then begin
               ShowMessage(Format('O campo %s pode ser editado'),[FieldName]);
             end;

accReadOnly = TConsts.accReadOnly ;

A constante accReadOnly (Const ReadOnly = 1;) é um mapa de bits usado para identificar o bit do campo TDmxFieldRec.access que informa se o campo é somente para leitura.

  • EXEMPLO

    • Como usar o mapa de bits ReadOnly para saber se o campo não pode ser editado.

      with pDmxFieldRecˆ do
        If (access and ReadOnly <> 0)
        then begin
               ShowMessage(Format('O campo %s não pode ser editado'),[FieldName]);
             end;

accSkip = TConsts.accSkip ;

A constante accSkip (Const accSkip = 4;) é um mapa de bits usado para identificar o bit do campo TDmxFieldRec.access que informa se o campo pode receber o focus.

  • EXEMPLO

    • Como usar o mapa de bits accSkip para saber se o campo não pode receber o focus.

      with pDmxFieldRecˆ do
        If (access and accSkip <> 0)
        then begin
               ShowMessage(Format('O campo %s não pode receber o focus'),[FieldName]);
             end;

CharHint = TConsts.CharHint;

A constante CharHint é usado para documentar o campo e indica que todo o texto até o próximo caractere de controle será o conteúdo do campo HelpCtx_Hint.

  • EXEMPLO

    
    Resourcestring
    
     tmp_Alunos_Idade = '\BB'+ChFN+'idade'+CharUpperlimit+#64+
                         CharHint+'A idade do aluno. Valores válidos 1 a 64'+
                         CharHintPorque+'Este campo é necessário para que se agrupe o alunos baseado em sua faixa etária'+
                         CharHintOnde+'Ele será usado pelo coordenador ao classificar a turma';
    
    
     tmp_Alunos_Matricula = \IIII'+ChFN+'matricula'+CharHint+'A matricula do aluno é um campo sequencial e calculado ao incluir o registro';
    
     tmp_Alunos = '˜     Idade:˜%s'+lf+
                  '˜ Matricula:˜%s

CharHintOnde = TConsts.CharHintOnde;

A contante CharHintOnde informa que todo texto até o próximo delimitador contém informações para o campo HelpCtx_Onde

CharHintPorque = TConsts.CharHintPorque;

A contante CharHintPorque informa que todo texto até o próximo delimitador contém informações para o campo HelpCtx_Porque

FldDateTime = TConsts.FldDateTime ;

A constante FldDateTime é do tipo TDateTime e guarda a data compactada 'dd/nn/yy'

fld_LHora = TConsts.fld_LHora ;

A constante fld_LHora é do tipo TDateTime e guarda a hora compactada ##:##:##

fldAnsiChar = TConsts.fldAnsiChar ;

A constante fldAnsiChar (Const fldAnsiChar = 'C') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 'C' após o caractere "\" representa no buffer do formulário um tipo AnsiString que só aceita caractere maiúsculo.

  • EXEMPLO

    • Representação de um AnsiString de 10 dígitos em um buffer de 11 bytes onde o ultimo byte contém o caractere #0 informando o fim da string;

      
      Const
        Nome := '\CCCCCCCCCC'; //PAULO SÉRG

fldAnsiChar_LowCase = TConsts.fldAnsiChar_LowCase;

A constante fldAnsiChar_LowCase (Const fldAnsiChar = 'c') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 'c' após o caractere "\" representa no buffer do formulário um tipo AnsiString que só aceita caractere minúsculo.

  • EXEMPLO

    • Representação de um AnsiString de 10 dígitos em um buffer de 11 bytes onde o ultimo byte contém o caractere #0 informando o fim da string;

      
      Const
        Nome := '\cccccccccc'; //paulo Sérg
        Nome := '\Cccccccccc'; //Paulo Sérg

fldAnsiCharNUM = TConsts.fldAnsiCharNUM ;

A constante fldAnsiCharNUM (Const fldAnsiChar = '0') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres '0' após o caractere "\" representa no buffer do formulário um tipo AnsiString que só aceita caractere numérico ['0'..'9']] .

  • EXEMPLO

    • Representação de um AnsiString de 11 dígitos em um buffer de 12 bytes onde o ultimo byte contém o caractere #0 informando o fim da string;

      
      Const
      
        telefone := '\(00) 0 0000-0000' //85 9 9702 4498

fldAnsiCharVAL = TConsts.fldAnsiCharVAL ;

A constante fldAnsiCharVAL (Const fldAnsiChar = '0') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres '0' após o caractere "\" representa no buffer do formulário um tipo AnsiString que só aceita caractere numérico ['0'..'9']] com formatação dbase.

  • EXEMPLO

    • Representação de um AnsiString de 11 dígitos em um buffer de 12 bytes onde o ultimo byte contém o caractere #0 informando o fim da string;

      
      Const
      
        telefone := '\(NN) N NNNN-NNNN' //85 9 9702 4498

fldAPPEND = TConsts.fldAPPEND ;

A constante fldAPPEND é usada para concatenar duas listas do tipo PSItem.

  • A constante fldAPPEND é necessário porque DmxScroller trabalha com string curta e a mesma tem um tamanho de 255 caracteres, onde o tamanho está na posição 0.

  • Como usar a constante fldAPPEND:

    • A função CreateAppendFields retorna a constante fldAPPEND mais o endereço da string a ser concatenada.

      • EXEMPLO

        
        procedure Template : ShortString;
          Var
            S1,s2,Template : TString;
        begin
          S1 := '˜Nome do Aluno....:˜\ssssssssssssssssssssssssssssssssss';
          s2 := '˜Endereço do aluno:˜\sssssssssssssssssssssssss';
          result := S1+CreateAppendFields(s2);
        end;

      • NOTA

        • A contante fldAPPEND foi criada porque o projeto inicial foi para turbo pascal e ambiente console.

        • A versão atual podemos usar AnsiString visto que o limite do mesmo é a memória.

        • Para usar AnsiString é necessário converter para PSitem com a função: StringToSItem.

          • EXEMPLO:

            
            function TMI_UI_InputBox.DmxScroller_Form1GetTemplate(aNext: PSItem): PSItem;
            begin
              with DmxScroller_Form1 do
              begin
                if _Template  <> ''
                then Result := StringToSItem(_Template, 80);
            
            //    Result := StringToSItem(_Template, 40,TObjectsTypes.TAlinhamento.Alinhamento_Esquerda)
            //    Result := StringToSItem(_Template, 40,TObjectsTypes.TAlinhamento.Alinhamento_Central)
            //    Result := StringToSItem(_Template, 40,TObjectsTypes.TAlinhamento.Alinhamento_Direita)
            //    Result := StringToSItem(_Template, 80,TObjectsTypes.TAlinhamento.Alinhamento_Justificado)
            
                else result := nil;
              end;
            end;

fldBLOb = TConsts.fldBLOb ;

A constante fldBLOb indica que o campo é não formatado podendo ser um Record, porém a edição do mesmo será feito por outros meios.

  • NOTA

    • Para informar ao buffer do registro que o campo é fldBLOb, a função CreateBlobField é necessário.

    • A class function TUiMethods.CreateBlobField(Len: integer; AccMode,Default: byte) : TDmxStr_ID; reserva espaço para o mesmo.

    • Pendência: Preciso criar um exemplo de uso deste tipo de informação.

fldBYTE = TConsts.fldBYTE ;

A constante fldBYTE (Const fldBYTE = 'B') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 'B' após o caractere "\" representa no buffer do formulário um tipo byte.

  • EXEMPLO

    
    Const
       idade := '\BB' //Os dois dígitos estarão em um buffer de 1 byte;

fldBoolean = TConsts.fldBoolean;

A constante fldBoolean (fldBoolean = 'X') indica que o campo é do tipo byte e só pode ter dois valores.

  • NOTA

    • Valores possíveis:

      • 0 - False; não

      • 1 = True; sim

    • A forma de editá-los deve ser com o componente checkbox.

  • EXEMPLO

    
    Resourcestring
      tmp_Aceita = '\[X]'+ChFN+'Aceita_contrato'+CharHint+'Aceita os termos do contrato?';
      Template = tmp_Aceita+'˜Aceita os termos do contrato˜';

fldCONTRACTION = TConsts.fldCONTRACTION ;

A constante fldCONTRACTION ...

fldENum = TConsts.fldENUM ;

A constante fldENum (fldENUM=ˆE) é um campo do tipo byte(0..255) que contém uma lista de string que são selecionadas por um componente tipo ComboBox.

  • EXEMPLO

    
      Const tmpMidia : PSitem = nil;
    begin
      tmpMidia := CreateEnumField(TRUE, accNormal, 0,
                                  NewSItem(' indefinido ',
                                  NewSItem(' PenDriver  ',
                                  NewSItem(' SSD        ',
                                  nil))))+CharFieldName+'Midia;
    
      Template = NewSItem('˜  Eu uso ˜'+ tmpMidia + '˜ em meu computador.˜

fldENum_db = TConsts.fldENum_db ;

A constante fldENum_db (fldENum_db=ˆD) é um campo do tipo longint associado a um dataSource, uma chave dataSource.dataSet.KeyField e um campo a ser visualizado na liasta dataSource.dataSet.listField.

  • Os controles usados para edita-lo são:

    • TdbLookupComboBox.

    • EXEMPLO USO NO TEMPLATE

      
      function T__dm_xtable__.DmxScroller_Form1GetTemplate(aNext: PSItem): PSItem;
      begin
         with DmxScroller_Form1 do
         begin
           Result :=
           NewSItem(GetTemplate_CRUD_Buttons(CmNewRecord,CmUpdateRecord,CmLocate,CmDeleteRecord),
           NewSItem('',
           NewSItem('˜ID:            ˜'+CreateEnumField(TRUE, accNormal, 1,NewSItem('ssssssssssssssssssssssssssssssssssssssssssssssssss',nil),
                                                        Mi_SQLQuery1.DataSource,'id','nome')+
                                         ChFN+'id'+
                                         CharHint+'Campo enumero lookup',
           NewSItem('˜Nome:          ˜\ssssssssssssssssssssssssssssssssssssssssssssssssss'+chFN+'nome'+CharHint+'Campo alfanumérico aceita maiuscula e minuscula',
           NewSItem('˜endereco       ˜\ssssssssssssssssssssssssssssssssssssssssssssssssss'+chFN+'endereco',
           NewSItem('˜cnpj           ˜\##.###.###/####-##'+chFN+'cnpj',
           NewSItem('˜cpf            ˜\###.###.###-##'+chFN+'cpf',
           NewSItem('˜cep            ˜\##.###-###'+chFN+'cep',
           NewSItem('˜valor_SMALLINT ˜\IIIII'+chFN+'valor_SMALLINT',
           NewSItem('˜valor_Integer  ˜\LLLLLLLLLL'+chFN+'valor_Integer',//Maximo:2.147.483.647
      
           NewSItem('˜valor_FLOAT8   ˜\RRR,RRR.ZZ'+chFN+'valor_FLOAT8',
           NewSItem('˜Data_1         ˜\Ddd/mm/yy'+chFN+'Data_1',
           NewSItem('˜hora_1         ˜\Dhh:nn:ss'+chFN+'hora_1',
           NewSItem('˜hora_2         ˜\Dhh:nn'+chFN+'hora_2',
           NewSItem('',
           NewSItem(GetTemplate_DbNavigator_Buttons(CmGoBof,CmNextRecord,CmPrevRecord,CmGoEof,CmRefresh),
           NewSItem('',
           aNext)))))))))))))))));
         end;
      end;

CharExecAction = TConsts.CharExecAction ;

A contante CharExecAction é usado para associar ao campo atual uma classe TAction.

  • NOTA

    • O interpretador de Templates associa a ação do Template ao corrente campo.

  • EXEMPLO DE USO DE AÇÕES NO TEMPLATE

    1. Se o atributo Fieldnum do campo for diferente de zero, então o rótulo do botão associado a ação será o caracteres 🔍 e a ação pode atualizar o buffer do campo.

      • No exemplo a seguir um rótulo e um campo de cliente:

        
        NewSItem('˜Cliente:˜'+'\LLLLL'+CharExecAction+CreateExecAction(Action_pesquisa)

    2. Se o atributo Fieldnum do campo for igual a zero, então a rótulo do botão será o rótulo do campo.

      • No exemplo a seguir um rótulo de novo cliente (icons 🆕) e um botão ok (icons 🆗)

        
        NewSItem('˜ 🆕 &Novo cliente:˜'+CharExecAction+CreateExecAction(Action_Novo)+
                 '˜   ˜˜ 🆗 ˜'+CharExecAction+CreateExecAction(Action_Ok)

fldExtended = TConsts.fldExtended ;

A constante fldExtended (fldExtended='E') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 'E' após o caractere "\" representa no buffer do formulário um tipo Extended.

  • EXEMPLO

    
    Const
       Valor := '\EEE,EEE,EEE,EEE,EE' //Todos os números editados nesta
                                      //mascara, estarão em um buffer de 10 bytes;

CharFieldName = TConsts.CharFieldName ;

A constante CharFieldName usada para informar o nome do campo informado antes deste caractere.

  • EXEMPLO

    
    Const
      idade := '\BB'+CharFieldName+'idade'

ChFN = TConsts.ChFN ;

A constante ChFN é igual a CharFieldName. Foi criada para facilitar seu uso.

fldHexValue = TConsts.fldHexValue ;

A constante fldHexValue ...

fldLHora = TConsts.fldLHora ;

A constante fldLHora ...

fldLONGINT = TConsts.fldLONGINT ;

A constante fldLONGINT ...

FldMemo = TConsts.FldMemo ;

A constante FldMemo ...

FldOperador = TConsts.FldOperador ;

A constante FldOperador ...

FldRadioButton = TConsts.FldRadioButton ;

A constante FldRadioButton ...

fldReal4 = TConsts.fldReal4 ;

A constante fldReal4 ...

fldReal4P = TConsts.fldReal4P ;

A constante fldReal4P ...

fldReal4Positivo = TConsts.fldReal4Positivo ;

A constante fldReal4Positivo ...

fldReal4PPositivo = TConsts.fldReal4PPositivo ;

A constante fldReal4PPositivo ...

fldRealNum = TConsts.fldRealNum ;

A constante fldRealNum ...

fldRealNum_Positivo = TConsts.fldRealNum_Positivo;

A constante fldRealNum_Positivo ...

FldSData = TConsts.FldSData ;

A constante FldSData ...

FldSHora = TConsts.FldSHora ;

A constante FldSHora ...

fldSHORTINT = TConsts.fldSHORTINT ;

A constante fldSHORTINT ...

fldSItems = TConsts.fldSItems ;

A constante fldSItems ...

fldSmallInt = TConsts.fldSmallInt ;

A constante fldSmallInt ...

fldSmallWORD = TConsts.fldSmallWORD ;

A constante fldSmallWORD ...

fldSTR = TConsts.fldSTR ;

A constante fldSTR (Const fldStr = 'S') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 'S' após o caractere "\" representa no buffer do formulário um tipo ShortString que só aceita caractere maiúsculo.

  • EXEMPLO

    • Representação de um string de 10 dígitos em um buffer de 11 bytes onde o byte zero contém o tamanho da string;

      
      Const
        Nome := '\SSSSSSSSSS'  //PAULO SÉRG

fldstr_Lowcase = TConsts.fldstr_Lowcase;

A constante fldstr_Lowcase (Const fldstr_Lowcase = 's') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres 's' após o caractere "\" representa no buffer do formulário um tipo ShortString que só aceita caractere minúscula.

  • EXEMPLO

    • Representação de um string de 10 dígitos em um buffer de 11 bytes onde o byte zero contém o tamanho da string;

      
      Const
        Nome := '\ssssssssss' //paulo sérg
        Nome := '\Ssssssssss' //Paulo sérg

fldSTRNUM = TConsts.fldSTRNUM ;

A constante fldSTRNUM (Const fldSTRNUM = '#') usado na máscara do Template, informa ao componente TUiDmxScroller que a sequência de caracteres '#' após o caractere "\" representa no buffer do formulário um tipo ShortString que só aceita caractere numérico.

  • EXEMPLO

    • Representação de um string de 11 dígitos em um buffer de 12 bytes onde o byte zero contém o tamanho da string;

      
      Const
        telefone := '\(##) # ####-####' //85 9 9702 4498

CharUpperlimit = TConsts.CharUpperlimit ;

A constante CharUpperlimit (CharUpperlimit=ˆU) permite informar um limite superior para campos do tipo byte.

  • O gerador de formulário deve usar o conteúdo do campo pDmxFieldRec.Upperlimit para criticar se o valor do campo está na faixa entre 1 e pDmxFieldRec.Upperlimit.

  • O valor zero significa que o campo está nulo.

  • EXEMPLO

    • Um campo onde o seu conteúdo não ultrapasse um byte, pode ser informado no Template da seguinte forma:

      
      Const
        idade := '\BBB+CharUpperlimit+#130+CharHint+'Não existe humanos com a idade superior a 130 anos.

fldZEROMOD = TConsts.fldZEROMOD ;

A constante fldZEROMOD ...

CharShowPassword = TConsts.CharShowPassword ;

A constante CharShowPassword informa para controle que os caracteres não devem ser visualizado.

  • NOTA

    • Usados no campos tipo senha.

CharShowPasswordChar = TConsts.CharShowPasswordChar ;

A constante CharShowPasswordChar ...

TypeDate = TConsts.TypeDate ;

A constante TypeDate ...

_TypeDate = TConsts._TypeDate ;

A constante _TypeDate ...

TypeHora = TConsts.TypeHora ;

A constante TypeHora ...

TypeMemo = TConsts.TypeMemo ;

A constante TypeMemo ...


Gerado por PasDoc 0.16.0.