> -- Евгений Темиргалеев писал(а):
> Возможно стоит процедуру сделать именно процедурой.Я как-то не определился для себя, в каком случае использовать функцию, а в каком процедуру. Если есть возвращаемый результат, то это как-то более однозначно: вот он, можно функцию использовать в выражении или в условии цикла. Значит, переменная заводится только в процедуре, а не в каждом клиенте. Кроме того, с VAR-параметрами не понятно, когда они in, когда out, а когда in-out. При чтении это вносит неоднозначность, в отличие от функции. В этой связи для простых результатов использую функции.

Сам не писал, но видел и такой вариант:
PROCEDURE (...; VAR res: INTEGER): BOOLEAN; (* Результат = (res = OK). *)
-> Можно использовать в ветвлении по IF, а подробно код возврата разбирать при необходимости и желании.

А у вас есть какие-то общие соображения на этот счёт? Было бы любопытно.> -- Евгений Темиргалеев писал(а):
> IF res & (pg.base.bmh = NIL) THEN  (* если загружено и (не загружено) то...*)Там несколько более тёмный лес, я сам не сразу разобрался. Дело в том, что Load загружает картинку в pg.dib, а AllocNew инициализирует pg.base, используя pg.dib в качестве исходной.