OFFTOPIC - Pq ainda non tem Ctrl Click no inherited?
19/01/2006
0
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:
Osocram
Posts
19/01/2006
Michael
[b:5d1e190f4d]Ctrl + Click[/b:5d1e190f4d] não age sobre palavras-reservadas da [b:5d1e190f4d]Delphi Language[/b:5d1e190f4d], e [b:5d1e190f4d]inherited [/b:5d1e190f4d]é uma delas. Porém, se vc escrever ´corretamente´ seu código, a combinação mouse-teclado funciona:
procedure TFormHerdado.FormShow(Sender: TObject); begin inherited FormShow(Sender); ... end;
Segure [b:5d1e190f4d]Ctrl [/b:5d1e190f4d]e clique sobre [b:5d1e190f4d]FormShow [/b:5d1e190f4d]que o Delphi irá abrir o código fonte do arquivo pai, posicionando o cursor sobre o método.
[]´s
19/01/2006
Titanius
procedure TFormHerdado.FormShow(Sender: TObject); begin inherited FormShow(Sender); ... end;
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
19/01/2006
Michael
Na maioria dos casos, quando apenas se quer executar o código da classe ancestral, basta usar [b:5fbc9faf79]inherited[/b:5fbc9faf79], 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:
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 [b:5fbc9faf79]inherited [/b:5fbc9faf79]com o nome completo da rotina:
function TMinhaClasse2.ObterHora: TTime; begin Result := inherited ObterHora; // Se deixar só inherited nem compila... end;
Entendido? ;-)
[]´s
19/01/2006
Osocram
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...
Clique aqui para fazer login e interagir na Comunidade :)