Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Criando componente

Recommended Posts

Boa tarde a todos....Tava lendo uns artigos a respeito de criacao de componentes e axei mto interessante...Entao to qrendo criar um componente do tipow TEdit....so q tenha uma propriedade "Tipo" ... com a opçao CPF, CNPJ.... nesse caso c o usuario escolher a opçao CPF ele cria uma mascara pra CPF senao cria uma mascara para CNPJ....sei q naum vai ser mto ultil ... mais garanto q com issu vo aprende um poco sobre criacao de componentes ....Alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei este fonte de componente para fazer validação de CPF, poderia ainda adicionar o CNPJ, veja os fontes e tente mudar...

 

 

(********************************************************************************)(* TCheckCPF																	*)(*																			  *)(* Este é um componente visual para ser usado em qualquer versão de Delhi.	  *)(*																			  *)(* Copyright © 1998 by Leonardo Augusto Rezende Santos						  *)(* e-mail: laug@ufu.br														  *)(*																			  *)(* Este componente é freeware e pode ser livremente distribuído em aplicações   *)(* comerciais ou particulares.												  *)(* O Código Fonte pode ser livremente usado, modificado ou distribuído.		 *)(* O autor não se responsabiliza por nenhum dano, direto ou indireto causado	*)(* este componente.															 *)(*																			  *)(* Comentários e sugestões serão muito bem vindas.							  *)(********************************************************************************)unit CheckCPF;interfaceuses  {$ifdef Win32}	Windows,  {$else}	WinProcs, WinTypes,  {$endif}  Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type  TCheckCPF = class(TComponent)  private	{ Private declarations }	FCPF : string;	FValido : Boolean;	procedure SetCPF(Value : string);	procedure SetValido(Value : Boolean);  protected	{ Protected declarations }  public	{ Public declarations }	constructor Create(AOwner : TComponent); override;  published	{ Published declarations }	property CPF : string read FCPF write SetCPF;	property Valido : Boolean read FValido write SetValido;  end;procedure Register;implementation{$ifdef Win32}  {$R CheckCPF.d32}{$else}  {$R CheckCPF.d16}{$endif}procedure Register;begin	 RegisterComponents('Samples', [TCheckCPF]);end;constructor TCheckCPF.Create(AOwner : TComponent);begin	 inherited Create(AOwner);	 FCPF := '';end;procedure TCheckCPF.SetCPF(Value : string);function ChecaCPF(CPF : string) : Boolean;var  TextCPF: string;  f,  Soma,  Digito1,  Digito2: Integer;begin  Result := False;  {verifica se existe carcteres inválidos}  for f := 1 to Length(CPF) do	if not (CPF[f] in ['0'..'9', '-', '.', ' ']) then	  Exit;  {retira os caracteres não numéricos}  TextCPF := '';  for f := 1 to Length(CPF) do	if CPF[f] in ['0'..'9'] then	  TextCPF := TextCPF + CPF[f];  if TextCPF = '' then Result := True;  if Length(TextCPF) <> 11 then Exit;  {verifica primeiro digito}  Soma := 0;  for f := 1 to 9 do	Soma := Soma + (StrToInt(TextCPF[f])*f);  Digito1 := Soma mod 11;  if Digito1 = 10 then Digito1 := 0;  {verifica segundo digito}  Soma := 0;  for f := 1 to 8 do	Soma := Soma + (StrToInt(TextCPF[f+1])*(f));  Soma := Soma + (Digito1*9);  Digito2 := Soma mod 11;  if Digito2 = 10 then Digito2 := 0;  {faz a validação}  if Digito1 = StrToInt(TextCPF[10]) then	if Digito2 = StrToInt(TextCPF[11]) then	  Result := True;end;begin	 FCPF := Value;	 FValido := ChecaCPF(FCPF);end;procedure TCheckCPF.SetValido(Value : Boolean);begin	 {Faça Nada!}end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra... desculpa mais naum era exatamente issu q eu qria ...

 

no exemplo q você me passo ele cria um objecto naum visual tipo (um objeto) pra validar CPF...

 

eu consegui fazer alguma coisa .. veja:

 

 

unit EditColor;interfaceuses  Classes, StdCtrls, ExtCtrls, Graphics;type  TEditColor = class(TEdit)  private	fColor: TColor;	fEdit : TEdit;	procedure SetColor(Color:TColor);  protected  public	constructor Create(AOwner : TComponent); override;	{Constructor}	destructor Destroy; override;						 {Destructor}  published	property ColorEdit : TColor read fColor write SetColor default clWindow;  end;procedure Register;implementationconstructor TEditColor.Create(AOwner : TComponent);begin  inherited Create(AOwner);	   {Chama o constructor original (herdado)}  fEdit := TEdit.Create(Self);  fEdit.Text:= 'Rodrigo';  fEdit.Color:= fColor;end;destructor TEditColor.Destroy;begin  fEdit.Free;		  {Liberamos o timer}  inherited destroy;	{Chamamos o destructor original (herdado)}end;procedure TEditColor.SetColor(Color: TColor);beginfEdit.Color:= Color;end;procedure Register;		{Registro do componente}begin  RegisterComponents('Rodrigo', [TEditColor]);end;end.

beleza.... c tiver alguma implementacao legal pra mim por no esquema acima me avisa Ok... abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.