Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Передать управление процедуре


Автор: Витаминка 23.12.2006, 20:08
Привет! Есть вопросик один, у меня есть функция с обычным условием if then else, если условие ложно то мне надо передать управление процедуре каторая находится в коде, как это сделать если так нельзя:
Код

function start;
begin
if .... then
.....
else
call;


Код

procedure call;
var
begin
....



Автор: MetalFan 23.12.2006, 20:13
почему нельзя? религия не позволяет?!

Автор: Витаминка 23.12.2006, 20:28
Да, в моей леригии это срашнейший грех! smile  На самом деле ошипка всюму виной -  Undeclared identifier: 'call' видно из за того что это всё в функции, но под процедуру переделать эту функция я не могу и не хочу

Автор: Matematik 23.12.2006, 20:37
Код

unit Unit1;

interface

implementation

procedure b;
begin

end;

procedure a;
begin
  b;
end;

end.


или так
Код

unit Unit1;

interface

procedure b;

implementation

procedure a;
begin
  b;
end;

procedure b;
begin

end;

end.


зы
учи язык

Автор: Витаминка 23.12.2006, 20:41
зы
получше посмотри на мой первый пост

Автор: Matematik 23.12.2006, 20:48
Может тогда по-русски объяснишь, что не получается. Из твоих постов не понятно.

Автор: Витаминка 23.12.2006, 21:01
Matematik тут вообще ничё писать ненадо, просто надо посмотреть на код:
Код

function start;    
begin    
if .... then    
.....    
else    
call;
end;

procedure call;    
var    
begin    
....
end;


и ошипку Undeclared identifier: 'call'

Если все равно не даходит, тогда уж извини


Автор: Alexeis 23.12.2006, 21:08
Код

procedure call;    

function start;    
begin    
if .... then    
.....    
else    
call;
end;

procedure call;    
var    
begin    
....
end;

Если функция реализована ниже, то нужно описать ее прототип.

Автор: VICTAR 23.12.2006, 21:10
Попробуй процедуру call написать выше процедуры start.

Автор: Витаминка 23.12.2006, 21:23
Попробывала, тоже самое, можеть есть чё нить типа оператора GO TO как в qbasik'е чтоль smile Ето всё из-за таго наверна что передача процедуре идёт в функции, что делать почему то нельзя=(

Автор: MetalFan 23.12.2006, 22:23
что пробовала?!
Код

procedure call;
begin
end;

procedure start;
begin
 if true then call;
end;


скажи еще, что не работает...
может вам книжек почитать, а?

Автор: Витаминка 23.12.2006, 22:31
Всё заработало, просто надо было функцию c условием прикрепить к TForm. Тема закрыта smile 

Автор: bems 24.12.2006, 22:44
а может function TForm1.Inet ?

Автор: ivan219 25.12.2006, 00:11
А если её локальной зделать если конечно кней другие функции необрощаются.
Код

function start;
procedure call;
var
    ....
begin
....
end;
begin
if .... then
.....
else
call;
end;

Автор: Zero 25.12.2006, 01:56
Цитата(VICTAR @  23.12.2006,  21:10 Найти цитируемый пост)
Попробуй процедуру call написать выше процедуры start.

Цитата(Витаминка @  23.12.2006,  21:23 Найти цитируемый пост)
Попробывала, тоже самое,

Пробовала чем интересно писать???
Код

procedure call;
begin
  showmessage('test');
end;

function tt:integer;
begin
  call;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
begin
  i := tt;
end;
 Она не может так не работать...
Цитата(Витаминка @  23.12.2006,  22:31 Найти цитируемый пост)
Всё заработало, просто надо было функцию c условием прикрепить к TForm. Тема закрыта

 smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile  smile 
ООП тебе учить надо. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)