Интересное поведение унарной операции '-' в GDI+

infund
Дата: 02.07.2009 12:11:29
uses ...GDIPAPI, GDIPOBJ...

Var MyImage : TGPImage;
      A,B : Single;

Begin
      MyImage:=TGPImage.Create('c:\pictures.bmp');
      A:=-(MyImage.GetWidth/2);
      B:=-(MyImage.GetHeight/2);
end;

Попробуйте убрать скобки в операторах присвоения A и B...
infund
Дата: 02.07.2009 12:25:52
infund,

Разобрался

Функции

MyImage.GetWidth и MyImage.GetHeight возвращают тип Cardinal, применение к которому оператора '-' приводит к непредсказуемым результатам. Люди, будьте бдительны! )))
Кроик Семён
Дата: 02.07.2009 12:27:25
не могу повторить эксперимент без наличия "pictures.bmp". Что у Вас там нарисовано? :)
infund
Дата: 02.07.2009 12:28:30
Кроик Семён,

это секретная инфа )
Volonter12
Дата: 02.07.2009 12:31:30
infund
infund,

Разобрался

Функции

MyImage.GetWidth и MyImage.GetHeight возвращают тип Cardinal, применение к которому оператора '-' приводит к непредсказуемым результатам. Люди, будьте бдительны! )))


Целых 14 минут томил всех в неизвестности :)
Anatoly Podgoretsky
Дата: 02.07.2009 12:59:28
infund
infund,

Разобрался

Функции

MyImage.GetWidth и MyImage.GetHeight возвращают тип Cardinal, применение к которому оператора '-' приводит к непредсказуемым результатам. Люди, будьте бдительны! )))

Люди, будьте бдительны, читайте документацию, прежде чем кричать на всю околицу.
Нелояльный
Дата: 02.07.2009 15:11:18
infund
Cardinal, применение к которому оператора '-' приводит к непредсказуемым результатам
Не верю.
infund
Дата: 02.07.2009 15:23:56
Нелояльный,

Верю-не верю... Чего проще попробовать? ))
infund
Дата: 02.07.2009 15:25:54
procedure TForm1.Button1Click(Sender: TObject);

Var A : Cardinal;

begin
     A:=2;
     A:=-A*2;
     ShowMessage(IntToStr(A));
end;
Мимопроходящий
Дата: 02.07.2009 15:29:30

ну началось...
дети открыли для себя Cardinal...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4