Как вставить картинку в delphi
Как вставить картинку?
Как вставить картинку в reportf?
Нужно в отчет вставить картинку,использую reportf.

Подскажите как вставить картинку на форму? Кидаю обьект image, а дальше что?

КАК в Panel1 вставить картинку и вместе с картинкой двигать
Вложения
![]() | gr32.rar (1.15 Мб, 727 просмотров) |
спасибо огромное,я просто год назад практику проходил на delphi, а тут надо писать базу данных, а я забыл слишком многое, выручил)благодарствую =)
Добавлено через 54 минуты
ещё вопрос,все время прошедшее от прошлого ответа,искал как сделать картинку немного прозрачной?
Transparent ставил true, но оказывается этого мало

Добрый день. Помогите пожалуйста. Как написать процедуру, чтобы при нажатие кнопки появлялась.
Как вставить в пустой Image картинку при нажатии кнопки?
Ребята нужна помощь, хочу при каждом клике на фамилию игрока отдельное фото, как это сделать?
Вставить картинку
Здравствуйте, у меня такой вопрос, мне надо вставить картинку в Delphi. У меня есть ComboBox с 10.
Вставить картинку в memo
Я нашел скин который используется и вставил его в свой проект. Но картинки которые вставлены в.
Отображение картинки в 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» и позволяет создать главное меню формы. На форме этот компонент отображается в виде значка, который не виден в период прогона программы. Например:
Компонент «CheckBox» (выбрать) находится на вкладке «Standad» и позволяет организовать в программе выбор. При установленном флажке — один вариант действий, при неустановленном — другой.

