Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

Error   Найти похожие ветки 

 
DelphiNew   (2003-08-27 13:31) [0]

Помогите если сможете, есть функцию Space я прописал её в type но выдаётся ошибка
Unsatisfied forward or external declaration: "TFrmMain.Space"
из-за чего может быть такая ошибка? Нужно ли прописывать функцию ещё где-то???


 
HolACost!   (2003-08-27 13:32) [1]

А ты её реализацию в Имплементатион написал?


 
DelphiNew   (2003-08-27 13:34) [2]

Да


 
Романов Р.В.   (2003-08-27 13:34) [3]

Разные параметры в описании и реализации функции


 
DelphiNew   (2003-08-27 13:35) [4]

function Space(InpInt:integer; symbol:Char):String;
и там и там


 
HolACost!   (2003-08-27 13:37) [5]

function TFrmMain.Space(InpInt:integer; symbol:Char):String;
needs in implementation


 
Zacho   (2003-08-27 13:38) [6]


> DelphiNew © (27.08.03 13:35) [4]

Надо: function TFrmMain.Space(InpInt:integer; symbol:Char):String;
Это же просто функция, а метод класса.


 
Zacho   (2003-08-27 13:39) [7]

Следует читать " не просто функция"
:)


 
DelphiNew   (2003-08-27 13:43) [8]

2HolACost
В implementation прописано тоже самое


 
HolACost!   (2003-08-27 13:45) [9]

Что значит тоже самое? Двай кусок ода, где у тебя проблема...
Впринципе эта ошибка о том, что не найдена реализация данного метода!


 
DelphiNew   (2003-08-27 13:51) [10]

2 ZAcho
если я добавляю FrmMain то выводится ошибка expected "=" but"(" found


 
Zacho   (2003-08-27 13:53) [11]


> DelphiNew © (27.08.03 13:51) [10]

Прислушайся к HolACost! © (27.08.03 13:45) [9], приведи кусок кода из интерфейса и имплементейшн, а то гадать до бесконечности можно.


 
HolACost!   (2003-08-27 13:54) [12]

Братец, я тебе уже написал - давай сюда код... просто так на такие вопросы никто не ответит - тут тебе только тучу предположений выдадут! Докучи FrmMain - это похоже объект - для одарённых экземпляр класса, а нужно имя класса!


 
DelphiNew   (2003-08-27 14:01) [13]

2HolACost


type
....
function Space(InpInt:integer; symbol:Char):String;
....
implementation
uses
UntSprOtpr,UntTara, UntCfg, UntSprPol, UntFirst, UntMiddle;
{$R *.dfm}
function Space(InpInt:integer;symbol:Char):String;
var n:integer;
begin
result:="";
if InpInt<=0 then exit;
for n:=0 to InpInt do
result:=result+symbol;
end;

вызывается так

if not FrmMain.IBQSpec.Eof then
begin
FrmMain.IBQSpec.First;
while not FrmMain.IBQSpec.Eof do
begin
Name:=copy(FrmMain.IBQSpecNAME_TARA.AsString+Space(KolVoSim,"."),1,Kol VoSim-40);
Code:=copy(FrmMain.IBQSpecCODE_TARA.AsString+Space(KolVoSim,"."),1,Kol VoSim-55);
KolVo:=copy(FrmMain.IBQSpecQUAN.AsString+Space(KolVoSim,"."),1,KolVoSi m-55);
Price:=copy(FrmMain.IBQSpecPRICE.AsString+Space(KolVoSim,"."),1,KolVoS im-45);
Summa:=copy(FrmMain.IBQSpecSUMMA_TOTAL.AsString+Space(KolVoSim,"."),1, KolVoSim-45);

WinStr:=WinStr+Name+Code+KolVo+Price+Summa+#13+#10;
FrmMain.IBQSpec.Next;
end;
end;


 
Романов Р.В.   (2003-08-27 14:03) [14]


> type
> ....
> function Space(InpInt:integer; symbol:Char):String;
> ....

Этот кусок поподробнее


 
DelphiNew   (2003-08-27 14:05) [15]


type
....
IBQSpecSUMMA_TOTAL: TFloatField;
Button1: TButton;
function Space(InpInt:integer; symbol:Char):String;
function GetEsc(Esc: String): string;
function WinToDOS(InputStr:integer):integer;
procedure Print;
procedure FormShow(Sender: TObject);
procedure ActInsertExecute(Sender: TObject);
procedure ActRefreshExecute(Sender: TObject);
procedure ActExpeditorExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure ActExitEscExecute(Sender: TObject);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;


 
panov   (2003-08-27 14:05) [16]

