Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Criação de componente com um propriedade tipo igual combob


LucAlucard

Pergunta

Bom dia a todos.

Bom, comecei a estudar a criação de componentes com o Delphi. Mas quero adicionar uma propriedade que não sei ao certo como fazer isso.

Por exemplo eu quero fazer um edit que dependendo da propriedade q eu escolher ele pode ser "monetário", "Texto" ou "apenas inteiro". Mas não estou conseguindo criar a propriedade com aquele efeito de "combobox" com os escritos. Tipo igual a propriedade "Align" só que mudando os escritos.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Conseguiu gente.. Não ta terminado ainda mas o código que eu precisava eu aprendi a fazer.. Você precisa criar uma Tipo de variavel lá.. No meu caso o "TTpValEdt ". E setar o que ele vai mostrar no combobox. No caso os vl (de valor) "vlMonetario, vlInteiro, vlTexto" dentro de parenteses.

Feito isso você precisa setar uma variáveis, uma para pegar o valor (TpEdt : TTpValEdt) e criar uma procedure para ele pegar o valor caso o valor do TpEdt seja diferente do antigo (procedure SetTpEdt (Valor : TTpValEdt)).

Bom.. o componente que eu qria crair n está terminado mas a dúvida que eu tinha já fui solucionada. Vlw gente! ^^

unit EdtPersonalizado_;

interface

uses
  SysUtils, Classes, Controls, StdCtrls;

type
  TTpValEdt = (vlMonetario, vlInteiro, vlTexto );
  TEditPersonalizado = class(TEdit)
  private
    FNumerico: boolean;
    TpEdt : TTpValEdt;
    procedure SetTpEdt (Valor : TTpValEdt);
  protected
  public
    constructor Create(AOwner: TComponent); override;
    procedure KeyPress(var Key: Char); override;
  published
    property Numerico: boolean   read FNumerico write FNumerico default true;
    property TipoEdit: TTpValEdt read TpEdt write SetTpEdt default vlTexto;
  end;


procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MeusComponentes', [TEditPersonalizado]);
end;

{ TEditPersonalizado }

constructor TEditPersonalizado.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FNumerico := True;
  Text := '0';
end;

procedure TEditPersonalizado.KeyPress(var Key: Char);
const teclasDec = ['0'..'9', #8];
begin
if TipoEdit = vlInteiro then
  if not (key in teclasDec) then
  key:=#0;
inherited KeyPress(Key);
end;

procedure TEditPersonalizado.SetTpEdt(Valor: TTpValEdt);
begin
if TpEdt <> Valor then
  TpEdt := Valor;
end;

end.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...