Como saber se o ActiveControl é do DataSet?
Olá, como eu faço pra saber se o ActiveControl, é descendente do TDataSet?
Desde já agradeço
Desde já agradeço
Fhenrique
Curtidas 0
Respostas
Adriano Santos
28/08/2005
Cara, o que vc quer fazer?
Os componentes descentes do TDataSet são invisíveis, por isso não recebem foco, ou seja, nunca ficam como ActiveControl.
Os componentes descentes do TDataSet são invisíveis, por isso não recebem foco, ou seja, nunca ficam como ActiveControl.
GOSTEI 0
Marco Salles
28/08/2005
Olá, como eu faço pra saber se o ActiveControl, é descendente do TDataSet?
Eu acho que ActiveContro Não é uma classe ... Mas sim um método da classe TWinControl;
Mas voltamos ao foco da pergunta . De maneira geral . Cada classe sabe o seu ancestral imediato , basta utilizar a chamada ao método [b:28b11306ff](Classe.Parent).[/b:28b11306ff] Para saber todos os [b:28b11306ff]descendentes[/b:28b11306ff] de uma classe , podemos percorrer uma lista , ate a classe mais baixa TObject . Porque como sabemos todas as classes derivam da TObject
Exemplo:
procedure RetornarAsClassesDescendentes(Classe :TClass); const QUEBRA = #1310 + ´ |´ + 1310; var listagem : string; begin while (classe <> TObject) do begin listagem := listagem + classe.ClassName + QUEBRA; classe := classe.ClassParent; end; listagem := listagem + ´TObject´; ShowMessage(listagem); end;
procedure TForm1.Button2Click(Sender: TObject); begin RetornarAsClassesDescendentes(TDataSource); end;
GOSTEI 0
Adriano Santos
28/08/2005
[quote:3960af1700=´Marco Salles´]
Eu acho que ActiveContro Não é uma classe ... Mas sim um método da classe TWinControl;
[/quote:3960af1700]
[b:3960af1700]Marco Salles[/b:3960af1700], cara você está certo ActiveControl é um método da classe TWinControl, por isso achei estranho a pergunta do nosso colega.
Abraço
Eu acho que ActiveContro Não é uma classe ... Mas sim um método da classe TWinControl;
[/quote:3960af1700]
[b:3960af1700]Marco Salles[/b:3960af1700], cara você está certo ActiveControl é um método da classe TWinControl, por isso achei estranho a pergunta do nosso colega.
Abraço
GOSTEI 0
Fhenrique
28/08/2005
oops amigos, foi mals, acho q expressei errado.. :d
o que eu queria saber, eh, como eu faço pra descobrir se o componente em foco, eh um DBEdit, DBMemo, saka? os controles com acesso ao banco... :D
[]s
o que eu queria saber, eh, como eu faço pra descobrir se o componente em foco, eh um DBEdit, DBMemo, saka? os controles com acesso ao banco... :D
[]s
GOSTEI 0
Adriano Santos
28/08/2005
Uma alternativa seria no evento onEnter do componente colocar:
Mas existem várias outras formas
ShowMessage(TWinControl(Sender).ClassName);
Mas existem várias outras formas
GOSTEI 0
Fhenrique
28/08/2005
valeu adriano...
:D
[]s
:D
[]s
GOSTEI 0