Ничего, что я задаю здесь вопрос по Оберону? :) Точнее, про CP в BlackBox.
Создаю приложение для Windows с использованием WinApi. Сделал окно, оно даже скомпилировалось в exe, и все было нормально до того, пока я не захотел создать кнопку.
Сначала создал кнопку, затем -- шрифт, а при вызове процедуры SendMessage с WM_SETFONT для кнопки (WinApi.SendMessageA(button, WinApi.WM_SETFONT, font, 0) выдает ошибку "Procedure call of a function".
Про нее в документации ничего не нашел, как ни странно.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
20-01-2007 09:09
Не должно компилироваться, здесь какая-то путаница.
У меня, например, не компилируется.
procedure call of а function есть ошибка компиляции, а не выполнения.
WinApi.SendMessageA есть процедура-функция, возвращающая WinApi.LRESULT.
Заведите переменную типа LRESULT и присвойте ей значение:
res: WinApi.LRESULT;
...
res := WinApi.SendMessageA(button, WinApi.WM_SETFONT, font, 0);
SendMessageA - это функция, которая возвращает результат. Delphi разрешает вызывать её как процедуру, т.е. игнорировать возвращаемый результат, а Оберон - нет. Вы должны присвоить результат функции переменной или ещё как-то использовать.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.