картинка на форме delphi

Картинка на форме delphi

Графические возможности Delphi. Image.

Этот компонент служит для размещения на форме одного из трех поддерживаемых Delphi типов изображений: растровой картинки, пиктограммы или метафайла. Любой из этих типов изображения содержится в центральном свойстве компонента — picture. В свойстве canvas содержится канва, с помощью которой при необходимости программа может отредактировать растровое изображение (но не пиктограмму или метафайл!).

property Center: Boolean;

Указывает, надо ли центрировать изображение в границах компонента. Игнорируется, если Autosize=True или если Stretch =True и изображение не является пиктограммой (ICO)

property Canvas : TCanvas;

Содержит канву для прорисовки изображения

property Transparent: Boolean;

Запрещает/разрешает накладывать собственный фон изображения на фон компонента

property Proportional: Boolean; property Stretch: Boolean;

Разрешает/запрещает изменять размер изображения так, чтобы оно целиком заполнило клиентскую область компонента.

property Picture: TPicture;

Разрешает/запрещает пропорционально уменьшать высоту и ширину изображения, если оно не может целиком уместиться в рабочей зоне компонента

property IncrementalDisplay: Boolean;

Разрешает/запрещает показ большого изображения по мере его загрузки Центральное свойство класса. Служит контейнером изображения

Никаких специальных методов у Image нет.

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации. Например, инструкция

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (imagel).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Написать программу-фотоальбом, которая позволяет просматривать фотографии и оставлять к ним записи.

Данная программа представляет собой прототип программы-фотоальбома. Она представлена для ознакомления принципа использования Image.

Источник

Отображение картинки в delphi image

Delphi 7. Занятие 2_5. Часть 2.

Расположим основные элементы управления программы на «Form2».

Интерфейс второй формы.

Как и прежде, решая основной вопрос, мы попутно будем знакомиться с новыми компонентами и функциями.

Для функционировании программы нам понадобятся компонент image delphi и компоненты MainMenu, CheckBox и Panel.

Для начала настроим размеры компонента «Panel».

Для этого введём две глобальные переменные для хранения значений высоты и ширины панели:

var h_rem,w_rem:integer;

и расположим их в секции Interface.

В инспекторе объектов на вкладке «Events» (события) найдём событие «onCreate» (событие возникает перед тем, как среда IDE завершит внутри себя процесс построение кода формы. После завершения построения информация передаётся процессу отображения формы, в конце которого возникает событие «onShow»).

Дважды щёлкаем по пустому полю, в результате чего будет создан обработчик события «CreateForm».

В нём мы зададим и запомним начальные значения высоты и ширины панели на второй форме, после чего установим высоту и ширину панели:

procedure TForm2.FormCreate(Sender: TObject);

h_rem:=380;

w_rem:=630;

form2.Image1.Height:=h_rem;

form2.Image1.Width:=w_rem;

form2.Panel1.Color:=rgb(200,170,120); //функция rgb(r,g,b) устанавливает цвет по 3-м компонентам: r-красному, g-зелёному и b-синему. Каждый из них может принимать значение от 0 до 255.

Здесь мы также устанавливаем цвет панели с помощью функции rgb().

Если менять числа в скобках этой функции от 0 до 255, то получим всю возможную палитру цветов.

Теперь разместим компонент «MainMenu» (главное меню), который находится на вкладке «Standad» и позволяет создать главное меню формы. На форме этот компонент отображается в виде значка, который не виден в период прогона программы. Например:

картинка на форме delphi

Компонент «CheckBox» (выбрать) находится на вкладке «Standad» и позволяет организовать в программе выбор. При установленном флажке — один вариант действий, при неустановленном — другой.

картинка на форме delphi картинка на форме delphi

Компонент delphi image находится на вкладке «Additional» и на форме выглядит в виде пунктирной рамки. В границах этого компонента отображаются точечные изображения. Стандартно Delpahi поддерживает графические файлы с расширением «.bmp». Чтобы в delphi image загрузить картинку jpg необходимо подключить модуль «JPEG» в предложении «Uses», после чего можно загружать файлы с расширением «.jpg» или «.jpeg».

картинка на форме delphi

После размещения компонент на форме последняя будет иметь вид (если раскрыть пункт меню «Показать»):

