Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с ресурсами – загрузка иконки и курсора

Delphi , Файловая система , Ресурсы

Работа с ресурсами – загрузка иконки и курсора

Автор: Xavier Pacheco

{
Copyright © 1998 by Delphi 4 Developer's Guide - Xavier Pacheco and Steve Teixeira
}
program resource;
uses
  Forms,
  MainFrm in 'MainFrm.pas' {MainForm};

{$R *.RES}
{$R RESFILE2.RES} // Add the additional resource file

begin
  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.
{
Copyright © 1999 by Delphi 5 Developer's Guide - Xavier Pacheco and Steve Teixeira
}

unit MainFrm;
interface
uses
  Windows, Forms, Controls, Classes, StdCtrls, ExtCtrls;

const
  crXHair = 1; // Declare a constant for the new cursor. This value
type // must be a positive number. or less than -20.

  TMainForm = class(TForm)
    imgBitmap: TImage;
    btnChemicals: TButton;
    btnClear: TButton;
    btnChangeIcon: TButton;
    btnNewCursor: TButton;
    btnOldCursor: TButton;
    btnOldIcon: TButton;
    btnAthena: TButton;
    procedure btnChemicalsClick(Sender: TObject);
    procedure btnClearClick(Sender: TObject);
    procedure btnChangeIconClick(Sender: TObject);
    procedure btnNewCursorClick(Sender: TObject);
    procedure btnOldCursorClick(Sender: TObject);
    procedure btnOldIconClick(Sender: TObject);
    procedure btnAthenaClick(Sender: TObject);
  end;

var
  MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.btnChemicalsClick(Sender: TObject);
begin
  { Load the bitmap from the resource file. The bitmap must be
    specified in all CAPS! }
  imgBitmap.Picture.Bitmap.LoadFromResourceName(hInstance, 'CHEMICAL');
end;

procedure TMainForm.btnClearClick(Sender: TObject);
begin
  imgBitmap.Picture.Assign(nil); // Clear the image
end;

procedure TMainForm.btnChangeIconClick(Sender: TObject);
begin
  { Load the icon from the resource file. The icon must be
    specified in all CAPS! }
  Application.Icon.Handle := LoadIcon(hInstance, 'SKYLINE');
end;

