![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BPL и ошибки компиляции. [D6, XP]
Drowsy © (2009-11-29 13:40:00)Нашёл в инете полезный компонент с демо-примером и попробовал установить их. Опцию Build with runtime pakages отключил.
Запускаю пример на выполнение - всё работает, а если делаю Project build, то сыпятся ошибки компиляции, типа "There is no overloaded version of 'Error' that can be called with these arguments"
Почему программа исполняется, если компилция не проходит?
Drowsy (2009-11-29 16:52:00) [1]{$T-}
function TGraphObject.GetRealKoord(Index: Integer): TFloatPoint;
begin
case Index of
0: Result := BasePoints[0];
1:
begin
Result.X := BasePoints[1].X;
Result.Y := BasePoints[0].Y;
end;
2: Result := BasePoints[1];
3:
begin
Result.X := BasePoints[0].X;
Result.Y := BasePoints[1].Y;
end;
else
TList.Error(@SListIndexError, Index);
end;
end;
{$T+}
Drowsy (2009-11-29 16:46:00) [2]Снял опцию компилятора : Typed @ operator
Теперь билдится без ошибок.
Drowsy (2009-11-29 16:04:00) [3]
> Игорь Шевченко © (29.11.09 15:02) [3]
> uses в студию
Я же указал все uses.
> Drowsy (29.11.09 15:12) [4]
Игорь Шевченко (2009-11-29 15:50:00) [4]Drowsy (29.11.09 15:12) [4]
Не хочешь сам себе помочь - тебе никто не поможет. Партизан фигов.
Drowsy (2009-11-29 15:12:00) [5]////////////////////
unit MyGraphObjects;
////////////////////
interface
uses SysUtils, Classes, ProTypes;
.......
.......
implementation
uses Messages, Math, RTLConsts;
.........
........
end.
////////////////////
unit ProTypes;
////////////////////
interface
uses Windows, SysUtils, Graphics;
.........
........
implementation
uses Types;
.........
........
end.
Игорь Шевченко (2009-11-29 15:02:00) [6]
> TList.Error(@SListIndexError, Index); // здесь ошибка.
uses в студию
Drowsy (2009-11-29 14:21:00) [7]Да, точно, новый екзешник не создаётся.
А почему возникает ошибка
"There is no overloaded version of 'Error' that can be called with these arguments"
function TGraphObject.GetRealKoord(Index: Integer): TFloatPoint;
begin
// 0 - левый верхний угол
// 1 - правый верхний угол
// 2 - правый нижний угол
// 3 - левый нижний угол
case Index of
0: Result := BasePoints[0];
1:
begin
Result.X := BasePoints[1].X;
Result.Y := BasePoints[0].Y;
end;
2: Result := BasePoints[1];
3:
begin
Result.X := BasePoints[0].X;
Result.Y := BasePoints[1].Y;
end;
else
TList.Error(@SListIndexError, Index); // здесь ошибка.
end;
end;
Метод TList.Error определён в Classes.pas :
class procedure TList.Error(const Msg: string; Data: Integer);
function ReturnAddr: Pointer;
asm
MOV EAX,[EBP+4]
end;
begin
raise EListError.CreateFmt(Msg, [Data]) at ReturnAddr;
end;
class procedure TList.Error(Msg: PResStringRec; Data: Integer);
begin
TList.Error(LoadResString(Msg), Data);
end;
А в модуле RTLConsts :
SListIndexError = 'List index out of bounds (%d)';
Anatoly Podgoretsky (2009-11-29 13:46:00) [8]> Drowsy (29.11.2009 13:40:00) [0]
Предварительно удали ехе