На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Unit'ы
    Есть Unit1 и Unit2 как сделать что бы они были видны ДРУГ ДРУГУ ?
    Извиняюсь за, возможно, глупый вопрос..
      В секции Uses в каждом прописать другой.
        Про ошибку оворит Счас скажу какая

        Добавлено
        Помечает на на Unit2 в модуле Unit1 и говорит [Fatal Error] Unit1.pas(7): Circular unit reference to 'Unit1'
        Сообщение отредактировано: uk- -
          "Circular unit reference"?

          Ты должен хотя бы в одном модуле подключать второй в разделе Implementation... Если оба модуля подключают друг друга в разделе Interface - это недопустимо...
            В Unit1 написал
            ExpandedWrap disabled
              implementation
              uses
              Unit2;

            А в Unit2 написал
            ExpandedWrap disabled
              interface
               
              uses
              Unit1;

            И Unit2 не видит unit1

            Добавлено
            и при том [Fatal Error] Unit2.pas(7): Could not compile used unit 'Unit1' - указывая на
            ExpandedWrap disabled
              implementation
              uses
              Code;
            Сообщение отредактировано: uk- -
              ExpandedWrap disabled
                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.

              ExpandedWrap disabled
                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.
              Сообщение отредактировано: HyperTerraSoft -
                Unit2 не видет Unit1
                P.S. Либо я идиот :whistle:
                  Цитата uk- @
                  Unit2 не видет Unit1
                  P.S. Либо я идиот :whistle:

                  А зачем тебе вообще эта перекрестная связь нужна?
                    Цитата uk- @
                    Unit2 не видет Unit1
                    P.S. Либо я идиот

                    А что ты понимашь под словом "видит"??
                    Для пользованием какой-нить функцией используй form1.[название функции]
                    Для пользованием какой-нить переменной используй unit1.[название переменной]

                    ЗЫ. Никогда не называй себя идиотом, - потом от этой клички очень трудно отделаться!
                      Цитата
                      А что ты понимашь под словом "видит"??
                      Для пользованием какой-нить функцией используй form1.[название функции]
                      Для пользованием какой-нить переменной используй unit1.[название переменной]

                      Понял Сенкс :whistle:
                      Цитата
                      ЗЫ. Никогда не называй себя идиотом, - потом от этой клички очень трудно отделаться!

                      Я не назвал, а предположил.. :lol:
                        Все гиниальное - просто!
                          Достаточно функцию описать в секции interface, определить в секции implementation, и ссылку на модуль сделать либо в секции interface, либо в секции implementation другого модуля:

                          ExpandedWrap disabled
                            unit Unit2;
                             
                            interface
                             
                            function Test: Boolean;
                             
                            implementation
                             
                            function Test: Boolean;
                            begin
                                Result := False;
                            end;
                             
                            end.


                          ExpandedWrap disabled
                            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.
                            Ну, это уже как вариант - человек просто не знал, как сделать, чтобы юниты видели друг друга!
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0391 ]   [ 16 queries used ]   [ Generated: 17.11.25, 06:18 GMT ]