MessageBox с заголовком и текстом справа
procedure MsgBox(Capt, Msg: string); begin MessageBox(0, PChar(Msg), PChar(Capt), mb_Right); end;
Capt - заголовок мессаджбокса, Msg - текст сообщения. Мессаджбокс будет с одной кнопкой Ok.
Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin MsgBox('Заголовок', 'Тест'); end;
Запускаем проект и жмем кнопочку, в итоге файл успешно загружается, причем с поддержкой альфа каналов, что дает больше возможностей для оформления интерфейса программ.
Но при таком подходе, помимо самой EXE нужны еще и графические файлы PNG, что в некоторых программах неприемлемо. В этом случае можно поступить совсем просто. Взять и вручную, во время разработки приложения загрузить в TImage файл, точно также как мы поступали с JPEG и BMP. При этом вся графика будет храниться в EXE и внешние PNG файлы будут не нужны.
Есть и еще один вариант - создать ресурс и загружать PNG из ресурса. Для компиляции ресурсов со средой разработки Delphi поставляется 32-разрядный компилятор (brcc32.exe):
1. Создайте BAT файл со следующим содержимым: "C:\Program Files\Borland\Delphi7\Bin\brcc32.exe" %1
2. Создайте текстовый файл со следующим содержимым: img RCDATA "1.png"
3. Скопируйте эти два файла и PNG файл с именем 1.png в отдельную папку.
4. Перетащите текстовый файл на BAT файл. Если Вы все сделали правильно, то должен появиться еще один файл с расширением RES. Файл будет называться точно также как и ваш текстовый файл.
Переименуйте этот файл в png.res и скопируйте в папку с сохраненным проектом. Далее открываем проект и после implementation {$R *.dfm}
добавьте {$R png.RES}. Этим вы прикрепили файл ресурса (png.res) к своему проекту и содержимое этого файла будет находиться в EXE.
Теперь остается только загрузить эти данные. Обявите переменную var png: TPNGObject;
Описание типа TPNGObject находится в прикрепленном модуле pngimage. Прикрепили мы его в самом начале статьи. Дальше кидаем на форму кнопку и создаем обработчик клика по кнопке: png := TPNGObject.Create; // создаем png.LoadFromResourceName(HInstance, 'png'); // грузим ресурс Image1.Canvas.Draw(0, 0, png); // выводим png.Free; // высвобождаем
Вот вобщем-то и все. Какой путь выбрать решать вам.
источник: http://delphidevelop.ru/publ/9-1-0-257
|