Компонент delphi image находится на вкладке «Additional» и на форме выглядит в виде пунктирной рамки. В границах этого компонента отображаются точечные изображения. Стандартно Delpahi поддерживает графические файлы с расширением «.bmp». Чтобы в delphi image загрузить картинку jpg необходимо подключить модуль «JPEG» в предложении «Uses», после чего можно загружать файлы с расширением «.jpg» или «.jpeg».
После размещения компонент на форме последняя будет иметь вид (если раскрыть пункт меню «Показать»):
В качестве фона нарисуем на форме прямоугольник с помощью компонента «Shape»:
площадь которого зальём зелёным цветом.
Над ним разместим панель «Panel1», на которой расположим компонент «Image1».
Главное меню «Form2» создадим в виде:
Первый пункт меню «розы» информационный, он не несёт никакой функциональности и поэтому его свойство «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;
Результаты работы программы.
Отображение картинок в реальных размерах.
В первом случае картинка полностью вписывается в размеры панели (её размеры меньше).
Во втором — появились полосы прокрутки, так как размер картинки больше размеров панели.
Выставляем флаг «пропорционально».
Отображение первой картинки не изменится (она и так вписывалась в размеры панели), а вот вторая картинка ужмётся, полностью одним из своих размеров вписавшись в панель.
Работа с JPEG изображением в Delphi
Меня очень часто спрашивают как можно вставить изображение в формате Jpeg в исполняемый модуль или как можно просматривать jpeg-изображения в программе. В этой статье я попробую рассказать и показать на примерах как можно работать со jpeg-изображениями.
Для этих целей в Дельфи предусмотрено два класса TJpegImage и TJpegData. Мы будем использовать первый, он описан в модуле JPEG (его надо подключить в uses).
Теперь попробуем реализовать такую вещь. Сделаем конвертер картинок в формате *.bmp в формат *.jpeg. Для этого нам понадобится такие компоненты: TImage (для просмотра картинок), две кнопки TButton (для открытия диалога выбора картинок и для запуска процесса), TTrackBar (для того чтобы устанавливать качество картинки), TCheckBox (чтобы устанавливать или убирать флаг «Оттенки серого») и TOpenDialog.
Обработчик события OnClick для первой кнопки может иметь такой вид:
Кстати не забудьте настроить фильтр для OpenDialog1, чтобы можно было открывать только картинки в формате *.bmp.
Теперь непосредственно займемся написанием основной части программы, то есть создание jpeg-изображения. Все действия будем производить по щелчку на второй кнопке. Нам необходимо будет создать объект типа TJpegImage, провести с ним необходимые действия, а потом с помощью метода Compress, упаковать изображение и остается только сохранить изображение в файл. Еще необходимо настроить свойства TrackBar’a: свойство Max надо сделать равным 100 и свойство Position равным также 100. Итак, обработчик нажатия на вторую кнопку может быть таким:
Как вы видите все очень просто! На всякий случай приведу полный код приложения:
Для обратного преобразования из Jpg в Bmp необходимо воспользоваться методом DibNeeded.
Как загрузить картинку в delphi
Компонент delphi Image предназначен для отображение на форме графических изображений по умолчанию выводит на поверхность формы изображения представленных в bmp формате. Для вывода изображений в jpg формате необходимо в дерективе uses подключить модуль JPEG. После размещения на форме компонента Image, он принимает вид выделенной прямоугольной области(рис 1).
Загрузить картинку можно в коде программы, добавив строку:
Image1.Picture.LoadFromFile( );
Кроме этого, загрузить изображения можно с помощью Object Inspector. Для этого находим свойство Picture и слева от него нажимаем на три точки. Открывается окно Picture Editor и в нем выбираем загрузить(Load), в раскрывшемся окне выбираем файл изображения.
Мне необходимо превратить картинку объекта класса TImage в переменную, которую я в случае чего могу загрузить обратно и сделать ее картинкой того же объекта, т.к. он периодически изменяется.
1 ответ 1
Данные можно хранить в динамических массивах array of TBitmap
Тут обращение к картинке с использованием типа происходит
Этот вариант предпочтительнее так как можно сохранить имя файла.
Можно создать свою структуру и добавлять её в TList / TStringList
У bitmap есть методы сохранения в файл и поток, также как и TPicture (Image1.Picture)
О том как добавлять текстовую информацию, я писал в соответствующем посте. Но как добавить картинку? И какие в связи с этим могут возникнуть трудности? Частично добавление картинок было рассмотрено в посте про DataControls в разделе DBImage.
ДЛЯ БОЛЬШИНСТВА ФОРМАТОВ
Ссылку на класс TWICImage мне отправил пользователь под ником RIUS, эта информация добавлена чуть позже, чем я написал основной пост, но мне она показалась интересной, потому что позволяет работать с большинством форматов (единственное, пока не разобрался с PNG, с прозрачными слоями)…
Итак, знакомьтесь, класс TWICImage – позволяет обрабатывать BMP, JPEG, TIFF, PNG и др. популярные форматы…
Ещё полезная ссылка по данному классу.
Ниже Вы найдете информацию о “стандартных” способах добавления картинок в БД и чтения из БД. TWICImage я поставил наверх, потому что он, на мой взгляд, более универсальный.
ДОБАВЛЕНИЕ / ЧТЕНИЕ ЧЕРЕЗ TMemoryStream (Подходит для BMP,JPEG и др. НО НЕ PNG)
C BMP, JPEG такой трюк хорошо пройдет, только для JPEG надо подключить в uses модуль JPEG; C PNG трабл в том, что, при наличии прозрачного слоя – возникает черный фон. Как это победить, пока не придумал ((
Как сохранить изображение в БД?
Как прочитать изображение из БД?
Самое простое – в компонент DBImage, предварительно выставив свойства (например в FormCreate…)
2 способ – загрузка изображения в компонент image из BLOB поля БД…
ДОБАВЛЕНИЕ / ЧТЕНИЕ ЧЕРЕЗ ASSIGN (Подходит для BMP,JPEG и др. НО НЕ PNG)
(на примере записи в базу jpeg)
ТРАБЛ С PNG
Если применить эти методы к файлам формата PNG, то при наличии прозрачного слоя у меня возникал черный фон.
Как это победить – на настоящий момент – не знаю. Одинаковая картина – если отображать на DBImage и на Image. Причём, если PNG отображать на форме простой загрузкой файла (не через сохранение в БД и последующего чтения), то PNG отображается при этом нормально…
Возможно поможет функция Scanline, но за 1,5 дня безуспешных попыток – готового решения не получилось. Написал о проблеме на форуме, но пока тишина…
Думаю попробовать использовать 4 байт, который предназначен для Альфа канала. Довольно хорошая статья по сканлайн находится здесь.
И ещё одна статья по skyline на английском – достаточно подробная. В общем, надо разбираться в вопросе…
Но надо экспериментировать дальше…
Если у Вас есть готовое решение, пожалуйста, напишите мне на почту panteleevstas@gmail.com
Дело в том, что компонент DBImage – не поддерживает прозрачность. А Image – поддерживает.
Итак, чтобы отображать рисунки с прозрачностью, нужно загружать их в Image следующим образом…
Информационные технологии 1
Программирование на Delphi
1. Введение
Первая программа
Традиционно при изучении программирования принято создавать первую программу, которая выводит текст «Hello, world!». Не будем отступать от традиции и создадим программу, которая выводит этот текст тремя разными способами. Но вначале познакомимся с самой средой программирования Delphi. Предполагается, что на этот момент Delphi 7 уже установлена на вашем ПК. Если это не так, то перед дальнейшим прочтением лекции установите Delphi 7. При загрузке Delphi 7 вы видите такую картину:
Рис. 1.1. Рабочая среда Delphi 7
Познакомьтесь – это Delphi. У нее есть много окон, панелей, компонентов. С большинством из них мы познакомимся со временем, а пока нам нужно обратить внимание на 5 окон:
Рис. 1.2. Кнопки Save (Сохранить) и Save All (Сохранить всё) на панели инструментов
Обратите внимание, что свойства в Объектном Инспекторе принадлежат выделенному в данный момент компоненту. Выделяются компоненты простым щелчком мыши. Имейте в виду, что щелкать нужно один раз. Двойной щелчок создаст обработчик события – процедуру. Если вы ошибочно создадите таким образом процедуру, то просто сохраните проект, ничего в нее не вписывая – при сохранении последние пустые процедуры автоматически удаляются. Удалять их вручную не рекомендуется.
Снова сохраните проект и нажмите кнопку Run (или ). Убедитесь, что надпись появилась на форме, после чего закройте программу (но не Delphi) и вернитесь к форме.
Попробуем третий, немного более сложный способ. Пока что мы создавали программу, не написав ни единой строки кода. Мы занимались только дизайном, все остальные трудности Delphi взяла на себя. Теперь попробуем вывести это же сообщение, как только пользователь нажмет кнопку на форме.
Далее нам нужно создать обработчик нажатия на кнопку. Обработчик представляет собой процедуру, в которой мы будем писать наш код. Этот код будет выполняться программой всякий раз, когда пользователь нажмет на эту кнопку. Чтобы создать этот обработчик, следует дважды нажать на кнопку на форме. Вы сразу попадаете в редактор кода и видите, что процедура уже создана, курсор мигает в том месте, где мы должны ввести свой код. Пока что не будем разбираться, что тут к чему, а просто впишем строку:
















