![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет.
Объясните мне пожалуйста, как описать глобальные константы и типы данных. У меня не выходит. Подробности: у меня есть несколько модулей. один из них главный (unit1) в нем я описываю тип данных и константу: Цитата:
как мне определить переменную в других модулях типа "type1", а также другую переменную как константу "const1"? |
#2
|
|||
|
|||
![]() ты в других модулях подлючил этот модуль где определил тип иконстанту?
Других припядствий нет type 1 кстати запись, а вот это Цитата:
явно не ее. Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#3
|
|||
|
|||
![]() ДА! Модули я подключил! Обычные переменные описанные после VAR видно в других модулях, а типы данных и константы нет!
Цитата:
ЕЩЕ РАЗ: глобальные перемнные работают. почему не получается сделать тоже самое с типами и константами? |
#4
|
|||
|
|||
![]() в каком Uses ты подключил модули? (их два один сверху другой ниже) и где пытаешься использовать? (если модуль подключен ниже чем ты пытаешься использовать ты его не увидишь)
Delphi - это лишь инструмент, а что ты сможешь создать при помощи этого инструмента, зависит исключительно от тебя. |
#5
|
|||
|
|||
![]() Нипонимаю в чем проблема? Все работает идеально... Гляди первый Юнит
(специально оставил все) Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; const Const1 = 2345; type Type1 = record i: integer; st: string; end; TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end. Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit1; // добавленный юнит type TForm2 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public D: Type1; // множно использовать здесь { Public declarations } end; var Form2: TForm2; K: Type1; // здесь implementation {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); var A: Type1; // и здесь B: Integer; begin B := Const1; A.i := B; A.st := 'Ы'; K.i := 1222; K.st := A.st; end; end. |
#6
|
|||
|
|||
![]() Спасибо большое за пример!
нашел ошибку: Цитата:
объясните пожалуйста разницу, чтобы в будущем не путаться |
#7
|
|||
|
|||
![]() Всё очевидно.
Цитата:
Например, название модуля дано в разделе implementation, а выше есть переменная D типа Type1. Компилятор и рад бы понять, что это тип Unit1.Type1, да не успел ещё узнать, что в программе будет такой модуль Unit1. Компилятор перерыл все описанные ранее модули и не нашёл в них такой тип Type1, поэтому выдаст ошибку. Последний раз редактировалось AlexSku, 31.10.2008 в 11:50. |
#8
|
|||
|
|||
![]() спасибо!
![]() |