<< Click to Display Table of Contents >> Componentes Lib2K |
![]() ![]() ![]() |
Componentes da Lib2k ESTA LISTA ESTÁ DESATUALIZADA MAS DÁ UMA IDEIA DA COISA
Todos os componentes desenvolvidos pela Market estão situados na pasta M:\LIB\D7\Lib2K. Devem ser instalados através da package Lib2K_D7.dpk. Esta package instale os componentes da Lib2k.
Os principais componentes são explicados mais detalhadamente, outros menos importantes apenas citando um resumo do seu propósito:
TAEdit
É basicamente uma Edit poderosa. Ela possui várias propriedades interessantes. A primeira delas e mais visível é que ela já vem acompanhada de um TLabel que pode ser colocado acima e a esquerda da Edit diminuindo assim muito o trabalho de design de telas. Vários componentes da Lib2K são baseadas nesta Edit.
Propriedades:
Alignment: TAlignment default taLeftJustify;
Alinhamento da Edit, pode ser pela esquerda, direita ou centro
CharValido: string
Se for colocado algo nesta propriedade somente estes caracteres serão aceitos na Edit. Por Exemplo “SNsn”
CharValidoMsg: string
Caso a propriedade anterior estiver configurada esta propriedade aqui contém a mensagem que será exibida ao usuário caso ele coloque um caracter inválido.
CorFoco: TColor
Cor da edit quando o foco estiver sobre ela.
EditLabel: TInternalLabel
Através desta propriedade é possível acessar a Label que fica anexada ao edit.
EnterProximoCampo: Boolean default True;
Se for TRUE passar para próximo controle com o pressionamento de ENTER
FocaInicio: Boolean default False;
Se for TRUE ao receber o foco a Edit posiciona o cursos no primeiro caracter
HintPanel: TPanel
Panel que será exibido quando a edit receber foco
HintPanelRePos: Boolean
Se deve reposicionar o panel “HintPanel” para próximo de si quando receber foco.
InputType: TInputType default itNormal;
Modo de entrada. Os valores são: itNumeros = A edit aceitará somente os número de 0 a 9; itDinheiro = aceitará número e vírgula; itNormal = todos os caracteres; itLetras = a edit aceitará apenas letras.
IgnoraObrigatorio: Boolean default False;
Se for TRUE vai ignorar a verificação de obrigatório na unit genérica de cadastro (CadastroGenericoPadraoUnit).
LabelPosition: TLabelPosition
Posição onde da label anexada deve ficar. Pode ser: lpAbove, lpBelow, lpLeft, lpRight.
LabelSpacing: Integer default 3;
Define a distancia em que a label anexada deve ficar da edit. Em pixels.
LabelSize: Integer default 10;
Obsoleto
MaxSize: Integer default 0;
Aqui define o tamanho máximo de entrada da edit. Funciona em conjunto com a propriedade WidthAuto. Zero = sem limite.
Obrigatorio: Boolean default False;
Se for obrigatório = True a edit será de uma cor amarelada e não permitirá sair da mesma com as setas e enter sem preencher um valor.
WidthAuto: Boolean default False;
Se esta propriedade for TRUE ao modificar o MaxSize a edit irá ajustar o seu tamanho Width para caber o valor contido em MaxSize. Isso é possível porque a AEdit usa o fonte ‘Courier New’.
Métodos:
function Len: Integer;
Retorna o tamanho do .text é igual a Length(Edit.Text)
function LenTrim: Integer;
Retorna o tamanho do .text, mas removendo espaços antes e depois. É igual a Length(Trim(Edit.Text))
function TrimText: string;
Retorna o .text, mas removendo espaços antes e depois. É igual a Trim(Edit.Text)
function Vazio: Boolean;
Retorna TRUE caso a edit esteja vazia.
function StrZero(Tamanho: Integer = 2; RetornoSeZero: string = ''): string;
Caso a Edit contenha um valor aplica o formato com zeros a esquerda (o número de zero é o parâmetro tamanho)
Exemplo para Text = “5” -> StrZero(4) = “0005”; Text = “20” -> StrZero(6) = “000020”
function GetValor: Double;
Se for possível a conversão, converte o .text em um double
function GetFloat: Double;
Idem ao anterior
function GetInteger: Integer;
Se for possível a conversão, converte o .text em um Integer
function QuotedText: string; // Retorna o Text com " "
Retorna o .text entre apóstrofos. Semelhante a QuotedStr(Edit.Text)
Eventos:
OnConsulta: TNotifyEvent
Este evento sempre é ativado quando o usuário pressiona “+” no tecla, visto que a tecla “+” é usada por padrão nos sistemas Market como tecla para consulta.
OnKeyboard: TNotifyEvent
Obsoleto
TAValor
É descendente da AEdit, portanto tem as mesmas rotinas e propriedades. Porém tem alguns recursos a mais para entrada de valores numéricos.
Propriedades:
Formato: String;
É formato que a Edit aplicará sobre o valor digitado após perder o foco. O padrão é '#,##0.00'.
Métodos:
procedure SetValor(const Valor: Double);
Altera a propriedade .text usando-se um float.
procedure SetFloat(const Valor: Double);
Idem ao anterior
function GetAnsi: string;
Retornar uma string já formatada do valor para usar em comandos SQL (insert, update).
function GetExtenso(InteiroSingular: string = 'Real' ; InteiroPlural: string = 'Reais';
DecimalSingular: string = 'Centavo'; DecimalPlural: string = 'Centavos'): string;
Retorna o valor digitado por extenso
TAData
Baseado na AEdit, possui as mesmas características. Porém possui máscara de data juntamente com as 3 letras de dia da semana (sex, sáb, dom). Pode-se usar algumas teclas de atalho para mudar a data: F11, F12 e + e -, estes últimos podem ser combinados com Shift, Ctrl e Alt para semanas, meses e anos ao invés de apenas dias. Ainda é possível unir 2 AData para habilitar mais recursos como um menu suspenso para preencher as datas automaticamente.
Propriedades:
FinalData: TAData;
É possível “vincular” 2 componentes AData. Se isso for feito será disponibilizado ao usuário um menu de contexto em ambas AData para acessar rapidamente meses, anos e semanas.
Métodos:
function SetData(const Data: TDateTime): Boolean; overload;
function SetData(const Data: string): Boolean; overload;
Estes dois métodos alteram a data via programação. Sendo que um passa para a AData um TDatetime e outro uma string.
function SetDia(const Dia: Integer): Boolean;
function SetMes(const Mes: Integer): Boolean;
function SetAno(const Ano: Integer): Boolean;
Estes 3 alteram um dia, mês ou ano em particular da data que está na edit.
function CompletaData: Boolean;
Esta função é interessante. Ela completa um data que não foi preenchida por inteiro. Muito raro seu uso direto. A própria edit cuida deste recurso.
function GetPascoa: TDateTime;
Retorna o dia da páscoa do ano que está na edit.
function GetCarnaval: TDateTime;
Retorna o dia do carnaval que está na edit.
function IsHoliday: Boolean;
Retorna TRUE se o dia for feriado (baseia-se nos feriados nacionais)
procedure SetAjuste(const Dias: Integer; Meses: Integer = 0; Semanas: Integer = 0; Anos: Integer = 0);
Ajusta a data da edit em dias, meses, semanas ou anos. Sendo que todos são opcionais. Por exemplo, para ajustar a data em 3 dias para frente: SetAjuste(3); para ajustar em 2 semanas para trás: SetAjuste(0,0,-2);
procedure SetFimDaSemana;
procedure SetInicioDaSemana;
Muda o valor para o fim ou inicio da semana atual.
procedure SetFimDoMes;
procedure SetInicioDoMes;
Muda o valor para o fim ou inicio do mês atual.
procedure SetAtual;
Posiciona na data de hoje com base no clock do CPU.
procedure SetLastUtilDay(StartNow: Boolean = False);
Retorna o ultima dia útil (verifica os feriados)
procedure ValidaDatas;
Este método só está disponível quando a propriedade FinalData for vinculada a outra AData. Ele verifica se as 2 datas estão preenchidas e se a data inicial é menor ou igual a data final. Se qualquer um destes casos não for verdadeiro ela retornar uma mensagem e aborta a operação.
Funções para retorno de valores
function Zerado: Boolean;
Retorna TRUE se nenhuma data foi digitada pelo usuário.
function Valida: Boolean;
Retorna TRUE se a data é válida. Esta função é rara de ser usada, a própria edit faz esta verificação antes de perder o foco.
function AnoBisexto: Boolean;
TRUE quando o ano é bisexto.
function GetAno: Integer;
function GetMes: Integer;
function GetDia: Integer;
Retornam o ano, mês ou dia respectivamente da data em questão
function GetDiaSemana: Integer;
Retorna o dia da semana: 0=domingo, 6=sábado
function GetSemanaDoAno: Integer;
Número da semana do ano: 1-52.
function GetDiaSemanaStr: string;
Retorna por extenso o dia da semana: “Sexta-feira”
function GetNumeroDiasMes: Integer;
Número de dias que o mês selecionado contém.
function GetExtenso: string;
Retorna a data por extenso: “sexta-feira, 9 de março de 2001”
function GetMesStr: string;
Retorna o mês por exntenso: "março"
function GetDate: TDateTime;
Retorna o TDateTime da data atual no .text
function GetDataStr(Formato: string = 'DD/MM/YYYY'): string
Retorna a data do .text no formato especificado
function GetAnsi(Aspas: Boolean = True; Formato: string = 'MM/DD/YYYY'; AtivaNull: Boolean = False): string;
Retorna a data do .text no formato ansi para poder usar com SQL (insert, update, where...)
TAEditPlus
É descendente da AEdit. Única diferença é que esta possui mais uma Label para exibir um texto do lado direito da edit como um lookup. E eventos para isso.
Propriedades:
property LookupLabel: TABoundLabel
Através desta propriedade é possível acessar todas as característica da Label que se posiciona a direta da edit
property LookupMaxSize : Integer
O maior tamanho que a label de lookup pode ter deve ser configurado aqui. Em caracteres.
property LookupSpacing : Integer
Espaço entre a label de lookup e a edit
Eventos:
OnLookup: procedure(Sender: TObject; var LookupStr: string)
Este evento é sempre chamado sempre que o conteúdo da edit é alterado e a mesma perde o foco. É possível assim fazer uma consulta numa tabela ou outro local para alterar o conteúdo da LookupLabel anexada. Basta alterar o valor de LookupStr (parâmetro deste evento).
Este componente é comumente usado em conjunto com o TdbxPesquisa.
Métodos:
ShowLookup
Este método chama o evento OnLookup para atualizar a LookupLabel manualmente.
ClearLookup(ColocarSinal: Boolean = False)
Este método limpa LookupLabel, se o parametro for TRUE será colocado o sinal “[?]” na LookupLabel.
TACombo
É descendente da TCustomComboBox. Possui a grande maioria das propriedades, métodos e eventos da AEdit. Não tem nenhum evento ou propriedade além disso.
TABtnEdit
É descendente da TAEdit. Porém possui um botão no seu lado direito que pode ser usado para os mais diversos fins. Quase sempre usa-se este componente para o usuário selecionar pastas ou arquivos.
Propriedades:
DialogTitle: string;
Título da janela de diálogo abrir arquivo quando o Estilo for ebArquivo
DialogDefaultExt: string;
Extensão de arquivo padrão da janela de diálogo abrir arquivo quando o Estilo for ebArquivo
DialogFilter: string;
Filtro de arquivos para a janela de diálogo abrir arquivo quando o Estilo for ebArquivo
Atalho: TShortCut default Vk_F4;
Atalho que chama o click do botão anexado a edit
BotaoWidth: Integer default 22;
Largura do botão anexado em pixels
Estilo: TEstiloBtnEdit ebPasta;
Estilo de funcionamento do botão. Pode ser ebPasta quando o botão for pressionado será exibida a tela de seleção de pastas do Windows; ebArquivo: ao pressionar o botão a caixa de diálogo abrir arquivo será exibida com as propriedades ajustadas conforme as deste componente; ebNormal ao pressionar o botão será chamado o evento OnButtonClick para o usuário programar o funcionamento.
Glyph: TBitmap
Imagem que aparece no botão. Quando o Estilo é ebPasta ou ebArquivo o componente coloca o Glyph automaticamente
PermiteEdicao: Boolean default True;
Se TRUE permite que o usuário edite o conteúdo da edit pelo tecla, caso contrário somente usando o botão
Eventos:
OnButtonClick: TNotifyEvent
Este evento é sempre chamado sempre que o usuário pressionar o botão
TASpin
Componente descendente do TSpinEdit do Delphi com alguns poderes da AEdit, como enter próximo controle, label anexada etc.
TFormPosition
Este componente tem a característica de salvar o tamanho, posição e estado do form onde for colocado.
TMsgPanel
Exibe um panel com um ícone e uma mensagem informativa, como um hint.
Componentes de Data-aware para DBExpress
TdbxEdit
Basicamente é uma TDBEdit do Delphi com poderes da AEdit. Este é o componente utilizado para cadastros com base em DBExpress. Ele é herdado da AEdit portante tem todos os eventos, propriedades e métodos.
Propriedades:
AutoInc: TAutoInc = (Ativo: Boolean; Trigger: Boolean; CampoEmpresa: string)
Esta propriedade só deve ser utilizada quando é necessário ativar o código SQL para controle de código (comumente chamado de auto-incremente ninja). Este recurso faz com que antes de gravar um cadastro novo na tela de CadastroGenerica o componente busque uma “vaga”. Ou seja, imagine um cadastro de clientes onde existem no banco os códigos cadastrados: 1,3,4,5. Se AutoInc.Ativo = True o componente irá sugerir o código “2” que é o que está faltando no cadastro. Ele basicamente “tapa” os buracos do banco. Quando não há mais “buracos” ele sugere o ultimo + 1.
Caso o cadastro seja por empresa (cada empresa tem o cliente 1) então basta identificar no AutoInc.CampoEmpresa o nome do campo da empresa ou loja.
DataField: string
Algo em particular que ocorre quando o programador modifica este campo é que caso o dataset vinculado esteja Active=True o componente irá se auto configurar conforme o Field vinculado. Ou seja, o tamanho da Edit, se é obrigatório ou não, o InputType, alinhamento e também irá capturar o DisplayName do Field e colocá-lo no Label que anexado a edit.
TdbxEditPlus
Praticamente igual TdbxEdit, mas tem a propriedade LookupLabel, para fazer consultas lookup e exibi-las no TLabel anexado pelo lado direito. Este componente possui um TSQLDataSet interno e pode fazer Select’s automaticamente quando o conteúdo do .text é alterado.
Propriedades:
LookupConnection: TSQLConnection
Esta propriedade é utilizado pelo componente para o SQLDataset interno possa se conectar com o banco de dados e fazer o lookup. Se não for identificado e o dataset da propriedade Datasource estiver no mesmo form o componente consegue identificar o SQLConnection sozinho, mas quando o mesmo estiver em um Datamodule é necessário preencher esta propriedade.
Eventos:
OnLookup (Sender: TObject; var SQL: string; ProcessarSQL: Boolean = True)
Este evento é sempre chamado quando algo na edit foi alterado ou quando o Delphi encontra o método .ShowLookup. Para fazer o lookup funcionar basta colocar na variável SQL o comando para retornar o valor que vai para a LookupLabel por exemplo:
SQL := 'select nm_cidade from tb_cidade where cd_cidade = ' + Edit.Text;
OnLookupChange (Sender: TObject; var Text: string)
Cada vez que o Lookup é alterado este evento é chamado para verificações adicionais. Raramente usado.
TdbxEditLook
Funciona igual ao TdbxEditPlus, com apenas uma diferença: o valor que o usuário digita não é o campo primário da tabela de lookup. Exemplo: imagine um cadastro de loja onde existem código da loja, número da loja e nome da loja (CD_LOJA, NR_LOJA e NM_LOJA) sendo que o código é primary key. Em uma tela o usuário faz um lookup com a tabela loja, porém o usuário não precisa e nem deve saber o código da loja. Basta saber o nome, porém é o código que liga as duas tabelas. Neste caso este componente ajuda bastante, veja os 2 eventos abaixo quais valores devem ser colocados para este exemplo citado.
OnLookup (Sender: TObject; var SQL: string; ProcessarSQL: Boolean = True)
Funciona igual ao mesmo evento da dbxEditPlus porém é necessário identificar 2 campos no SQL, um sendo o campo de exibição e outro o campo de ligação da chave estrangeira. Exemplo:
SQL := 'select cd_loja,nm_loja from tb_loja where nr_loja = ' + dbxEditLook1.Text;
OnLookupInterno (Sender: TObject; var SQL: string; const ValorInterno: string)
Este é apenas para o sistema conseguir achar o valor de exibição baseando-se na chave estrangeira:
SQL := 'select NR_LOJA from TB_LOJA where CD_LOJA = ' + ValorInterno;
TdbxCombo
É basicamente uma ACombo com poderes do Data-aware
TdbxPesquisa
Este componente possui poucas propriedades e deve ser usado em conjunto com o AEditPlus, mais especificamente nos eventos OnLookup e OnConsulta.
Ele serve para consultar a base em termos de lookup ou abrir uma tela para consultar em determinados campos.
Propriedades:
SQLConnection : TSQLConnection
Componente para conexão com o banco de dados
Caption: String
Caption do form de consulta
Métodos:
function Execute(const Select, TitulosColunas, Where, CamposOrderBy: string; AbrirNoShow: Boolean = True; CamposInvisiveis: string = ''): Boolean;
Executa a consulta usando os parâmetros passados para a função. Para facilitar veja o exemplo (colocado num OnConsulta de um AEditPlus):
dbxPesquisa.LimpaCamposConsulta;
dbxPesquisa.AddCampoConsulta('cd_loja', 'N', False);
dbxPesquisa.AddCampoConsulta('nm_loja', 'S', True);
if dbxPesquisa.Execute('select cd_loja, nm_loja from tb_loja', 'Código:Nome', '', 'nm_loja') then
begin
TEditPlus(Sender).Text := dbxPesquisa.FieldStr('cd_loja');
TEditPlus(Sender).Text := dbxPesquisa.FieldStr('nm_loja');
end;
Neste exemplo as 3 primeiras linhas poderiam ser colocadas no OnCreate do Form.
function Lookup(const SelectCompleto, CampoPadraoRetorno, Conteudo, OldTextLookup: string): Boolean;
Executa a função de lookup. Geralmente usado no evento OnLookup de um AEditPlus. Exemplo de uso:
dbxPesquisa.LimpaCamposConsulta;
dbxPesquisa.AddCampoConsulta('cd_loja', 'I', False);
dbxPesquisa.AddCampoConsulta('nm_loja', 'S', True);
dbxPesquisa.Lookup('select nm_loja from tb_loja where cd_loja = ' + Edit.Text,
'nm_loja', Edit.Text, LookupStr);
LookupStr := dbxPesquisa.FieldStr('nm_loja', False);
procedure AddCampoConsulta(const Campo: string; const Tipo: char; const Aspas: Boolean);
Adiciona os campos para consulta, sendo os tipos: S = string e I = Inteiro. Se aspas for TRUE este campo será pesquisado usando-se aspas mesmo que seja numérico.
procedure LimpaCamposConsulta;
Limpa todos os campos de consulta adicionados anteriormente. Geralmente usado quando um mesmo TdbxPesquisa é usado para vários Edits.
Métodos para retorno de valores
function FieldStr(const Campo: string; AtivaErro: Boolean = True): string; overload;
function FieldStr(const IdxCampo: Integer): string; overload;
function FieldInt(const Campo: string; AtivaErro: Boolean = True): Integer;
function FieldDate(const Campo: string; AtivaErro: Boolean = True): TDateTime;
Todos estes fazem a mesma coisa, trazem o retorno de uma pesquisa porém cada qual com um tipo em especial: Data, inteiro ou string.
TdbxDataSet
É um componente descendente de TSimpleDataSet, com vinculo a TdbxTransaction, métodos para select e update, controle de erros, cronômetro interno e várias funções para retorno dos campos de todos os tipos.
Propriedades:
MensagemErro: string;
Caso o ultimo comando Select ou Execute retornar FALSE a mensagem vinda do banco de dados estará nesta variável
Tempo: Double;
Retorna o tempo que o componente levou para fazer o ultimo SQL
MostraJanela: Boolean default False
Se TRUE ao chamar o método Select o componente exibe uma mensagem pedindo para o usuário aguardar
dbxTransaction: TdbxTransaction
Todo insert, update e delete no DBExpress necessita de um componente chamado TTransactionDesc mas para facilitar foi criado um componente chamado TdbxTransaction que encapsula um TTransactionDesc basta vincula com esta propriedade.
MensagemAguardar: string default 'Aguarde um momento...'
Esta é a mensagem que aparece quando MostraJanela = True.
property PacketRecords default 30
Número de registros (PacketRecords) trazidos por vez do servidor
Métodos:
function Select(const CodigoSQL: string): Boolean;
Este é método principal deste componente. A função Select retorna TRUE caso o CodigoSQL seja executado corretamente e retorne 1 registro
function ExecuteSQL(const CodigoSQL: string; UsarTransacao: Boolean): Boolean;
Este faz o mesmo do método Select porém é utilizado para comandos como Update, Insert e Delete. O parâmetro UsarTransacao deve ser colocado True caso queira que o comando seja “comitado”.
function StartTrans: Boolean;
Inicia uma transação
function Commit: Boolean;
Confirma uma transação previamente aberta
function Rollback: Boolean;
Cancela uma transação previamente aberta
function InTransaction: Boolean;
Retorna TRUE caso haja uma transação aberta
Métodos para retorno de valores:
function Campo(const Campo: string): string;
Retorna um campo como String, equivalente a FieldByName(Campo).AsString
function CampoS(const campo: string) : Boolean;
Retorna TRUE caso o campo contenha valor “S”
function CampoTrim(const campo: string): string;
Retorna igual ao método “Campo” porém aplicando a função Trim do Delphi
function CampoEsq(const campo: string;const Tamanho: Integer; Letra: char = #32): string;
function CampoDir(const campo: string;const Tamanho: Integer; Letra: char = #32): string;
function CampoCentro(const campo: string; const Tamanho: Integer; Letra: char = #32): string;
Retorna um campo string alinhado a esquerda, direta ou centro pelo tamanho especificado usando o parâmetro Letra para preencher espaços até que o tamanho seja alcançado
function CampoVazio(const campo: string): Boolean;
Retorna TRUE caso o campo seja null ou string vazia
function CampoBarra(const campo: string): string;
Retorna o valor com uma “\” no final
function CampoUpper(const campo: string): string;
Retorna um campo string em maiúsculas
function CampoValor(const campo: string; Mascara: string = '#,##0.00'): string;
Retorna um campo Float porém no formado string usando a máscara do 2º parâmetro.
function CampoValorDir(const campo: string; Size: Integer; Letr: char=#32; Mask: string = '#,##0.00'): string;
O mesmo que CampoValor porém alinhado a direita pelo tamanho do 2º parametro
function CampoQuoted(const campo: string) : string;
Retorna um campo string entre apóstrofos (‘)
function BuscaCampo(const SQL, Padrao: string): string;
Faz um lookup simples, caso resulte em erro ou não exista retorna o valor especificado no segundo parâmetro.
function GetValor(const campo: string): Double;
function GetFloat(const campo: string): Double;
Retorna um campo double similar a FieldByName(campo).AsFloat
function GetBool(const campo: string) : Boolean;
Retorna um campo boolean similar a FieldByName(campo).AsBoolean
function GetDate(const campo: string) : TDateTime;
Retorna um campo data similar a FieldByName(campo).AsDateTime
function GetInteger(const campo: string) : Integer;
Retorna um campo inteiro similar a FieldByName(campo).AsInteger
function GetDataStr(const Campo: string; Formato: string = 'dd/mm/yy'): string; // Data String (formatado)
Retorna uma data formata conforme 2º parametro
TdbxTransaction
Todo insert, update e delete no DBExpress necessita de um componente chamado TTransactionDesc mas para facilitar foi criado este componente que encapsula um TTransactionDesc.
Propriedades:
Trans: TTransactionDesc
TdbxText
É descendente da TDBText, a única coisa a mais é uma label como um “caption” que fica a esquerda da mesma alinhada.
É utilizada em várias telas de consulta para exibir informações apenas de leitura com um label explicando o significado do valor, por exemplo:
Total: 100,00
Cliente: JOÃO DA SILVA
Ficam 2 componentes em 1.