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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2009, 17:57   #1
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
Сообщение Помогите разобраться с собственной функцией

описание функции:
Код:
function cbEdit (var i: integer): integer;
сама функция:
Код:
function TnRabPlan.cbEdit (var i: integer): integer;
begin
    if i < 0 then i := 0;
    result := i;
end;
и обращение к ней:
Код:
i := cbEdit (2);
при компиляции выдает ошибку:
Цитата:
[DCC Error] newRabPlan.pas(153): E2033 Types of actual and formal var parameters must be identical
???
MasterofCDM вне форума Ответить с цитированием
Старый 02.04.2009, 18:23   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Код:
function cbEdit (i: integer): integer;
Код:
function TnRabPlan.cbEdit (i: integer): integer;
var n:integer;
begin
    n:=i;
    if n < 0 then n := 0;
    result := n;
end;
Такой вариант пройдет?
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг

Последний раз редактировалось Dj_smart; 02.04.2009 в 18:29.
Dj_smart вне форума Ответить с цитированием
Старый 02.04.2009, 18:27   #3
VVM
Форумчанин
 
Аватар для VVM
 
Регистрация: 06.06.2007
Сообщений: 282
По умолчанию

Там либо var убрать, либо в качестве фактического параметра передавать переменную ('2' - константа).
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    function cbEdit(var i: integer): integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.cbEdit(var i: integer): integer;
begin
 if i < 0 then i := 0;
  Result := i;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  K, N: integer;
begin
  N := 2;
  K := cbEdit(N);
end;

end.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.

Последний раз редактировалось VVM; 02.04.2009 в 18:32.
VVM вне форума Ответить с цитированием
Старый 02.04.2009, 21:00   #4
master.devel
Пользователь
 
Регистрация: 20.01.2009
Сообщений: 13
По умолчанию

ты указываешь, что в качестве параметра i может быть только переменная, а при использовании функции в качестве параметра передаёшь ей константу. Собственно, что и говорили 2 выше отписавшихся товарища
master.devel вне форума Ответить с цитированием
Старый 03.04.2009, 12:15   #5
MasterofCDM
Пользователь
 
Регистрация: 02.07.2008
Сообщений: 94
По умолчанию

Действительно, все получилось, спасибо!!!
MasterofCDM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, не могу разобраться с функцией INSERT KARUSHEV БД в Delphi 27 17.07.2009 17:54
помогите с функцией 1234 Общие вопросы Delphi 5 30.08.2008 10:55
Помогите с функцией Родион Общие вопросы Delphi 3 08.05.2008 19:18
помогите с функцией zetrix Microsoft Office Excel 0 31.10.2006 07:32