Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 18:22   #1
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию Форма и дополнительный unit

Добрый вечер!
Я пишу программу и создаю дополнительные unit-ы для отдельных процедур.
В процедуре дополнительного unit-a мне нужно обратиться к основной форме. Подскажите, пожалуйста, как это сделать?
Приведенным ниже образом у меня не получилось. По всей видимости я как-то должен сделать форму публичной:
Код:
Form1.Label1.Caption := "Text"
Код находится в unit2. Form1 соответствует unit1.
nikolai_P вне форума Ответить с цитированием
Старый 06.12.2009, 18:29   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

в дополнительном модуле добавьте uses unit1;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.12.2009, 19:10   #3
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Возникла циклическая ошибка:
[Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1'
nikolai_P вне форума Ответить с цитированием
Старый 06.12.2009, 19:30   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Код:
Unit1
...
implementation

uses Unit2;

{$R *.dfm}
и

Код:
Unit2
...
implementation

uses Unit1;

{$R *.dfm}
А вы в юните 1 "влупили" ссылку на себя саму...
mihali4 вне форума Ответить с цитированием
Старый 06.12.2009, 19:46   #5
nikolai_P
Форумчанин Подтвердите свой е-майл
 
Регистрация: 28.04.2008
Сообщений: 116
По умолчанию

Посмотрите пожалуйста исходник. Я делаю именно так, как Вы и описали.
Результат тот же: [Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1'
publicform.rar
nikolai_P вне форума Ответить с цитированием
Старый 06.12.2009, 20:00   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

не так как описали.
Вложения
Тип файла: zip public form-2.zip (1.4 Кб, 10 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.12.2009, 20:03   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от nikolai_P Посмотреть сообщение
Посмотрите пожалуйста исходник. Я делаю именно так, как Вы и описали
Ну где же "так же" ?
1. У вас в юните 1 объявление -
Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2;
Сравните с тем, как я вам написал...

2. А это - приведет к еще одной ошибке (я добавил двоеточие):
Код:
procedure printText;
begin
  Form1.Label1.Caption := 'Работает';
end;

Последний раз редактировалось mihali4; 06.12.2009 в 20:07.
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дополнительный СОФТ, помогающий программисту chandrasecar Софт 5 15.05.2009 01:43