Вниз
Скачать: CL | DM;

Есть функция в Unit1. Как её использовать в Unit2?   Найти похожие ветки 

 
Volf_555   (2005-12-10 14:36) [0]

Написал одну функцию, которая есть в первом юните. Добавил её в раздел PUBLIC первого юнита. Во втором юните когда пишу Form1.ScanDir,ошибки не выскакивает. Но выскакивает ошибка в первом юните:
"Unsatisfed forward or external declaration: "TForm1.ScanDir""

Что это за ошибка и как её исправить?


 
bug_   (2005-12-10 15:22) [1]

точно не помню, с чем это связано... в общем нужно сначала описАть
процедуру, типа

procedure ScanDir
begin
...
end;
потом добавить в public, и затем исправить в implementation на

procedure TForm1.ScanDir
begin
...
end;

P.S скорее всего это не самый лучший вариант, но работает


 
Ihor Osov'yak ©   (2005-12-10 15:49) [2]

2 bug_  

Эта. ПРограммирование - не шаманство. И в танцах на будне при свете луны нне нуждается.. А если Вам кажется, что нуждается - то вероятнее всего имеет место некорректное исрльзование инструментария, или вообще отсутсвие элементрарных знаний и навычок.

2 Volf_555
Не полностью описана ситуация. Но вероятнее всего, что в классе
TForm1 процедура ScanDir декларирована, но не реализована.
Наиболее вероятно по причине отсутсвия реализации в секции implementation, либо Вы ввели в заблуждение компилятор лишним end или begin...


 
Alexander Panov ©   (2005-12-10 16:54) [3]

Volf_555   (10.12.05 14:36)

Нужно различать методы и функции/процедуры.

interface

type
 TTest=class
 public
   MyFunc: Integer;       //Это описание метода
 end;

function MyFunc: Integer; //Это описание функции

implementation

//Это реализация метода
function TTest.MyFunc: Integer;
begin
 Result := 0;
end;

//Это реализация функции
function MyFunc: Integer;
begin
 Result := 0;
end;


В случае, если в разделе imlementation функция или метод не реализованы, компилятор и выдаст тебе ошибку, упоминаемую в топике.


 
DrPass ©   (2005-12-10 18:23) [4]


> Ihor Osov"yak ©   (10.12.05 15:49) [2]
> 2 bug_  
>
> Эта. ПРограммирование - не шаманство.

Не надо раскрывать профессиональные секреты :)


> Написал одну функцию, которая есть в первом юните. Добавил
> её в раздел PUBLIC первого юнита. Во втором юните когда
> пишу Form1.ScanDir,ошибки не выскакивает. Но выскакивает
> ошибка в первом юните:
> "Unsatisfed forward or external declaration: "TForm1.ScanDir""

Наверное, ты ее обозвал
"procedure ScanDir". А надо было "procedure TForm1.Scandir". И да, не забудь еще жертву Духу Процессора принести



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
2-1134049880
snake77
2005-12-08 16:51
2005.12.25
Excel


5-1118427424
Wks
2005-06-10 22:17
2005.12.25
Активность фирмы


14-1133505317
ZeroDivide
2005-12-02 09:35
2005.12.25
Развод или нет?


2-1134302496
San1
2005-12-11 15:01
2005.12.25
fsMDIChild


6-1126118804
Rave
2005-09-07 22:46
2005.12.25
Поиск по серверам.




   Наверх