С этим заголовком уже много вопросов; однако ни одна проблема не касается моей проблемы. Я на самом деле пытается пройти по ссылке, но я получаю ошибку E2033: Types of actual and formal var parameters must be indentical
при попытке скомпилировать мой код. Я пытаюсь передать три (3) переменные, каждая из них - Integer
, две по ссылке (Var
), а другая нет.Delphi: Типы фактических и формальных параметров должны быть одинаковыми
Ниже я не понимаю проблему с моим кодом. Я включил декларацию, определение и вызов.
Декларация Рутинное:
private
updateDeviceStatus(Var aReturnCount, aNotFoundCount: Integer; aNumOfDevices: Integer);
Я попытался не конденсируются декларацию аргументов и объявил Var
для первых двух, явно», однако, это не сработало.
Вопрос 1: является ошибкой, потому что я смешиваю по ссылке и по значению (если я правильно помню, некоторые языки этого не допускают)?
Определение Рутинное:
procedure TfrmReturnMeterToMfg.UpdateDeviceStatus(Var aReturnCount, aNotFoundCount: Integer; aNumOfDevices : Integer);
begin
// DO SOMETHING
end;
Действительно, код в теле подпрограммы тривиальна в отношении этой проблемы и не влияет на проблему (по крайней мере, это не должно быть причиной в этом случае).
Призыв к Routine:
Следующая содержится в теле другого рутинных по:
// local variables:
var ReturnCount, NotFoundCount, NumOfDevices: Integer;
begin
// SOMETHING HAPPENS TO EACH OF THESE VALUES (THEY ARE INCREMENTED)
UpdateDeviceStatus([ReturnCount], [NotFoundCount], NumOfDevices);
end;
Тогда я получаю сообщение об ошибке.
Вопрос 2: Это результат моего синтаксиса при вызове подпрограммы (попытка передать аргументы)?
EDIT
Таким образом, вы можете быть удивлены (вы можете быть более опытный Delphi программист), «Где это жаворонка подобрать [
и ]
немного? Вот ресурс я консультировал (и понять, почему Я посмотрел на ту вещь, в комментариях ниже):. consulted resource
Почему вы помещаете '[' скобки '' 'вокруг аргументов в вызове? Вы хотите передать их в виде массивов? Зачем?И почему вы вызываете 'UodateDeviceStatus', когда имя функции' UpdateDeviceStatus' с 'p'? – JensG
@JensG Итак, исходя из вашего комментария, что скобки не нужны? Во-вторых, это была опечатка с моей стороны при вводе кода в SO. Благодарю. – Thomas
Да. Я просто хотел подтвердить, какие ошибки - это просто опечатки, а какие нет. ;-) – JensG