Qual Campo e qual Índice foi usado da Classe Ancestral?
tenho a seguinte estrutura de classes em um Form
declaro também uma variável do tipo array de TConfronto
quando vou disparar o evento Add_Gol faço o seguinte:
preciso saber duas doisas:
1- Dentro do procedimento Add_Gol como faço para saber se quem disparou foi o Clube_1 ou o Clube_2?
2- Dentro do procedimento Add_Gol como faço para saber qual o índice de Confrontos? (neste caso 0)?
type TClube = class GolsCod: array of Smallint; ... ... Public procedure Add_Gol (Cod_Jogador: Smallint); end; type TConfronto = class Clube_1: TClube; Clube_2: TClube; ... ... end;
declaro também uma variável do tipo array de TConfronto
implementation uses var Confrontos: array of TConfronto;
quando vou disparar o evento Add_Gol faço o seguinte:
Confrontos[0].Clube_1.Add_Gol(10);
preciso saber duas doisas:
1- Dentro do procedimento Add_Gol como faço para saber se quem disparou foi o Clube_1 ou o Clube_2?
2- Dentro do procedimento Add_Gol como faço para saber qual o índice de Confrontos? (neste caso 0)?
Raserafim
Curtidas 0
Respostas
Siam
22/11/2005
1- Dentro do procedimento Add_Gol como faço para saber se quem disparou foi o Clube_1 ou o Clube_2?
Pelo Self do método.2- Dentro do procedimento Add_Gol como faço para saber qual o índice de Confrontos? (neste caso 0)?
Passe o índice como parâmetro.GOSTEI 0
Raserafim
22/11/2005
siam não dá certo não.
pelo Self consigo saber a classe, mas não o campo que a chamou.
pelo Self consigo saber a classe, mas não o campo que a chamou.
GOSTEI 0
Siam
22/11/2005
Passando o índice:Isso não resolve ?
Confrontos[0].Clube_1.Add_Gol(10, 0); procedure TClube.Add_Gol (Cod_Jogador: Smallint; ind:Integer); begin if Self = Confrontos[ind].Clube1 then ... end;
GOSTEI 0
Raserafim
22/11/2005
valeu siam, assim deu certo.
mas o índice realmente tenho que passar como parâmetro? ou dá pra descobrir tb?
mas o índice realmente tenho que passar como parâmetro? ou dá pra descobrir tb?
GOSTEI 0
Siam
22/11/2005
Da maneira que vejo, vc pode não passar o índice, mas terá que fazer um [b:e154df7078]for[/b:e154df7078] no array de Confrontos até chegar no objeto desejado:Assim quando ocorrer o Break, o [b:e154df7078]i[/b:e154df7078] será o índice.
procedure TClube.Add_Gol (Cod_Jogador: Smallint); var i:Integer; begin for i := 0 to High(Confrontos) do begin if Self = Confrontos[i].Clube1 then begin ... Break; end else if Self = Confrontos[i].Clube2 then begin ... Break; end end; end;
GOSTEI 0
Raserafim
22/11/2005
humm valeu siam. a solução deu certinho.
GOSTEI 0