Unit'ы
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.82] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Unit'ы
|
Сообщ.
#1
,
|
|
|
|
Есть Unit1 и Unit2 как сделать что бы они были видны ДРУГ ДРУГУ ?
Извиняюсь за, возможно, глупый вопрос.. |
|
Сообщ.
#2
,
|
|
|
|
В секции Uses в каждом прописать другой.
|
|
Сообщ.
#3
,
|
|
|
|
Про ошибку оворит Счас скажу какая
Добавлено Помечает на на Unit2 в модуле Unit1 и говорит [Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1' |
|
Сообщ.
#4
,
|
|
|
|
"Circular unit reference"?
Ты должен хотя бы в одном модуле подключать второй в разделе Implementation... Если оба модуля подключают друг друга в разделе Interface - это недопустимо... |
|
Сообщ.
#5
,
|
|
|
|
В Unit1 написал
![]() ![]() implementation uses Unit2; А в Unit2 написал ![]() ![]() interface uses Unit1; И Unit2 не видит unit1 Добавлено и при том [Fatal Error] Unit2.pas(7): Could not compile used unit 'Unit1' - указывая на ![]() ![]() implementation uses Code; |
|
Сообщ.
#6
,
|
|
|
|
![]() ![]() unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} end. ![]() ![]() unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(TForm) private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} end. |
|
Сообщ.
#7
,
|
|
|
|
Unit2 не видет Unit1
P.S. Либо я идиот |
|
Сообщ.
#8
,
|
|
|
|
Цитата uk- @ Unit2 не видет Unit1 P.S. Либо я идиот ![]() А зачем тебе вообще эта перекрестная связь нужна? |
|
Сообщ.
#9
,
|
|
|
|
Цитата uk- @ Unit2 не видет Unit1 P.S. Либо я идиот А что ты понимашь под словом "видит"?? Для пользованием какой-нить функцией используй form1.[название функции] Для пользованием какой-нить переменной используй unit1.[название переменной] ЗЫ. Никогда не называй себя идиотом, - потом от этой клички очень трудно отделаться! |
|
Сообщ.
#10
,
|
|
|
|
Цитата А что ты понимашь под словом "видит"?? Для пользованием какой-нить функцией используй form1.[название функции] Для пользованием какой-нить переменной используй unit1.[название переменной] Понял Сенкс Цитата ЗЫ. Никогда не называй себя идиотом, - потом от этой клички очень трудно отделаться! Я не назвал, а предположил.. |
|
Сообщ.
#11
,
|
|
|
|
Все гиниальное - просто!
|
|
Сообщ.
#12
,
|
|
|
|
Достаточно функцию описать в секции interface, определить в секции implementation, и ссылку на модуль сделать либо в секции interface, либо в секции implementation другого модуля:
![]() ![]() unit Unit2; interface function Test: Boolean; implementation function Test: Boolean; begin Result := False; end; end. ![]() ![]() unit Unit3; interface uses Windows; implementation uses Unit2; procedure MyProc; begin if Test then MessageBox(0,'True','Внимание',MB_OK) else MessageBox(0,'False','Внимание',MB_OK) end; end. |
|
Сообщ.
#13
,
|
|
|
|
Ну, это уже как вариант - человек просто не знал, как сделать, чтобы юниты видели друг друга!
|