|
Types of actual and formal var parameters must be identical - Вопросы и ответы, обсуждения - Ваши вопросы по Pascal/Delphi только в данном разделе |
31.05.2012, 04:07
|
#1
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2011
Сообщений: 70
Популярность: 24
Сказал(а) спасибо: 45
Поблагодарили 7 раз(а) в 7 сообщениях
|
Types of actual and formal var parameters must be identical
Приветы.
Код:
unit unit_service;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, ExtCtrls, IniFiles, Dialogs;
...
type
Rec = record
name: string;
ID: Integer;
end;
DynArray = array of Rec;
...
procedure Proc(hprocess: Integer; var Array1: DynArray);
var
a,b,c: DWORD;
i:Integer;
begin
...
a:=...
b:=...
c:=...
//Записываем в длину массива некое число, полученное выше.
SetLength(Array1, a);
for i:=0 to a do begin
Array1[i].ID:=b;
Array1[i].name:=c;
end;
end;
Код:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Gauges, ExtCtrls, unit_service, Unit_invent, IniFiles;
...
type
Rec = record
name: string;
ID: Integer;
end;
DynArray = array of Rec;
var
Buff: DynArray;
...
Proc(hProcess, Buff);
На красную строку ругается ошибкой "Types of actual and formal var parameters must be identical". Что за хрень? Параметры в объявлении процедуры и при её вызове имеют один тип. Где косяк?
До того, как вынес процедуру в отдельный юнит, всё работало.
Спасибо.
|
|
|
31.05.2012, 11:25
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 23.03.2012
Сообщений: 83
Популярность: 908
Сказал(а) спасибо: 102
Поблагодарили 144 раз(а) в 61 сообщениях
|
Re: Types of actual and formal var parameters must be identical
|
|
|
31.05.2012, 18:22
|
#3
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2011
Сообщений: 70
Популярность: 24
Сказал(а) спасибо: 45
Поблагодарили 7 раз(а) в 7 сообщениях
|
Re: Types of actual and formal var parameters must be identical
Тогда будет Incompatible Types И мне ведь нужно изменять параметр-переменную при работе процедуры.
Добавлено через 1 час 9 минут
Кажется, разобрался, хотя до конца и не понимаю, почему так ) Проблема была в том, что я объявлял свои типы в обоих юнитах.
Последний раз редактировалось ktulx; 31.05.2012 в 19:31.
Причина: Добавлено сообщение
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 11:30.
|
|