Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

public mymass: array of integer - не виден в другом модуле :(


Layner ©   (2006-05-24 16:33:00) 

Здравствуйте господа программисты! Подскажите, как мне правильно объявить массив (определить размерность, заполнить..) в одном unit, чтобы можно было его использовать в другом юните.

В первом модуле я пишу:

 public
   mymass: array of integer;

Во втором пытаюсь его вызвать, но не могу. Любые переменные, которые так же public вызываюся, а массив также нельзя вызвать? Если такого нельзя, может быть в таких случаях надо копировать массив из одного модуля в другой модуль? Или ссылку передать? Заранее благодарю за любой ответ.


Loginov Dmitry   (2006-05-25 08:49:00) [1]

Сергей М. ©   (25.05.06 8:27) [4]
имеет св-во Date ?


Поправлю, Data :)


Сергей М.   (2006-05-25 08:27:00) [2]


> и в массиве (их ID)


Зачем заводить какой-то массив, когда для хранения доп.инф-ции (ID - это и есть доп.инф-ция) каждый TTreeNode и каждый TListItem имеет св-во Date ?


Layner   (2006-05-25 08:16:00) [3]

Здравствуйте!

Все понял! В общем пытался я вызвать этот массив, а так как нагородил прилично, сам не мог понять, почему же не вызывается элемент массива. Кроме того, инспектор кода не показывает ссылку на название массива, хотя если вписать вручную, то компилится без ошибки.

Суть - есть TreeView - дерево папок "вирт. полок в магазине", у каждой папки есть "товары" которые лежат в ListView и в массиве (их ID), и цель "таскать" товары из папки в папку. Ну и сам забыл, что при OnDragDrop у меня папка в дереве становится другая, и массив переициализируется.

Сейчас переделаю, в принципе ничего сложного :)


Игорь Шевченко   (2006-05-24 16:50:00) [4]

Все работает

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
   procedure FormShow(Sender: TObject);
 public
   Bar: array of Integer;
 end;

var
 Form1: TForm1;

implementation
uses
 Unit2;

{$R *.DFM}

procedure TForm1.FormShow(Sender: TObject);
begin
 Foo (Self);
end;

end.


unit Unit2;

interface
uses
 Unit1;

procedure Foo (FormClass: TForm1);

implementation
uses
 Dialogs;

procedure Foo (FormClass: TForm1);
begin
 ShowMessageFmt ('Bar length = %d', [Length(FormClass.Bar)]);
end;

end.


Сергей М.   (2006-05-24 16:36:00) [5]


> массив ..вызвать


Что такое "вызвать массив" ?

Иллюстрируй в коде


Наверх

Титульная страница Поиск, карта сайта Написать письмо