Olá galera, nesta Quick Tips irei mostrar como usar um Set em Delphi, iremos definir o nosso Set para aceitar somente caracteres de 0 até 9 e o outro de A até Z, e logo em seguida iremos restringir a digitação em um Edit permitindo a somente o que esta no nosso Set.

 

Vamos ao exemplo

 

Adicione 2 Edit(edtNumeros, EdtLetras)

 

Agora iremos definir nosso set

 

unit uPrincipal;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

 

type

  TfrmPrincipal = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

    procedure Edit2KeyPress(Sender: TObject; var Key: Char);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

  TNumeros = set of Char; //Definimos o nosso set e dizemos o seu tipo

  TLetras  = Set of Char; //Definimos o nosso set e dizemos o seu tipo

 

var

  frmPrincipal: TfrmPrincipal;

 

const

  Numeros: TNumeros = ['0'..'9']; //Variável que representa o Set TNumeros

  Letras : TLetras  = ['a'..'z', 'A'..'Z']; //Variável que representa o Set TLetras

 

 

EdtNumeros : onKeyPress

 

procedure TfrmPrincipal.EdtNumerosKeyPress(Sender: TObject; var Key: Char);

begin

  if not ( Key in Numeros ) then

    raise Exception.Create( Format('Caracter %s inválido!!!',

        [QuotedStr( Key ) ]) );

end;

 

EdtLetras : onKeyPress

 

procedure TfrmPrincipal.EdtLetrasKeyPress(Sender: TObject; var Key: Char);

begin

  if not ( Key in Letras ) then

    raise Exception.Create( Format('Caracter %s inválido!!!',

        [QuotedStr( Key ) ]) );

end;

 

Com este recurso que temos no Delphi, podemos limitar a digitação de nossos usuários, evitando erros.

 

Fico por aqui até a próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br