Форум: "Начинающим";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];
ВнизОбласть видимости??? Найти похожие ветки
← →
Student © (2009-04-27 16:51) [0]Здравствуйте. Мне нужно чтобы массив был видим в модуле unit1.
Код:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit3;
type
TForm1 = class(TForm)
Button1: TButton;
public
procedure asdf;
end;
var
Form1: TForm1;
implementation
procedure TForm1.asdf;
begin
end;
{$R *.dfm}
end.unit Unit2;
interface
type
TSave = record
x : integer;
y : string;
z : real48;
end;
implementation
end.unit Unit3;
interface
uses unit2;
type
TTest = class (TObject)
public
procedure Complete (Flag : boolean; Prohod : integer);
end;
TMatrix = array of TSave;
implementation
var
Matrix : TMatrix;
procedure TTest.Complete(Flag : boolean; Prohod : integer);
begin
Matrix[1].x :=1;
end;
end.
← →
Student © (2009-04-27 16:54) [1]Краткое пояснение. В модуле unit2 находится структура будущего массива.
В модуле unit3 находится объявление массива.
В модуле unit1 нужно реализовать операции над массивом. Как это можно сделать? Самое главное, что тип данных TSave видим, а TMatrix - нет. Что я там напутал?
← →
Ega23 © (2009-04-27 16:55) [2]
> TMatrix = array of TSave;
перенесите это в unit2
← →
Student © (2009-04-27 17:09) [3]Хммм...:-) Точно....
Т.е. как оно получается, в другом примереunit Unit3;
interface
uses unit2;
type
TTest = class (TObject)
public
procedure Complete (Flag : boolean; Prohod : integer);
end;
implementation
var
Matrix : TMatrix;
Test : TTest;
procedure TTest.Complete(Flag : boolean; Prohod : integer);
begin
end;
Тут объявляется Test : TTest; Хочу чтобы Test был виден в модуле unit1unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, unit2, unit3;
type
TForm1 = class(TForm)
Button1: TButton;
public
procedure asdf;
end;
var
Form1: TForm1;
Matrix : TMatrix;
// Test : TTest;
implementation
procedure TForm1.asdf;
begin
SetLength(Matrix,2);
Matrix[1].x :=1;
Matrix[0].y :="sd";
Test. // -->уже ошибка невижу
//если расскоментировать комментарий в var, в этом модуле unit1 - всё ок, Test : TTest; - но это же будет уже другой экземпляр класса?
end;
{$R *.dfm}
end.
← →
Ega23 © (2009-04-27 17:13) [4]Н-да, в голове - полная каша.
Почитайте книжку (хелп) про области видимости.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.06.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c