![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет.
Объясните мне пожалуйста, как описать глобальные константы и типы данных. У меня не выходит. Подробности: у меня есть несколько модулей. один из них главный (unit1) в нем я описываю тип данных и константу: Цитата:
как мне определить переменную в других модулях типа "type1", а также другую переменную как константу "const1"? |
|
#2
|
|||
|
|||
|
ты в других модулях подлючил этот модуль где определил тип иконстанту?
Других припядствий нет type 1 кстати запись, а вот это Цитата:
явно не ее. |
|
#3
|
|||
|
|||
|
ДА! Модули я подключил! Обычные переменные описанные после VAR видно в других модулях, а типы данных и константы нет!
Цитата:
ЕЩЕ РАЗ: глобальные перемнные работают. почему не получается сделать тоже самое с типами и константами? |
|
#4
|
|||
|
|||
|
в каком Uses ты подключил модули? (их два один сверху другой ниже) и где пытаешься использовать? (если модуль подключен ниже чем ты пытаешься использовать ты его не увидишь)
|
|
#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
|
|||
|
|||
|
спасибо!
![]() |