robinhocne Posted March 17, 2012 Report Share Posted March 17, 2012 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ª Campoqueria listar os campos da tabela marcada na 1ª Propriedade e selecionar o campo do TEdit>3ª Tipo de Campoqueria listar os tipos de campos (integer,string,date,time...etc), mas trazer marcado o tipo de campo da 2ª Propriedade>4ª Obrigatórioqueria marcar se esse campo vai ser obrigatório ou nãoSe alguém poder me ajudar eu agradeceria muito, pois não sei como estar fazendo isso em um componente. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted March 17, 2012 Report Share Posted March 17, 2012 acho que voce esta se refererindo ao TDBEdit, pois com o TEdit não daria para fazer issohttp://imasters.com.br/artigo/3777/linguag...asses-do-delphiabraço Quote Link to comment Share on other sites More sharing options...
0 robinhocne Posted April 14, 2012 Author Report Share Posted April 14, 2012 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. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted April 14, 2012 Report Share Posted April 14, 2012 Amigo, voce precisa ler mais sobre a ciração de componentes em delphihttp://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 issoprocedure 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 principioOBS: Tente fazer ... caso tenha muitas duvidas, veja no link ( tutoriais e apostilas de como criar componentes no delphi)abraço Quote Link to comment Share on other sites More sharing options...
Question
robinhocne
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 to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.