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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов процедуры из другого юнита 
V
    Опции темы
F1reF0x
Дата 4.1.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Содержательный вопрос)).
Смею предположить что ты вызываешь процедуру из другова юнита, и компилятор её не находит?
Тогда посомотри подлючил ли ты этот юнит.
PM MAIL   Вверх
Guedda
Дата 4.1.2006, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Сначала необходимо сделать показ этой функции для других юнитов. Вот пример:
Код

unit Unit1;

interface

uses
  Dialogs;

procedure Foo; //вот в этой части (т.е. между [b]interface & implementation[/b]) мы показываем 
                         //всем модулям, что есть такая функция.

implementation

procedure Foo;
begin
  ShowMessage('Hello!');
end;

end.

После этого в том модуле, в котором ты хочешь использовать твою функцию, подключаешь нужный тебе модуль. Пример:
Код

unit Unit2;

interface

uses
  Unit1;

type
  TForm1 = class(TForm)
    procedure Button1Click(Sender : TObject);
...

implementation

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

end.

Вот так это и делается. А вообще, вопрос не понятный.

Это сообщение отредактировал(а) Guedda - 4.1.2006, 11:27


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Teen
Дата 5.1.2006, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а как просто вызывать процедуру, из одного и того же юнита?
PM MAIL   Вверх
FRAGNATIC
Дата 5.1.2006, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


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

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



Цитата

а как просто вызывать процедуру, из одного и того же юнита?

просто
Код

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

PM MAIL   Вверх
Teen
Дата 5.1.2006, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(FRAGNATIC @ 5.1.2006, 01:28)
Цитата

а как просто вызывать процедуру, из одного и того же юнита?

просто
Код

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

а где ещё надо прописать эту процедуру?
Добавлено @ 01:40
всё спасибо, я разобрался...
PM MAIL   Вверх
FRAGNATIC
Дата 5.1.2006, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


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

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



Цитата

а где ещё надо прописать эту процедуру?

ни где просто написать её
НО она должна находится выше чем её вызывают
тоесть
твоя процедура тут
---
вызов тут
а если хочешь
вызов тут
----
проццедура тут то тогда её надо объявить в секции interface
PM MAIL   Вверх
Guedda
Дата 5.1.2006, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Для правильности необходимо сначала функцию инициализировать:
Код

unit Unit1;

interface

procedure Foo; // Здесь мы инициализировали функцию.

implementation
  // А здесь мы в любом месте можем тыкать код
  // функции и ее применение
  // Допустим, вот так.

procedure Foo2;
begin
  Foo; //вот вызов функции 
end;

procedure Foo; //а вот и код функции
begin
  ShowMessage('Hello world!');
end;
end.



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
YurikGL
Дата 5.1.2006, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Для правильности необходимо сначала функцию инициализировать:

Процедуру procedure Foo2; тоже было бы не плохо инициализировать smile
--------------------
 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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