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

Criação de Componentes


robinhocne

Pergunta

Criei um componente do TEdit para ter opção de Cor no onExit e onEnter, agora queria criar uma propriedade assim:

Propriedades

>1ª Tabela

queria listar as tabelas do banco e ai selecionar qual é a tabela desse componente

>2ª Campo

queria listar os campos da tabela marcada na 1ª Propriedade e selecionar o campo do TEdit

>3ª Tipo de Campo

queria listar os tipos de campos (integer,string,date,time...etc), mas trazer marcado o tipo de campo da 2ª Propriedade

>4ª Obrigatório

queria marcar se esse campo vai ser obrigatório ou não

Se alguém poder me ajudar eu agradeceria muito, pois não sei como estar fazendo isso em um componente.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Volto no ponto da criação de componente,

Queria criar um Edit para todos os tipos de campos, porém não vou utilizar com ligação a uma tabela do banco.

Como faço para criar uma propriedade nesse componente chamado:

>Tipo de Campo (esse tipo de campo deverá conter uma caixa de seleção onde irei selecionar se ele recebe integer, float, string, date, time ou intstr)

Quando selecionar a propriedade integer, ele só pode aceitar numeros.

Quanto selecionar a propriedade float ele só deve aceitar valores com decimais, ai diante dessa propriedade precisarei de um campo para mascara desse campo e quantidade de casas decimais.

Quando for string só aceitar letras.

Quando for date só aceitar tipo data e jogar automaticamente o formato de data.

Quando for date só aceitar tipo hora e jogar automaticamente o formato de hora.

Quanto for IntStr poder aceitar numeros e letras.

Como eu posso fazer isso ?

Hoje tenho o componente TTexto criado onde herda do TEdit, segue abaixo....

unit Texto;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, Graphics, Messages;

type
  TTexto = class(TEdit)
  private
    OnEnterColor: TColor;
    OnExitColor: TColor;
    procedure ExportaColor(const Value: TColor);
    procedure ImportaColor(const Value: TColor);
  protected
    procedure ColocaCor(Sender: TObject);
    procedure RetiraCor(Sender: TObject);
    procedure ImportaCor(Value: TColor);
    procedure ExportaCor(Value: TColor);
  public
    constructor Create(Aowner: TComponent); override;
    procedure CMEnter(var Msg: TMessage); message CM_ENTER;
    procedure CMExit(var Msg: TMessage); message CM_EXIT;
  published
    property CorOnEnter: TColor read OnEnterColor write ImportaColor;
    property CorOnExit: TColor read OnExitColor write ExportaColor;
    property AutoSize;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Comps', [TTexto]);
end;

{ TTexto }

procedure TTexto.CMEnter(var Msg: TMessage);
begin
  ColocaCor(Self);
  inherited
end;

procedure TTexto.CMExit(var Msg: TMessage);
begin
  RetiraCor(Self);
  inherited
end;

procedure TTexto.ColocaCor(Sender: TObject);
begin
  if Sender is TEdit then
    TEdit(Sender).Color := OnEnterColor;
end;

constructor TTexto.Create(Aowner: TComponent);
begin
  inherited;
  OnEnterColor := clSkyBlue;
  OnExitColor  := clWindow;
  OnEnter      := ColocaCor;
  OnExit       := RetiraCor;
  AutoSize     := false;
  Height       := 20;
end;

procedure TTexto.ExportaColor(const Value: TColor);
begin

end;

procedure TTexto.ExportaCor(Value: TColor);
begin
  OnExitColor := Value;
end;

procedure TTexto.ImportaColor(const Value: TColor);
begin

end;

procedure TTexto.ImportaCor(Value: TColor);
begin
  OnEnterColor := Value;
end;

procedure TTexto.RetiraCor(Sender: TObject);
begin
  if Sender is TEdit then
    TEdit(Sender).Color := OnExitColor;
end;

end.

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo, voce precisa ler mais sobre a ciração de componentes em delphi

http://www.google.com.br/search?q=cria%C3%...p;aqi=&aql=

Dica: a criação de componentes segue quase o mesmo raciocinio:

imagine que voce quer que o seu edit aceite somente numeros ... voce vai utilizar o evento OnKeyPress do componente para fazer isso

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   // somente numeros
   if not (Key in['0'..'9',Chr(8),',']) then Key:= #0;
end;

a lógica para a criação do componente com esse recurso segue o mesmo principio

OBS: Tente fazer ... caso tenha muitas duvidas, veja no link ( tutoriais e apostilas de como criar componentes no delphi)

abraço

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,1k
    • Posts
      652k
×
×
  • Criar Novo...