procedure TMainForm.btnNewCursorClick(Sender: TObject);
begin
  { Assign the new cursor to the Screen's Cursor array }
  Screen.Cursors[crXHair] := LoadCursor(hInstance, 'XHAIR');
  Screen.Cursor := crXHair; // Now change the cursor
end;

procedure TMainForm.btnOldCursorClick(Sender: TObject);
begin
  // Change back to default cursor
  Screen.Cursor := crDefault;
end;

procedure TMainForm.btnOldIconClick(Sender: TObject);
begin
  { Load the icon from the resource file. The icon must be
    specified in all CAPS! }
  Application.Icon.Handle := LoadIcon(hInstance, 'DELPHI');
end;

procedure TMainForm.btnAthenaClick(Sender: TObject);
begin
  { Load the bitmap from the resource file. The bitmap must be
    specified in all CAPS! }
  imgBitmap.Picture.Bitmap.LoadFromResourceName(hInstance, 'ATHENA');
end;

end.
Загрузить весь проект

Программа на Delphi, которая демонстрирует работу с ресурсами, в частности, загрузку иконок и курсоров. Проект состоит из двух единиц: MainFrm и resource.

Единица resource содержит основной код программы и определяет несколько констант для идентификаторов ресурсов.

program Resource;
uses
  Forms,
  MainFrm in 'MainFrm.pas' { MainForm };
{$R *.RES}
{$R RESFILE2.RES} // Добавить дополнительный файл ресурсов
begin
  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.

Единица MainFrm определяет форму (TMainForm) с несколькими кнопками. Каждая кнопка связана с процедурой, которая загружает конкретную иконку или курсор.

unit MainFrm;

interface

uses
  Windows, Forms, Controls, Classes, StdCtrls, ExtCtrls;

const
  crXHair = 1; // Определить константу для нового курсора. Значение должно быть положительным числом или меньше -20.

type
  TMainForm = class(TForm)
    imgBitmap: TImage;
    btnChemicals: TButton;
    btnClear: TButton;
    btnChangeIcon: TButton;
    btnNewCursor: TButton;
    btnOldCursor: TButton;
    btnOldIcon: TButton;
    btnAthena: TButton;
    procedure btnChemicalsClick(Sender: TObject);
    procedure btnClearClick(Sender: TObject);
    procedure btnChangeIconClick(Sender: TObject);
    procedure btnNewCursorClick(Sender: TObject);
    procedure btnOldCursorClick(Sender: TObject);
    procedure btnOldIconClick(Sender: TObject);
    procedure btnAthenaClick(Sender: TObject);
  end;

var
  MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.btnChemicalsClick(Sender: TObject);
begin
  // Загрузить битмап из файла ресурсов. Битмап должен быть указан в верхнем регистре!
  imgBitmap.Picture.Bitmap.LoadFromResourceName(hInstance, 'CHEMICAL');
end;

procedure TMainForm.btnClearClick(Sender: TObject);
begin
  // Очистить изображение, отображаемое компонентом imgBitmap.
  imgBitmap.Picture.Assign(nil); // Очищать изображение
end;

procedure TMainForm.btnChangeIconClick(Sender: TObject);
begin
  // Загрузить иконку из файла ресурсов. Иконка должна быть указана в верхнем регистре!
  Application.Icon.Handle := LoadIcon(hInstance, 'SKYLINE');
end;

procedure TMainForm.btnNewCursorClick(Sender: TObject);
begin
  // Присвоить новый курсор Screen'с Cursor array.
  Screen.Cursors[crXHair] := LoadCursor(hInstance, 'XHAIR');
  Screen.Cursor := crXHair; // Теперь изменить курсор
end;

procedure TMainForm.btnOldCursorClick(Sender: TObject);
begin
  // Изменить курсор обратно на стандартный курсор.
  Screen.Cursor := crDefault;
end;

procedure TMainForm.btnOldIconClick(Sender: TObject);
begin
  // Загрузить иконку из файла ресурсов. Иконка должна быть указана в верхнем регистре!
  Application.Icon.Handle := LoadIcon(hInstance, 'DELPHI');
end;

procedure TMainForm.btnAthenaClick(Sender: TObject);
begin
  // Загрузить битмап из файла ресурсов. Битмап должен быть указан в верхнем регистре!
  imgBitmap.Picture.Bitmap.LoadFromResourceName(hInstance, 'ATHENA');
end;
end.

Проект демонстрирует загрузку иконок и курсоров с помощью функций LoadIcon и LoadCursor, соответственно. Иконки и курсоры загружаются из файлов ресурсов, определенных в единице resource.

В процедурах:

  1. btnChemicalsClick: Загружает битмап CHEMICAL из файла ресурсов.
  2. btnClearClick: Очищает изображение, отображаемое компонентом imgBitmap.
  3. btnChangeIconClick: Загружает иконку SKYLINE из файла ресурсов и присваивает ее приложению.
  4. btnNewCursorClick: Загружает курсор XHAIR из файла ресурсов, присваивает его Screen'с Cursor array и изменяет курсор.
  5. btnOldCursorClick: Изменяет курсор обратно на стандартный курсор.
  6. btnOldIconClick: Загружает иконку DELPHI из файла ресурсов и присваивает ее приложению.
  7. btnAthenaClick: Загружает битмап ATHENA из файла ресурсов.

Обратите внимание, что файлы ресурсов (*.RES и RESFILE2.RES) содержат загружаемые иконки и курсоры, а идентификаторы ресурсов (например, 'CHEMICAL', 'SKYLINE', и т.д.) соответствуют именам ресурсов в файлах ресурсов.

В статье описывается работа с ресурсами в программировании на языке Delphi, включая загрузку иконок и курсоров.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ресурсы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 02:03:55/0.0037529468536377/0