Fórum sender? #306791
27/12/2005
0
unit UDataModule;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDm = class(TDataModule)
function Conectar() : boolean;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Dm: TDm;
implementation
{$R *.dfm}
procedure TDm.DataModuleCreate(Sender: TObject);
begin
end;
end.na procedure datamodulecreate o que significa o parametro sender???
como aplico isso em outras funcoes e procedures???
[]s
Fernando_cunha
Curtir tópico
+ 0Post mais votado
27/12/2005
Implemente o evento [b:8bfc797193]OnClick [/b:8bfc797193]do primeiro botão, digitando o código a seguir:
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage((Sender as TButton).Caption); end;
Depois associe aos outros dois botões o mesmo evento [b:8bfc797193]OnClick[/b:8bfc797193], clicando na aba [b:8bfc797193]Events [/b:8bfc797193]do [b:8bfc797193]Object Inspector[/b:8bfc797193] e selecionando na combobox [b:8bfc797193]Button1Click[/b:8bfc797193].
Teste a aplicação e veja que vc tem o mesmo manipulador de evento para os três botões, e ele reage a cada botão individualmente.
Se vc precisar verificar se Sender é um objeto específico, pode usar a propriedade [b:8bfc797193]Tag[/b:8bfc797193], ou então uma comparação direta, tipo:
if Sender = TButton1 then ...
Se vc for atribuir o mesmo manipulador de evento para objetos de tipos diferentes, então vc deve verificar com o operador [b:8bfc797193]is[/b:8bfc797193] antes de usar [b:8bfc797193]Sender[/b:8bfc797193], para poder fazer um typecast válido.
if Sender is TButton then... else if Sender is TEdit then...
[]´s
Michael
Gostei + 1
Mais Posts
27/12/2005
Michael
[b:3c2c64b057]Sender [/b:3c2c64b057]aparece em quase todos os eventos na VCL. Ele indica o componente que disparou o evento. Como é do tipo TObject, vc pode fazer um typecast para qualquer outra classe existente. Vc pode ter vários botões, por exemplo, associados ao mesmo evento OnClick, e pelo parâmetro Sender saber qual deles foi clicado.
[]´s
Gostei + 0
27/12/2005
Fernando_cunha
poderia me dar um exemplo??
[]s
Gostei + 0
27/12/2005
Martins
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage((Sender as TButton).Caption); end;
if Sender = TButton1 then ...
if Sender is TButton then... else if Sender is TEdit then...
Bom exemplo sobre a utilização de [b:d93df16c5a]Sender[/b:d93df16c5a]. Bem básico, muito bom
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)