Форум: "Основная";
Текущий архив: 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