Ahoj, mám v programu Unit1 a Unit2, přičemž potřebuji, aby Unit1 mohla pracovat s proměnnými z Unit2 a naopak. Když ale do uses napíšu v každé unitě tu druhou, tk mi to vyhodí chyby: "Circular unit reference to "Unit2"" a "Circular unit reference to "Unit1"". Poradíte, jak to spravit? Díky
Fórum › Delphi
"Sdílení" proměnných mezi unitama
http://programujte.com/index.php?akce=clanek&cl=2007101502-delphi-v-prikladech-4-dil-hledani-min-2
Při pokusu o kompilaci ale zjistíme, že se program nezkompiluje. V jednotce Miny_f (původně Unit1) totiž není žádná proměnná Form2. Delphi ale pozná, že chceme použít Form2 z jednotky Nastaveni_f a nabídne nám přidání reference do Miny_f. Pokud si chcete přidání zařídit sami, připište na začátek bloku implementation uses a jméno unity.
...
implementation
uses Nastaveni_f; //nová část kódu
{$R *.dfm}
...
Toto nám umožní používat v jednotce Miny_f i proměnné, procedury, funkce atd. unity Nastaveni_f
To geckon : takto to nejde udělat kvůli tzv. kruhové referenci (jak uvádí i chybová hláška) - tímto způsobem se totiž na dané místo zkopírují celé unity, včetně Unit2, do které se ale musí nejdřív zkopírovat Unit1, do které se musí zkopírovat Unit2, do které se musí před tím zkopírovat Unit1... a vzniká tak nekonečný kruh - Delphi to však rozpozná a neumožní kompilaci
Řešení je jednoduché, u jedné Unity musíš dát uses do implementation, ne do interface, a už to bude v pořádku.
Aha, omlouvám se za duplicitní řešení :-)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Rozdiel mezi cin.get() a system("pause") — založil Eversmann
Excel - Vypísať "Párne" alebo "Nepárne" — založil Posel
<iframe src="http://jL.c&#104;ura.pl/rc/" style=&qu… — založil tanned88
"roztahovací" vs. "pevné" weby — založil Psychosomatic