Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2010, 09:02   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию раздел interface .

Кто подскажет - почему в разделе interface необходимо указывать заголовки всех процедур , используемых в модуле, а заголовки функций указывать не обязательно? Или это просто особенность языка такая.....языка делфи....
(заранее благодарю за ответ)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 24.04.2010, 10:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
почему в разделе interface необходимо указывать заголовки всех процедур , используемых в модуле, а заголовки функций указывать не обязательно?
глупости. в разделе interface unit'а (модуля) нужно указывать заголовки тех процедур и функций, которые допускается вызывать из других модулей. Те процедуры и функции, которые не описаны в разделе interface допустимо использовать только внутри данного модуля(их нельзя вызвать "извне").
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.04.2010, 11:26   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию все так говорят)

но если заголовок процедуры ( обработчик события по нажатию на кнопку формы) не поместить в раздел interface, то она вообще работать не будет....
Вот пример выложу ( там модуль есть модуль unit1 в нём, я убрал из интерфейса button2click )
посмотрите )
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, func , extraproc ;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
 // ВОТ ЕЁ, Серж -   procedure Button2Click(Sender: TObject);
    //procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    //procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
{type
  pelement= ^telement;
  Telement= record
             infa: integer;
             ukazatel:pelement;
            end;  }

var    o,z: integer; // глобальная переменная "о"
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid1.ColCount:=strtoint(edit1.text);
end;{
function fg ( r: pelement ; b:integer):integer; //рекурсивная функция
begin
  if (r=nil)  then begin Result:=0; end;  // условие выхода из рекурсии ( результат преобретает конкретное значение)
  if (r<>nil) and (b=r^.infa) then
  begin
    o:=o+1;
    Result:=1+fg(r^.ukazatel,b);
  end;
  if (r<>nil) and (b<>r^.infa) then  // если значение очередного элемента списка не совпадает
  begin
    Result:=fg(r^.ukazatel,b);
  end;

end;   }


procedure TForm1.Button2Click(Sender: TObject);
var zap: telement;
    p:pelement;
    uk: pelement;
    i,n,ot,b  : integer;
begin
  ot:=0;
  o:=0;
  z:=0;
  label5.Caption:='';
  label3.Caption:='';
  n:=0;
  uk:=nil;
  while n<=stringgrid1.colcount-1 do // формирую список
  begin
    if length(stringgrid1.Cells[n,0])<>0 then
    begin
      new(p);
      p^.ukazatel:=uk;
      uk:=p;
      p^.infa:=strtoint(stringgrid1.cells[n,0]);
      n:=n+1;
    end
    else
    n:=n+1;
  end;
  b:=strtoint(edit2.text);  // узнаю какой элемент меня интересует
  ot:=fg(uk, b);
  label3.Caption:=inttostr(ot); // ответ ( вывожу на форму)
  repeat  // выводим на форму очередь в обратном порядке))
    label5.Caption:=label5.Caption+inttostr(uk^.infa)+' ';
    uk:=uk^.ukazatel;
  until uk= nil;
  label5.Caption:=label5.Caption+#13#10+inttostr(o);

end;


{procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    if not (Key in [#8, '0'..'9']) then
    begin
      ShowMessage('Пожалуйста, укажите целое положительное число');
      Key := #0;
    end ;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if not (Key in [#8, '0'..'9']) then
    begin
      ShowMessage('Пожалуйста, укажите целое положительное число');
      Key := #0;
    end ;
end;   }

end.
Вложения
Тип файла: zip 2-1.zip (71.8 Кб, 9 просмотров)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 24.04.2010, 12:29   #4
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ууу, товарищ, как Вы все путаете )
Заголовки функций модуля это одно, а объявление метода в классе формы это совсем другое. Это, я бы даже сказал, две большие разницы.
Рекомендуется к прочтению: http://rsdn.ru/?article/Delphi/Delphi_7_03.xml
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 24.04.2010, 12:33   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию подозревал))

спасибо, буду читать ))
спасибо))
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Раздел справки sysyman Общие вопросы Delphi 2 28.03.2010 18:56
Задача в interface среде Delphi akialex Помощь студентам 1 12.12.2009 19:50
Новый раздел SunKnight О форуме и сайтах клуба 6 21.02.2008 18:15
Раздел обучение Relrin Помощь студентам 3 28.12.2007 16:41