Array
(
)

OFFTOPIC - Pq ainda non tem Ctrl Click no inherited?

Osocram
   - 19 jan 2006

Ola amigos....

Eu trabalho atualmente c o Delphi6, estava dando uma olhada no delphi2006 p ver se iriam colocar isso..... e ainda non o fizeram..

Eh o seguinte.. qdo agente faz um formulario pai.. e herda ele... no filho aparece o famoso ´Inherited´... Mas seria um bom recurso se pudessemos apertar o Ctrl+click no inherited e ele abrir o formulario pai e direcionar no procedimento certo... como ocorre c outros procedimentos em geral...

Serah q tem algum motivo mto forte p a Borland non ter colocado este recurso? :roll:


Michael
   - 19 jan 2006

Olá!

Ctrl + Click não age sobre palavras-reservadas da Delphi Language, e inherited é uma delas. Porém, se vc escrever ´corretamente´ seu código, a combinação mouse-teclado funciona:

#Código


procedure TFormHerdado.FormShow(Sender: TObject);
begin
inherited FormShow(Sender);
...
end;


Segure Ctrl e clique sobre FormShow que o Delphi irá abrir o código fonte do arquivo pai, posicionando o cursor sobre o método.

[]´s


Titanius
   - 19 jan 2006


Citação:
Olá!

Ctrl + Click não age sobre palavras-reservadas da Delphi Language, e inherited é uma delas. Porém, se vc escrever ´corretamente´ seu código, a combinação mouse-teclado funciona:

#Código


procedure TFormHerdado.FormShow(Sender: TObject);
begin
inherited FormShow(Sender);
...
end;


Segure Ctrl e clique sobre FormShow que o Delphi irá abrir o código fonte do arquivo pai, posicionando o cursor sobre o método.

[]´s
Fala michael blz?

Ué, como se usa o inherited?

é assim? inherited FormShow(Sender);
ou somente inherited?
ou tanto faz?


eu uso so o inherited mesmo... :D
[]s


Michael
   - 19 jan 2006

Olá Titanius!

Na maioria dos casos, quando apenas se quer executar o código da classe ancestral, basta usar inherited, que o Delphi irá entender o que chamar, pelo contexto do código.

Há situações, porém, que vc pode querer passar um valor diferente para o método-pai. Veja:

#Código

TMinhaClasse = class
public
procedure Calcular(X: Integer); virtual;
function ObterHora: TTime; virtual;
end;

TMinhaClasse2 = class(TMinhaClasse)
public
procedure Calcular(X: Integer); override;
function ObterHora: TTime; override;
end;

(...)

procedure TMinhaClasse2.Calcular(X: integer);
begin
inherited Calcular(X + 10); // Passando um valor diferente para o método-pai
end;


E, por fim, quando o método é uma função, obrigatoriamente vc tem que chamar inherited com o nome completo da rotina:

#Código

function TMinhaClasse2.ObterHora: TTime;
begin
Result := inherited ObterHora; // Se deixar só inherited nem compila...
end;


Entendido? ;-)

[]´s


Titanius
   - 19 jan 2006

Entendidissimo Michael... :D

Valeu...


[]s


Osocram
   - 19 jan 2006

Michael

Mto interessante sua resposta.. eu realmente disconhecia isso...

Eu testei e funcou aqui tbm... mto legal... agora temos q falar p o pessoal da Borland deixar isso automatico, neh?

Pelo menos no meu caso isso ajudaria mto... pq se eu tiver q nomear todos Inherited aqui daria mto trabalho tbm...

Vamos ver a prox versao d delphi se vem c isso
heheheh :lol:

Mas valeu a sua resposta... vou usar em alguns lugares q eu uso mto esse Ctrl+click...