function TFrmMain.Space(InpInt:integer;symbol:Char):String;
var n:integer;
begin
result:="";
if InpInt<=0 then exit;
for n:=0 to InpInt do
result:=result+symbol;
end;


 
HolACost!   (2003-08-27 14:05) [17]

Я не понимаю - господин хороший - у вас Space член класса (судя по ошибке), а вы её объявляете как простую функцию! Если у вас всё вообще туго - дам мыло - кинешь - поправлю!


 
DelphiNew   (2003-08-27 14:07) [18]

2 panov
Тогда выдаётся UntMain.pas(265): Undeclared identifier: "Space"
в месте где вызывается функция


 
HolACost!   (2003-08-27 14:08) [19]

Потомучто функция в которой вызывается метод не член класса... надо тогда указывать Объект типа FrmMain.Space


 
HolACost!   (2003-08-27 14:10) [20]

#ifdef FLAME
Читайте книжки по ООП! Это полный бред - такие вопросы задавать человеку с высшим образованием. ИМХО, это клиника!
#endif


 
DelphiNew   (2003-08-27 14:12) [21]

2 HolACost!
Тоесть в месте где вызывается функция надо писать
Name:=copy(FrmMain.IBQSpecNAME_TARA.AsString+ FrmMain.Space(KolV oSim,"."),1,Kol VoSim-40);
Так?


 
Романов Р.В.   (2003-08-27 14:14) [22]

Незачем делать эту функцию методом класса
type
....
IBQSpecSUMMA_TOTAL: TFloatField;
Button1: TButton;
function GetEsc(Esc: String): string;
function WinToDOS(InputStr:integer):integer;
procedure Print;
procedure FormShow(Sender: TObject);
procedure ActInsertExecute(Sender: TObject);
procedure ActRefreshExecute(Sender: TObject);
procedure ActExpeditorExecute(Sender: TObject);
procedure ActExitExecute(Sender: TObject);
procedure ActExitEscExecute(Sender: TObject);
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

function Space(InpInt:integer; symbol:Char):String;

...


 
HolACost!   (2003-08-27 14:17) [23]

ДА - если FrmMain - это экземпляр класса TFrmMain! Или как г-н Романов предлагает, тогда всё будет работать в том же виде!


 
DelphiNew   (2003-08-27 14:21) [24]

После подстановки FrmMain везде где требовалось ошибка перестала появляться. Но всё таки почему она выдавалась ведь раньше при аналогичных операциях она не появлялась?


 
Романов Р.В.   (2003-08-27 14:23) [25]

mozg.Enable := True


 
HolACost!   (2003-08-27 14:23) [26]

Гы! Я ох... потихоньку!
При данной реализации - это очень интересный вопрос! Возможно у тебя не было функции Space до того! А теперь появился!


 
Anatoly Podgoretsky   (2003-08-27 15:26) [27]

DelphiNew © (27.08.03 14:05) [15]

type
....

И этот кусок поподробнее


 
DelphiNew   (2003-08-27 15:31) [28]

Очень смешно!!!!
Я имел ввиду что раньше мне не требовалось подставлять привязку к форме я просто прописывал функцию в type и всё работало без проблем


 
HolACost!   (2003-08-27 15:41) [29]

Господа, не парьтесь - проблема решена, но вот только человек не может понять в чем проблема была - я честно говоря рассуждать и объяснять не очень-то любли и умею! Так что тут можно посоветовать только почитать книжечки по ООП!
А твой проблема была в том, что ты сделал объявление функции как метода окна и следовательно из вышеизложенного могу сказать. что нафига тебе тогда через объекты работаь с этой функцией объяки её вне класса окна и все - будет тебе счастье!


 
Anatoly Podgoretsky   (2003-08-27 16:00) [30]

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



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

Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.009 c
7-24715
Булат
2003-06-24 10:18
2003.09.08
Как определить тип корпуса - АТ или АТХ?


8-24550
Kush
2003-05-13 15:59
2003.09.08
CreateMappedBmp - проблема


1-24481
DelphiNew
2003-08-27 13:31
2003.09.08
Error


14-24705
НАХАЛ
2003-08-19 09:02
2003.09.08
программа ДОС в полноэкранном режиме не выводит по русски


3-24386
Xmen
2003-08-19 10:02
2003.09.08
Про базы данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский