Изображението се зарежда или курсор от ВЕИ-файла - Delphi източници често задавани въпроси

Качване на изображения и курсори на ВЕИ-файлове

Изображения и курсори могат да се съхраняват в ресурс файл (ВЕИ) и позволяваща връзки (svyazavatsya), за да EXE файлове, че вашата кандидатура. ВЕИ-файловете могат да бъдат създадени с Редактор Delphi инструменти изображението и Borland Resource Workshop, включен в доставката Delphi RAD Pack. Изображения курсори и съхранява в RES-файлове (след опаковането им в ЕХЕ или DLL) могат да се екстрахират с използване на API функции и LoadBitmap LoadCursor съответно.

API LoadBitmap функция се определя, както следва:

Първият параметър трябва да съдържа манипулатор към модула (EXE или DLL), съдържащ ВЕИ файл, от който искате да споделите. Delphi поддържа дръжка бягане EXE файл в глобална променлива с име Hinstance. В следващия пример, ние приемаме, че модула, от които ние се опитваме да качите изображение - вашата кандидатура. Въпреки това, устройството може да бъде друг EXE- или DLL-файлове. Следващият пример зарежда изображение, наречено BITMAP_1 на ВЕИ-файл свързан в EXE-файлове, че заявлението:

Има един недостатък на използването на LoadBitmap API повикване: LoadBitmap все още е API повикване към Windows 3.0, и зарежда изображение само като DDB (Device Зависим Bitmaps). Това може да доведе до проблеми с цветова палитра при зареждане DIB (Device Independent Bitmaps) от ВЕИ-файл. Кодът по-долу може да се използва за извличане на DIB-те години на ВЕИ-файлове. Този код се зарежда изображението като общ ресурс, тя преминава към поток, а след това прави повикването Delphi LoadFromStream, изпълнява палитрата автоматично.

API LoadCursor функция се определя, както следва:

След това добавете следните два реда за формиране на манипулатор събитие OnCreate:

или можете да промените някои от стандартните курсори Delphi, както е показано по-долу (курсора константи са описани в онлайн помощ статията курсори собственост):

Забележка: В нормална ситуация, всички курсори ресурси трябва да бъдат премахнати с DeleteCursor, обаче, в Делфи не е необходимо, тъй като самата Delphi премахва всички курсори от курсори масива.