vapaamies / KolibriOS

Delphi SDK для KolibriOS
https://kolibrios.cantor.systems
BSD 2-Clause "Simplified" License
24 stars 5 forks source link

Ошибка в описании DrawButton. #1

Closed amber8706 closed 4 years ago

amber8706 commented 4 years ago

Функция DrawButton, объявлена как:

procedure DrawButton(Left, Top, Right, Bottom: LongInt; BackColor, Style, ID: LongWord); stdcall;

т.е. ей по логике, нужно передавать координаты левой верхней точки и правой нижней через параметры: Left, Top, Right, Bottom. Однако, в примере используются одни и те-же координаты для кнопок, расположенных в РАЗНЫХ местах:

DrawButton(10, 20, 50, 30, COLOR_RED, 0, RED_BUTTON); DrawButton(70, 20, 50, 30, COLOR_GREEN, 0, GREEN_BUTTON);

Тут наглядно видно, что правый нижний угол имеет одинаковую координату для разных кнопок: (50, 30). НО кнопки отображаются в абсолютно разных местах. По всей видимости, здесь опечатка. Параметры Right, Bottom - должны называться: Width, Height.

amber8706 commented 4 years ago

http://wiki.kolibrios.org/wiki/SysFn08/ru:

ebx = [координата по оси x]65536 + [размер по оси x] ecx = [координата по оси y]65536 + [размер по оси y]

Всё таки, там должен быть размер, а не координаты правого нижнего угла.

amber8706 commented 4 years ago

Та же ошибка DrawWindow. Если я вызову:

DrawWindow(50, 50, 40, 40,...)

То она рисует окно, размерами 40х40 в позиции 50х50.

amber8706 commented 4 years ago

Прошу прощения. На GitHub уже исправили.