картинка на форме delphi

В качестве фона нарисуем на форме прямоугольник с помощью компонента «Shape»:

картинка на форме delphi

площадь которого зальём зелёным цветом.

Над ним разместим панель «Panel1», на которой расположим компонент «Image1».

Главное меню «Form2» создадим в виде:

картинка на форме delphi

Первый пункт меню «розы» информационный, он не несёт никакой функциональности и поэтому его свойство «Enabled» выставим в «false». Щелчок по нему ни к чему не приведёт.

В двух следующих пунктах указан размер картинки в пикселях.

Обработчики «кликов» по второму и третьему пунктам будут вызывать загрузку картинок с указанным размером.

В зависимости от состояния флага CheckBox1 будет меняться режим отображения.

При неустановленном флаге картинка будет показаны в своём естественном размере.

При установленном флаге картинка, сохраняя пропорции, будет вписана в изначально заданные границы «Image1».

Обработчики событий пунктов меню.

Чтобы в delphi загрузить картинку в image, создадим следующие обработчики событий.

procedure TForm2.N4Click(Sender: TObject);

unit3.ImageShow(ss);

procedure TForm2.N5Click(Sender: TObject);

var ss:string; b:boolean; h,w:integer;

unit3.ImageShow(ss);

Здесь «ImageShow(ss)» процедура, размещённая в модуле «unit3». Она отвечает за отображение картинки в компоненте «Image1» в «Form2».

Модуль «unit3».

В этот модуль вынесем код реализации отображения картинки компонентом «Image». Для этого создана процедура ImageShow():

procedure ImageShow(s:string);

form2.Image1.Picture.LoadFromFile(s);//загружаем картинку из файла, чтобы в дальнейшем получить её размеры.

if form2.CheckBox2.Checked then //проверяем состояние флажка

begin //флажок возвращает значение «true», которое содержится в свойстве «Checked» компонента CheckBox2.

form2.Image1.Proportional:=true; //устанавливаем свойство Proportional компонента Image1 в true.

form2.Image1.Width:=w_rem; //устанавливаем исходные размеры

form2.Panel1.Width:=w_rem+15; //добавляем 15 пикселей, чтобы образовалась «рамка»

else

begin //флажок возвращает значение «false» (галочка в поле флажка не установлена)

w:=form2.Image1.Picture.Width; //получаем размер картинки (ширину и высоту)

form2.Image1.Width:=w; //устанавливаем размер поля «Image1» равным размеру картинки.

end; //конец оператора if

form2.Image1.Picture.LoadFromFile(s); //перезагружаем картинку, чтобы применить новые параметры.

Здесь мы использовали логическую конструкцию if (логическое_выражение) then действия, если (логическое_выражение) после своего вычисления возвращает значение «true» (истина), далее — без «;»! else действия, если (логическое_выражение) после своего вычисления возвращает значение «false» (ложь) ;

Формирование секций «Interface»

Теперь рассмотрим связь модулей между собой.

Как мы отмечали ранее, модуль Unit1 обращается к модулю Unit2, вызывая его отображение: form2.Show;

Поэтому в модуле Unit1 указываем, что модуль Unit1 использует модуль Unit2:

uses Unit2;

Модуль Unit2 обращается к модулю Unit3 для использования расположенной в ней процедуры. Поэтому в модуле Unit2 указываем:

uses Unit3;

Далее, один модуль может видеть переменные и функции в другом модуле, только если они описаны в секции Interface. Если переменные описаны в секции implementation то они видны только внутри этого модуля.

В модуле Unit3 расположена процедура ImageShow(). Чтобы она была видна извне, её описание надо разместить в секции Interface модуля:

procedure ImageShow(s:string);

Теперь все модули, в которых есть ссылки в uses на Unit3, могут обращаться к этой процедуре.

С другой стороны, в процедуре ImageShow() есть обращение к переменным h_rem и w_rem. Эти же переменные первоначально используются в модуле Unit2. Поэтому помещаем описание этих переменных в секцию Interface этого модуля:

interface

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Menus,JPEG, Spin;

var h_rem,w_rem:integer;

Результаты работы программы.

Отображение картинок в реальных размерах.

картинка на форме delphi

картинка на форме delphi

