Criando Componente
Pessoal é o seguinte: quero criar um componente TEditColor que ao receber o focu ele muda de cor altomaticamente(para isso criei uma propriedade ColorFocused) mas não está funcionando. Deve ter algo faltando no meu componente.
Dêem uma olhada no código:
unit EdColor;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEditColor = class(TEdit)
private
FColorFocused: TColor;
FColor: TColor;
procedure SetColor (Value: TColor);
protected
public
constructor Create(AOwner: TComponent); override;
procedure OnEnter(Sender: TObject);
published
property ColorFocused: Tcolor read FColorFocused write
FColorFocused;
property Color: Tcolor read FColor write FColor;
end;
procedure Register;
implementation
************************************
constructor TEditColor.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FColor := clWhite;
FColorFocused := clInfoBk;
end;
************************************
procedure TEditColor.SetColor(Value: TColor);
begin
// if (Focused)and(Screen.ActiveControl is TEditColor) then
FColor := Value;
end;
************************************
procedure TEditColor.OnEnter(Sender: TObject);
begin
if (Focused)and(Screen.ActiveControl is TEditColor) then
SetColor(ColorFocused);
end;
************************************
procedure Register;
begin
RegisterComponents(´MComps´, [TEditColor]);
end;
end.
obs: O componente é compilado e instalado numa boa, mas quando ele recebe o focu ele não muda a cor. Desejo criar este componente apenas para estudar o assunto e para utiliza-lo.
Quem puder me ajudar, ficarei grato!
Dêem uma olhada no código:
unit EdColor;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEditColor = class(TEdit)
private
FColorFocused: TColor;
FColor: TColor;
procedure SetColor (Value: TColor);
protected
public
constructor Create(AOwner: TComponent); override;
procedure OnEnter(Sender: TObject);
published
property ColorFocused: Tcolor read FColorFocused write
FColorFocused;
property Color: Tcolor read FColor write FColor;
end;
procedure Register;
implementation
************************************
constructor TEditColor.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FColor := clWhite;
FColorFocused := clInfoBk;
end;
************************************
procedure TEditColor.SetColor(Value: TColor);
begin
// if (Focused)and(Screen.ActiveControl is TEditColor) then
FColor := Value;
end;
************************************
procedure TEditColor.OnEnter(Sender: TObject);
begin
if (Focused)and(Screen.ActiveControl is TEditColor) then
SetColor(ColorFocused);
end;
************************************
procedure Register;
begin
RegisterComponents(´MComps´, [TEditColor]);
end;
end.
obs: O componente é compilado e instalado numa boa, mas quando ele recebe o focu ele não muda a cor. Desejo criar este componente apenas para estudar o assunto e para utiliza-lo.
Quem puder me ajudar, ficarei grato!
Anonymous
Curtidas 0
Respostas
Anonymous
13/03/2003
Recentemente fiz um componente que faz a mesma coisa que você quer e que ainda por cima é capaz de mudar a cor da borda do componente edit...
se chama CFCoolEdit e ele não tá aqui no clubedelphi porque o serviço é muito lento e eles ainda nem puseram no ar meu componente de manipulação RAR...
:)
Se você quiser posso mandar uma cópia por e-mail do meu componente pra vc. Ele tem código fonte incluido e vc vai aprender como fazer o que vc quer!
Made um mail pra mim se vc estiver interessado
afmdkqc@ieg.com.br
se chama CFCoolEdit e ele não tá aqui no clubedelphi porque o serviço é muito lento e eles ainda nem puseram no ar meu componente de manipulação RAR...
:)
Se você quiser posso mandar uma cópia por e-mail do meu componente pra vc. Ele tem código fonte incluido e vc vai aprender como fazer o que vc quer!
Made um mail pra mim se vc estiver interessado
afmdkqc@ieg.com.br
GOSTEI 0
Anonymous
13/03/2003
Eu também tenho interesse nesse tipo de componente, se vc puder enviar para mim também, ficarei muito agradecido...
Meu e-mail é integrasys@ig.com.br
Obrigado!
Meu e-mail é integrasys@ig.com.br
Obrigado!
GOSTEI 0
Fabioalencar_id
13/03/2003
Eu também tenho interesse nesse tipo de componente, se vc puder enviar para mim também, ficarei muito agradecido...
Meu e-mail é fabioalencar_id@yahoo.com.br
Obrigado!
Meu e-mail é fabioalencar_id@yahoo.com.br
Obrigado!
GOSTEI 0
Anonymous
13/03/2003
Se puder enviar para mim, ficaria muito grato.
tunino@piernet.com.br
:)
tunino@piernet.com.br
:)
GOSTEI 0
Anonymous
13/03/2003
Tenho interesse nesse componente se puder me enviar...
svandrad@expressomirassol.com.br
svandrad@expressomirassol.com.br
GOSTEI 0
Bilouro
13/03/2003
eu fiz isso uma vez mas com criação de tedits. setei o seguinte
procedure edit1.onenter(sender: tobject)
begin
(sender as tedit).color:= clyellow;
end;
procedure edit1.onexit(sender: tobject)
begin
(sender as tedit).color:= clwhite;
end;
Ainda não domino a criação de componentes, mas você não pode herdar estas procedures e acrescentar isto?
Bom, Tentei
[]´s
procedure edit1.onenter(sender: tobject)
begin
(sender as tedit).color:= clyellow;
end;
procedure edit1.onexit(sender: tobject)
begin
(sender as tedit).color:= clwhite;
end;
Ainda não domino a criação de componentes, mas você não pode herdar estas procedures e acrescentar isto?
Bom, Tentei
[]´s
GOSTEI 0
E_gama
13/03/2003
Eu precisei criar um componente com essa caracteristica.
Baixe-o no link abaixo:
[url]http://www.salesiano.com.br/egama/TXEdit.zip[/url]
Baixe-o no link abaixo:
[url]http://www.salesiano.com.br/egama/TXEdit.zip[/url]
GOSTEI 0
Anonymous
13/03/2003
Muita gente tá se interessando no meu componente...
mas eu nao visito esse forum com frequencia
portanto que quizer o CFCollEdit terá de mandar um email me pedindo
afmdkqc@ieg.com.br
grato!
mas eu nao visito esse forum com frequencia
portanto que quizer o CFCollEdit terá de mandar um email me pedindo
afmdkqc@ieg.com.br
grato!
GOSTEI 0