Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> array в другом формуляре?? использовать array в другом формуляре? 
:(
    Опции темы
B0M3R
  Дата 24.1.2004, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.1.2004
Где: Германия, Гамбuрг

Репутация: нет
Всего: нет



как можно array которыж я создал в Form1 использовать/вычитовать в Form2?
PM MAIL WWW ICQ   Вверх
dm9
Дата 24.1.2004, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



1. array нельзя создать в Form1, его можно создать в модуле, содержащем Form1.
2. Использовать твой массив можно в любом другом модуле, поставив после строки
Код
implementation

этого модуля строку
Код
Uses Unit1;

Если Form1 - в другом модуле, пишешь вместо Unit1 имя этого самого модуля.

Это сообщение отредактировал(а) dm9 - 24.1.2004, 02:42
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 24.1.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Более культурно создавать массив в Form2 и работать с ним в Form1 и Form2!!!

Т. К. может получиться ситуация, что Unit1 обращается к Unti2, а Unti2 - к Unit1, типа зацыкливания... Программеры говорят, что это плохо! biggrin.gif
PM   Вверх
December
Дата 24.1.2004, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Pakshin A. S. Это нормально. У меня почти все проекты по этой схеме работают. Ничего страшного нет.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 24.1.2004, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



А я помню, что мне строго настрого запрещали такую дребедень...
PM   Вверх
Pakshin A. S.
Дата 24.1.2004, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Ради прикола написал
в разделе interface Unit'а 1 - uses unit2
в разделе interface Unit'а 2 - uses unit1

Компилятор:
Цитата

[Fatal Error] Unit1.pas(6): Circular unit reference to 'Unit1'


А вот если один из модулей писать в разделе implementation, то всё в полном порядке! От сюда следует, что всё-таки не при всех случаях уместно ссылаться друг на друга...
PM   Вверх
December
Дата 24.1.2004, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата
А я помню, что мне строго настрого запрещали такую дребедень...
Мне тоже запещали мороженое кусать.
Цитата
А вот если один из модулей писать в разделе implementation, то всё в полном порядке! От сюда следует, что всё-таки не при всех случаях уместно ссылаться друг на друга...

Отсюда следует, что надо правильно указывать кто кого и как использует. От этого зависит порядок компиляции.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
B0M3R
Дата 25.1.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.1.2004
Где: Германия, Гамбuрг

Репутация: нет
Всего: нет



Цитата(dm9 @ 24.1.2004, 00:41)
Использовать твой массив можно в любом другом модуле, поставив после строки
Код
implementation

этого модуля строку
Код
Uses Unit1;

Если Form1 - в другом модуле, пишешь вместо Unit1 имя этого самого модуля.

Я написал так как описал dm9, но как можно использовать потом масивы?
PM MAIL WWW ICQ   Вверх
December
Дата 25.1.2004, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Просто берёшь и используешь.
Ечли всё правильно указал, то проблем не будет, если нет - выкладывай свои заголовки.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
dm9
Дата 26.1.2004, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



PS Массив должен быть описан в секции interface твоего Unit1

Пример.

Код
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;
 T : array [0..9] of Integer; {Описывать здесь - в секции interface!!!}

implementation

{$R *.dfm}

end.


Использовать так:
Код
unit Unit2;

interface

uses
 ..., Unit1;

type
 ...

var
 ...

implementation

procedure MyProc;
begin
  T[1] := 2;
  {Или если у тебя в описании Unit2 или в переменных процедуры
   MyProc есть уже переменная T, тогда ТЕМ массивом пользоваться так:}
  Unit1.T[1] := 2;
end;

end.


Вариант 2:
Код
unit Unit2;

interface

uses
 ...

type
 ...

var
 ...

implementation

Uses Unit1; //Подключение модуля переносим сюда.

procedure MyProc;
begin
  T[1] := 2;
  {Или если у тебя в описании Unit2 или в переменных процедуры
   MyProc есть уже переменная T, тогда ТЕМ массивом пользоваться так:}
  Unit1.T[1] := 2;
end;

end.

PM MAIL ICQ   Вверх
x77
Дата 26.1.2004, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



dm9, одного не пойму, почему ты решил, что массив нельзя объявить в форме? по-моему, без проблем. "на форме" - да, формально - нельзя, и то это уже вопрос визуализации, при желании - [censored34! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме] вопрос, нарисуем - будет жить. а в качестве свойства или просто в секцмм прайвэт - да ради бога.


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Medved
Дата 27.1.2004, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(December @ 24.1.2004, 20:09)
Pakshin A. S. Это нормально. У меня почти все проекты по этой схеме работают. Ничего страшного нет.

Это называется перекрестные ссылки - это не есть good. Считается полохим стилем. Возможно возникновение трудно находимых ошибок и путаница.

Во почитайте, здесь все сказано: Хороший стиль программирования в Borland Delphi


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
B0M3R
Дата 27.1.2004, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 22.1.2004
Где: Германия, Гамбuрг

Репутация: нет
Всего: нет



так, писать в масив получяется.

неполучается с него в form3 вычитовать!?
PM MAIL WWW ICQ   Вверх
December
Дата 27.1.2004, 03:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



B0M3R повторяюсь, приведи код.
Pegas
Цитата
Во почитайте, здесь все сказано: Хороший стиль программирования в Borland Delphi
стиль-стилем, но в хорошо продуманном приложении путаницы не возникнет. Кстати, какие альтернативы есть у данного метода?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Medved
Дата 27.1.2004, 04:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(December @ 27.1.2004, 06:53)
Кстати, какие альтернативы есть у данного метода?

Использовать промежуточный модуль, обычно (TDataModule) как для хранения глобальных переменных, так и для хранения различных невизуальных компонентов (TQuery, ImageList и т.д.).

Цитата(December @ 27.1.2004, 06:53)

стиль-стилем, но в хорошо продуманном приложении путаницы не возникнет.


Если хорошо продумать приложение, то как раз-то к такому выводу и придешь.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1158 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.