В первом случае картинка полностью вписывается в размеры панели (её размеры меньше).

Во втором — появились полосы прокрутки, так как размер картинки больше размеров панели.

Выставляем флаг «пропорционально».

Отображение первой картинки не изменится (она и так вписывалась в размеры панели), а вот вторая картинка ужмётся, полностью одним из своих размеров вписавшись в панель.

Источник

Фон формы

Добавлено через 16 минут
И еще вопрос:
Как закруглить края формы??
размер формы:

Фон формы
Пишу приложение с изменяющимся дизайном. Написал процедуру, которая рисует на указанной канве.

Tabsheet и фон формы
Есть Форма. На ней расположен pageControl с вкладками. На фон наложена картинка(через onPaint).

Png как фон формы, перемещение
Столкнулся с такой проблемой, при перемещении формы с PNG картинкой взятой за фон, она при создании.

Вложения

картинка на форме delphiкруглая форма.rar (5.0 Кб, 691 просмотров)

Кстати. чет вот не могу понять

Решение

Вот что нужно. может кому пригодиться)

(именно закругление краев)

Вот что нужно. может кому пригодиться)

(именно закругление краев)

Выбрать фон формы через combobox
Нужна программа, чтобы из меня комбокс выбирать фон изображения. пока сделала вот так, но выдает.

картинка на форме delphiCheckBox, переключающий светлый фон формы на темный
Как сделать через Check Box смену цвета формы? Я хочу сделать как бы ночной режим, чтобы по кнопке.

Как изменить фон формы №1 из формы №2
Ребят помогите плиз! private void button4_Click(object sender, EventArgs e) <.

Источник

Информационные технологии 1

Программирование на Delphi

1. Введение

Первая программа

Традиционно при изучении программирования принято создавать первую программу, которая выводит текст «Hello, world!». Не будем отступать от традиции и создадим программу, которая выводит этот текст тремя разными способами. Но вначале познакомимся с самой средой программирования Delphi. Предполагается, что на этот момент Delphi 7 уже установлена на вашем ПК. Если это не так, то перед дальнейшим прочтением лекции установите Delphi 7. При загрузке Delphi 7 вы видите такую картину:

картинка на форме delphi

Рис. 1.1. Рабочая среда Delphi 7

Познакомьтесь – это Delphi. У нее есть много окон, панелей, компонентов. С большинством из них мы познакомимся со временем, а пока нам нужно обратить внимание на 5 окон:

картинка на форме delphi

Рис. 1.2. Кнопки Save (Сохранить) и Save All (Сохранить всё) на панели инструментов

Обратите внимание, что свойства в Объектном Инспекторе принадлежат выделенному в данный момент компоненту. Выделяются компоненты простым щелчком мыши. Имейте в виду, что щелкать нужно один раз. Двойной щелчок создаст обработчик события – процедуру. Если вы ошибочно создадите таким образом процедуру, то просто сохраните проект, ничего в нее не вписывая – при сохранении последние пустые процедуры автоматически удаляются. Удалять их вручную не рекомендуется.

Снова сохраните проект и нажмите кнопку Run (или ). Убедитесь, что надпись появилась на форме, после чего закройте программу (но не Delphi) и вернитесь к форме.

Попробуем третий, немного более сложный способ. Пока что мы создавали программу, не написав ни единой строки кода. Мы занимались только дизайном, все остальные трудности Delphi взяла на себя. Теперь попробуем вывести это же сообщение, как только пользователь нажмет кнопку на форме.

Далее нам нужно создать обработчик нажатия на кнопку. Обработчик представляет собой процедуру, в которой мы будем писать наш код. Этот код будет выполняться программой всякий раз, когда пользователь нажмет на эту кнопку. Чтобы создать этот обработчик, следует дважды нажать на кнопку на форме. Вы сразу попадаете в редактор кода и видите, что процедура уже создана, курсор мигает в том месте, где мы должны ввести свой код. Пока что не будем разбираться, что тут к чему, а просто впишем строку:

Источник

картинка на форме delphi

Графические возможности Delphi: Иллюстрации, битовые образы

Вывод иллюстраций

Наиболее просто вывести иллюстрацию, которая находится в файле с расширением bmp, jpg или ico, можно при помошикомпонента image, значоккоторого находится на вкладке Additional палитры (рис. 10.11).

