Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

Referência de classe circular Encontre agências semelhantes


oomneeq   (2001-12-14 21:26) [0]

Tal problema
T1 = classe
F: T2;
end;
T2 = classe
F: T1;
end;
tão decidido
T2 = classe;
T1 = classe
F: T2;
end;
T2 = classe
F: T1;
end;
Pergunta: Existe uma solução para o caso quando as classes T1 e T2
localizado na unidade diferente "ah?
Algo não funciona para mim:



Иван Шихалев   (2001-12-14 22:03) [1]

Não, claro. Por quê?

Você só pode declarar o ancestral da T2 no escopo para T1.



oomneeq   (2001-12-17 12:00) [2]

A questão geralmente não é ociosa.
Eu quero que as classes sejam referenciadas mutuamente, mas por alguma razão elas não podem ser colocadas em um módulo - elas são TForm.
Enquanto faço isso através de um intermediário - uma certa classe que conhece ambos,
e cada um deles o conhece. Através deste intermediário, eles são acessíveis uns aos outros.
Jogue a ideia de um conhecimento direto das classes acima.
Bem, pelo menos, indique onde cavar :)



Fellomena   (2001-12-17 12:36) [3]

Eu não posso dizer exatamente como isso pode ser feito no Delphi, mas em C ++ há classes amigáveis,
isto é classes declaradas como amigáveis ​​têm acesso a todos os campos (métodos?) de outra classe, mesmo aqueles que
Seções privadas são descritas. Eu sei que em Delphi todas as classes localizadas em uma unidade são consideradas amigáveis, mas aqui está como
também para unidades diferentes ???




Иван Шихалев   (2001-12-17 19:17) [4]

O problema é que as classes devem ser descritas na seção interface (a propósito, o acesso a campos privados, como b, não foi discutido), e links cíclicos nesta seção são estritamente proibidos. A maneira mais correta:

unidade Unit1; interface usa ; ; digitar TForm1 = classe (TForm) fldForm2: TForm; procedimento doSomeThing; fim ; implementação usa Unit2; procedimento TForm1.doSomeThing; começar (fldForm2 como TForm2) .TForm2OnlyProperty: = AnyValue; fldForm2.TFormProperty: = AnotherValue fim ; fim .

E exatamente da mesma maneira - Unit2, apenas para mudar a unidade com os dois.



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.57 MB
Hora: 0.022 c
1-22004
KhLexa
2001-12-17 17:57
2002.01.08
Glitches


1-22027
vencedor
2001-12-18 09:49
2002.01.08
precisa de um componente para exibir páginas HTML


4-22502
Alexander
2001-11-06 11:00
2002.01.08
Como obter um ícone para uma extensão registrada no sistema


3-21943
Oleon
2001-12-05 10:54
2002.01.08
Como usar o TableLevel?


14-22333
Nikolay
2001-11-03 20:12
2002.01.08
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol