Fórum Desenvolvimento de componente para Form #204139
04/01/2004
0
Olá amigos,
Estou com um problemão e ninguém consegue me ajudar, espero que aqui encontre alguém capacitado para me dar esta força.
Estou criando um componente (não visual) que, ao coloca-lo no form,
quero que automaticamente ele mude a cor do Form para vermelho, mude o caption do form para ´Mensagem do tempo´, tudo isso em tempo de desenvolvimento... E MAIS ! quero que (em tempo de execução) ao ser pressionado a tecla F6 no form em que esteja este componente seja exibida um ShowMessage(´Mensagem padrão´), alguém sabe como posso fazer isso? como posso acessar as propriedades do Form em que está o componente??? e adicionar ao evento OnKeyPress do form o que mencionei acima... desde já agradeço!!!
Rubens
[b:2b36f8993d]Título editado pelo Moderador (AZ)[/b:2b36f8993d]
Estou com um problemão e ninguém consegue me ajudar, espero que aqui encontre alguém capacitado para me dar esta força.
Estou criando um componente (não visual) que, ao coloca-lo no form,
quero que automaticamente ele mude a cor do Form para vermelho, mude o caption do form para ´Mensagem do tempo´, tudo isso em tempo de desenvolvimento... E MAIS ! quero que (em tempo de execução) ao ser pressionado a tecla F6 no form em que esteja este componente seja exibida um ShowMessage(´Mensagem padrão´), alguém sabe como posso fazer isso? como posso acessar as propriedades do Form em que está o componente??? e adicionar ao evento OnKeyPress do form o que mencionei acima... desde já agradeço!!!
Rubens
[b:2b36f8993d]Título editado pelo Moderador (AZ)[/b:2b36f8993d]
Rubens
Curtir tópico
+ 0
Responder
Posts
05/01/2004
Fórum Vini
Olá,
para mudar o caption e a cor basta sobrecarregar o construtor do componente, modificando o parâmetro AOwner.
Quanto ao evento, basta criar uma procedure com a mesma declaração do evento OnKeyPress e setá-la no evento do proprietário.
Exemplo:
O código foi testado no Delphi 5, mas deve funcionar no Dephi 6 também.
Espero ter ajudado.
Vinicius.
para mudar o caption e a cor basta sobrecarregar o construtor do componente, modificando o parâmetro AOwner.
Quanto ao evento, basta criar uma procedure com a mesma declaração do evento OnKeyPress e setá-la no evento do proprietário.
Exemplo:
unit MudaCor;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TMudaCor = class(TComponent)
private
{ Private declarations }
procedure NovoKeyPress(Sender: TObject;var Key: Char);
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´NUI´, [TMudaCor]);
end;
{ TMudaCor }
constructor TMudaCor.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if not(AOwner is TForm) then raise Exception.Create(´Este componente deve pertencer a um form!!´);
(AOwner as TForm).Color:= clRed;
(AOwner as TForm).Caption:= ´Novo caption´;
(Aowner as TForm).OnKeyPress:= NovoKeyPress;
end;
procedure TMudaCor.NovoKeyPress(Sender: TObject; var Key: Char);
begin
Showmessage(´Mensagem!!!´);
end;
end.O código foi testado no Delphi 5, mas deve funcionar no Dephi 6 também.
Espero ter ajudado.
Vinicius.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)