картинка на форме delphi

В табл. 10.8 перечислены основные свойства компонента image.

Иллюстрацию, которая будет выведена в поле компонента image, можно задать как во время разработки формы приложения, так и во время работы программы.

картинка на форме delphi

Во время разработки формы иллюстрация задается установкой значения свойства picture путем выбора файла иллюстрации в стандартном диалоговом окне, которое появляется в результате щелчка на командной кнопке Load окна Picture Editor (рис. 10.12). Чтобы запустить Image Editor, нужно в окне Object Inspector выбрать свойство Picture и щелкнуть на кнопке с тремя точками.

Если размер иллюстрации больше размера компонента, то свойству strech нужно присвоить значение True и установить значения свойств width и Height пропорционально реальным размерам иллюстрации.

Чтобы вывести иллюстрацию в поле компонента image во время работы программы, нужно применить метод LoadFromFile к свойству Picture, указав в качестве параметра имя файла иллюстрации.

загружает иллюстрацию из файла bart.bmp и выводит ее в поле вывода иллюстрации (image1).

Метод LoadFromFile позволяет отображать иллюстрации различных графических форматов: BMP, WMF, JPEG (файлы с расширением jpg).

Следующая программа, ее текст приведен в листинге 10.6, использует компонент image для просмотра иллюстраций, которые находятся в указанном пользователем каталоге. Диалоговое окно программы приведено на рис. 10.13.

Рис. 10.12. Окно Picture Editor

картинка на форме delphi

Рис. 10.13. Слайд-проектор

картинка на форме delphi

Листинг 10.6. Слайд-проектор

Программа выполняет масштабирование выводимых иллюстраций без искажения, чего нельзя добиться простым присвоением значения True свойству strech. Загрузку и вывод первой и остальных иллюстраций выполняют соответственно процедуры FirstPicture и NextPicture. Процедура FirstPicture использует функцию FindFirst для того, чтобы получить имя первого BMP-файла.

В качестве параметров функции FindFirst передаются:

Если в указанном при вызове функции FindFirst каталоге есть хотя бы один BMP-файл, значение функции будет равно нулю. В этом случае метод LoadFromFile загружает файл иллюстрации, после чего вызывается функция scaieimage, которая устанавливает размер компонента пропорционально размеру иллюстрации. Размер загруженной иллюстрации можно получить, обратившись К свойствам Form1. Image1. Picture. Width И Form1.image1.Picture.Height, значения которых не зависят от размера компонента Image.

Битовые образы

При работе с графикой удобно использовать объекты типа TBitMap (битовый образ). Битовый образ представляет собой находящуюся в памяти компьютера, и, следовательно, невидимую графическую поверхность, на которой программа может сформировать изображение. Содержимое битовогообраза (картинка) легко и, что особенно важно, быстро может быть выведено на поверхность формы или области вывода иллюстрации (image). Поэтому в программах битовые образы обычно используются для хранениянебольших изображений, например, картинок командных кнопок.

Загрузить в битовый образ нужную картинку можно при помощи метода LoadFromFile, указав в качестве параметра имя BMP-файла, в котором находится нужная иллюстрация.

Например, если в программе объявлена переменная pic типа TBitMap, топосле выполнения инструкции

битовый образ pic будет содержать изображение самолета.

Вывести содержимое битового образа (картинку) на поверхность формы или области вывода иллюстрации можно путем применения метода Draw к соответствующему свойству поверхности (canvas).

выводит картинку битового образа bm на поверхность компонента Image1 (параметры х и у определяют положение левого верхнего угла картинки на поверхности компонента).

Если перед применением метода Draw свойству Transparent объекта TBitMap присвоить значение True, то фрагменты рисунка, окрашенные цветом, совпадающим с цветом левого нижнего угла картинки, не будут выведены — через них будет как бы проглядывать фон. Если в качестве «прозрачного» нужно использовать цвет, отличный от цвета левой нижней точки рисунка, то свойству Transparentcoior следует присвоить значение символьной константы, обозначающей необходимый цвет.

Следующая программа, текст которой приведен в листинге 10.7, демонстрирует использование битовых образов для формирования изображения из нескольких элементов.

Листинг 10.7. Использование битовых образов

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *