Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема с объявлением типа


Автор: Delphist 27.9.2007, 11:15
у меня есть модуль uMy;

Код

unit uMy;

interface
uses Windows, Messages, SysUtils, uMyOther; 

type
  TMyForm = class(TForm)
   ...
  private
    MyObj: TMyObj;
  ...



И у меня есть модуль uMyOther

Код

unit uMyOther;

interface
uses Windows, Messages, SysUtils;

type
  //ВОТ ЗДЕСЬ НУЖНО ОБЪЯВИТЬ ТИП, НО КАК ЭТО СДЕЛАТЬ?  
  CMyForm = class of TMyForm;

type
  TMyObj = class(TObject)
  ...

Автор: Snowy 27.9.2007, 11:36
А что мешает?

Автор: skyboy 27.9.2007, 11:41
Цитата(Snowy @  27.9.2007,  10:36 Найти цитируемый пост)
А что мешает?

наверное, то, что модуль uMyOther ничего не знает о типе TMyForm, который объявлен в uMy.  smile 
Если речь об этом, Delphist,  то я не понимаю, почему бы тебе не добавить uMy в список uses модуля uMyOther. Да и вообще, тип class of TMyForm лучше объвить в том же модуле, где, собственно и объявлен TMyForm.

Автор: Delphist 27.9.2007, 12:02
Цитата(skyboy @  27.9.2007,  12:41 Найти цитируемый пост)
наверное, то, что модуль uMyOther ничего не знает о типе TMyForm, который объявлен в uMy.   
Если речь об этом, Delphist,  то я не понимаю, почему бы тебе не добавить uMy в список uses модуля uMyOther. Да и вообще, тип class of TMyForm лучше объвить в том же модуле, где, собственно и объявлен TMyForm. 

Читаем здесь проблему более менее решил:
http://forum.sources.ru/index.php?act=ST&f=11&t=204572&st=0

Автор: BaD_SeCt0R 27.9.2007, 12:07
Цитата(skyboy @  27.9.2007,  11:41 Найти цитируемый пост)
почему бы тебе не добавить uMy в список uses модуля uMyOther

Насколько я знаю, так сделать нельзя. Взаимное использование модулей возможно только в разделе implementation.

Автор: skyboy 27.9.2007, 12:12
Цитата(BaD_SeCt0R @  27.9.2007,  11:07 Найти цитируемый пост)
Насколько я знаю, так сделать нельзя.

угу. сорри, просмотрел взаимную рекурсию.
но, если один модуль ссылается на другой модуль, а другой модуль должен ссылаться на первый, непонятно зачем разделять код? все равно все будет жетско взаимосвязанно... сделать сразу общий код в отдельный модуль - и все.

Автор: Delphist 27.9.2007, 14:12
Цитата(skyboy @  27.9.2007,  13:12 Найти цитируемый пост)
угу. сорри, просмотрел взаимную рекурсию.
но, если один модуль ссылается на другой модуль, а другой модуль должен ссылаться на первый, непонятно зачем разделять код? все равно все будет жетско взаимосвязанно... сделать сразу общий код в отдельный модуль - и все

Я ж говорил что должно быть в разных модулях, а как я решил проблему читай последний пост http://forum.sources.ru/index.php?act=ST&a...204572&st=0 

Автор: skyboy 27.9.2007, 14:29
Цитата(Delphist @  27.9.2007,  13:12 Найти цитируемый пост)
Я ж говорил что должно быть в разных модулях

религия такая? 
Цитата(Delphist @  27.9.2007,  13:12 Найти цитируемый пост)
 а как я решил проблему читай последний пост

если тебе даже влом привести решение твоей же проблемы для тех, кто столкнется с аналогичными трудностями... 
ну-ну

Автор: Delphist 27.9.2007, 17:26
Цитата(skyboy @  27.9.2007,  15:29 Найти цитируемый пост)
религия такая? 

Нет не религия, а правильный подход модульного программирования.
Если ума нет, то всю прогу можно разместить в одном юните. Конечно, елси проект состоит из одного окна и двух кнопок, то твой метод подходит.

Добавлено @ 17:30
Цитата(skyboy @  27.9.2007,  15:29 Найти цитируемый пост)
если тебе даже влом привести решение твоей же проблемы для тех, кто столкнется с аналогичными трудностями... 
ну-ну 

Не влом, просто не вижу смыслы плодить готовую информацию на десяти форумах.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)