PureBasic

Дескрипторы и Номера

Номера (Gadget#, Window#...)

Все созданные объекты идентифицируются условным Номером (который не является дескриптором (ID) объекта, как мы увидим далее). В этом руководстве такие Номера обозначены как #Number (например, каждый созданный Гаджет имеет Номер Гаджета #Gadget).

Значение, что вы присваиваете им, необязательно должны быть константами, но они должны быть уникальны для всех объектов в вашей программе (изображение может получить тот же Номер, что и Гаджет, так как это различные типы объектов). Эти Номера используются, чтобы позднее получить доступ к этим объектам в программе.

Например, эти функции обработки событий возвращают Номера объектов:

EventGadget()
EventMenu()
EventWindow()

Дескрипторы (ID)

Все объекты также получают уникальный Номер, назначенный им системой. Эти идентификаторы называются дескрипторы. Иногда функция PureBasic требует не Номер в качестве аргумента, а дескриптор. В этом руководстве такие вещи обозначаются ID.

Пример

ImageGadget(#Gadget, x, y, Width, Height, ImageID [, Flags])
; #Gadget должен быть Номер, который вы хотите присвоить Гаджету
; ImageID должен быть дескриптор изображения.

Чтобы получить дескриптор объекта предусмотрены специальные функции:

FontID()
GadgetID()
ImageID()
ThreadID()
WindowID()

Также большинство функций, создающих эти объекты возвращают дескриптор в качестве результата, если они отработали успешно. Кроме случая, когда для создания объекта использовалось значение #PB_Any. Если использовалось значение #PB_Any, эти команды возвращают Номер объекта, который был назначен для него PB, а не дескриптор (ID).

Пример

GadgetHandle = ImageGadget(...)