Главная » Просмотр файлов » Шупрута В.В. - Delphi 2005 - Учимся программировать

Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 33

Файл №1080891 Шупрута В.В. - Delphi 2005 - Учимся программировать (Шупрута В.В. - Delphi 2005 - Учимся программировать) 33 страницаШупрута В.В. - Delphi 2005 - Учимся программировать (1080891) страница 332018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 33)

5.12 • Форма программы просмотра изображенийизображений используется компонент PictureBox. Отображение выбранногофайла в списке осуществляет процедура обработки события S e l e c t e d l n dexChenged, которое происходит в результате щелчка по элементу списка или перемещения указателя текущего элемента списка при помощи клавиш клавиатуры.ГЛАВА 5 V Основные компоненты при программировании для .NETЛистинг 5.7 т Текст программы для просмотра изображенийunit WinForml;,interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data, System.10,Borland.Vcl.SysUtils;typeTWinForml = clase(System.Windows.Forms.Form){$REGI0N 'Designer Managed Code'}strict privateComponents: System.ComponentModel.Container;ListBoxl: System.Windows.Forms.ListBox;Label1: System.Windows.Forms.Label;PictureBoxl: Systern.Windows.Forms.PictureBox;procedure InitializeComponent;procedure TWinForml_Load(sender: System.Object;e: System.EventArgs);procedure ListBoxl_SelectedIndexChanged(sender: System.Object;e: System.EventArgs);{$ENDREGION}strict protectedprocedure Dispose(Disposing: Boolean); override;private{ Private Declarations }publicconstructor Create;end;[assembly: RuntimeRequiredAttribute(TypeOf(TWinForml))]implementationvar current_dir:DirectoryInfo;// Содержит информацию о каталоге.dir_files:array of Filelnfo;// Содержит информацию о файлах// каталога.{$AUT0B0X ON}procedure TWinForml.Dispose(Disposing: Boolean);beginif Disposing thenbeginif Components <> nil thenComponents.Dispose();end;Компонент ListBoxinherited Dispose(Disposing);end;constructor TWinForml.Create;begininherited Create;InitializeComponent;end;procedure TWinForml.TWinForml_Load(sender: System.Object;e: System.EventArgs);var i:integer; // Счетчик цикла.num:integer; // Переменная для хранения количества файлов// в каталоге.s:string; // Переменная для хранения имени текущего каталога.begin// Узнаем текущий каталог программы.s:=GetCurrentDir();// Создаем объект типа Directorylnfo.trycurrent_dir:=DirectoryInfo.Create(s+'\Photos\');exceptOn e:Exception dobeginMessageBox.Show(e.Message) ;end ,end ;// Читаем файлы *.jpg из подкаталога photos.dir_files:=current_dir.GetFiles('*.jpg') ;// Запоминаем количество найденных файлов.num:=length(dir_files) ;// Устанавливаем признак необходимости сортировки в True.ListBoxl.Sorted:=True;// Добавляем найденные файлы в ListBox.for i:= 0 to num-1 doListBoxl.Items.Add(dir_files[i].Name);// Ставим указатель на первый элемент списка.ListBoxl.SelectedIndex:=O;end ;// Процедура отображения текущего элемента списка (файла)// в компонентеPictureBox.procedure TWinForml.ListBoxl_SelectedIndexChanged(sender:System.Object; e: System.EventArgs)var str:string;begin>игГЛАВА S • Основные компоненты при программировании для .NET// Формируем полное имя файла, который будем отображать.str:=current_dir.FullName+ListBoxl.Selecteditem.ToString()// Заносим это имя в свойство Image компонента PictureBox.PictureBoxl.Image:=System.Drawing.Bitmap.FromFile(str);end;end.Результат работы программы приведен на рис.

5.13.Выберите Фотографиюдля просмотреРис. 5.13т Результат работы программы просмотра изображенийКомпонент CheckedListBoxЭтот компонент также является списком, однако перед каждым его элементом находится переключатель CheckBox. Свойства компонента приведены в табл. 5.13.Таблица 5.13 т Основные свойства компонента CheckedListBoxСвойствоКомментарийNameИмя компонента, используемое для доступа в программе к компоненту и егосвойствамItemsЭлементы списка - коллекция строк11 ems.

CountОбщее количество элементов спискаКомпонент PktureBoxТаблица 5.13 т Основные свойства компонента checkedListBox (окончание)СвойствоКомментарийCheckOnClickСпособ пометки элементов списка. Если свойство установлено в True, то принажатии на элемент списка производится его выбор и изменение флажкапереключателя.

Если же свойство установлено в False, то при нажатиипроисходит выбор элемента списка, а изменение состояния переключателя только при повторном нажатии на элемент спискаКоллекция, содержащая выбранные элементы спискаКоличество выбранных элементов спискаКоллекция, содержащая номера выбранных элементов спискаПризнак необходимости(Sorted=True)сортировки элементов коллекции последобавления очередного элементаCheckedltemsCheckedltems.CountCheckedlndicesSortedSelectionModeСвойство определяет режим выбора элементов списка. Может приниматьследующие значения: One - только один элемент, M u l t i s i m p l e - возможенвыбор нескольких элементов, M u l t i E x t e n d e d - расширенный вариант выборанескольких элементов списка.

В последнем случае несколько элементов можновыбирать нажатием клавиши Ctrl, а также выбирать диапазон с помощьюнажатой клавиши ShiftScrollAlwaysVisibleПризнак необходимости всегда отображать вертикальную полосу прокрутки.Если свойство равно Faise, то полоса прокрутки отображаться не будет, чтоможет привести к тому, что не будут отображаться некоторые элементы спискаMultiColuinnПризнак необходимости отображать список в несколько колонок.

Количествоколонок зависит от количества элементов и размера компонентаСвойство, определяющее положение компонента на поверхности формыLocation.X,Location.-YSize.WidthSize.HeightFontРазмер компонента с учетом (для типа simple) или без учета (для типовDropDown и DropDownList) размера области списка или области вводаШрифт, используемый для отображения содержимого поля редактированияи элементов спискаФормируется список CheckedListBox также двумя способами - либо сиспользованием редактора свойств String Collection Editor, либо с использованием метода Add свойства Items.Компонент PictureBoxКомпонент PictureBox обеспечивает отображение иллюстрации (файла рисунка). Свойства компонента приведены в табл.

5.14.Таблица 5 . 1 4 т Основные свойства компонента P i c t u r e B o xСвойствоКомментарийNameИмя компонента, используемое для доступа в программе к компонентуи его свойствамИллюстрация, отображаемая в поле компонента,ImageГЛАВА 5 т Основные компоненты при программировании для .NETТаблица 5.14 т Основные свойства компонента PictureBox (окончание)IСвойствоКомментарийImage. p h y s i c a l D i m e n s i o nСвойство содержит информацию о размере иллюстрации, загруженнойв поле компонентаSizeModeСпособ отображения картинки. Существует четыре режима отображения так называемые способы масштабирования. Normal - обычный режим,без масштабирования, s t r e t c h l m a g e - масштабирование картинкидо размера области отображения компонента P i c t u r e B o x (если размеркартинки не пропорционален размеру иллюстрации, то она будетискажена), A u t o s i z e - размер компонента автоматически изменяетсядо размеров картинки, Center Image - центрирование картинки в полеотображения компонента, если размер иллюстрации меньше размераобласти отображенияBorderStyleВид границы компонента: None (граница отсутствует), F i x e d S i n g l e(обычная), Fixed3D («объемная» граница)Locat i o n .

x ,Location.YСвойство, определяющее положение компонента на поверхности формыSize.widthSize.HeightРазмер компонентаvisibleПризнак необходимости отображения компонента (и, соответственно,изображения)'GraphicsПоверхность, на которую можно выводить графикуЧтобы задать картинку во время дизайна формы, необходимо в строке свойстваImage щелкнуть на кнопке с тремя точками и в появившемся окне выбрать файлизображения. Добавленное таким образом в форму изображение будет обработаноDelphi и помещено в файл ресурсов проекта.

Соответственно, сам файлизображения нам больше не понадобится. Если же потребуется загружатькартинку во время выполнения программы, то следует воспользоваться методомFromFile (дословно - «Из файла»). В качестве параметра нужно указать полноеимя загружаемого в PictureBox файла. Например, инструкцияPictureBoxl.Image:=System.Drawing.Bitmap.FromFile('d:\example.bmp1)загрузит и отобразит в компоненте PictureBox файл d:\example.bmp. Компонент может отображать не только файлы формата bmp. Данным методом можно также загружать файлы jpg, gif, png.Помните, что при загрузке изображения компонент P i c t u r e B o x необеспечивает пропорционального масштабирования (без искажения).В качестве примера можно привести программу, иллюстрирующую особенностииспользования компонента PictureBox. Форма программы приведена на рис. 5.14.При выборе соответствующего переключателя устанавливаются режимымасштабирования.

Всего таких режимов четыре:>• Normal - масштабирование не производится;>• Centerlmage - изображение центрируется;Компонент PictureBoxот«5раж»««(мааи1га&чж«»в«1|картити *~NormalГ" Centertmage:—^~*"* SttetcNmage С" Д^Дсйет ', f граячжионвльньйРис. 5.14 т Форма программы, демонстрирующей использование компонента PictureBox>• S t r e t c h l m a g e - изображение «подгоняется» под размер компонента;> A u t o S i z e - автоматическое изменение размеров области отображения взависимости от размера картинки.Текст программы приведен в листинге 5.8.Листинг 5.8 т Текст программы, демонстрирующей использование компонента PictureBoxunitWinForml;interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data, System.

Resources,typeTWinForml = class(System.Windows.Forms.Form){$REGION 'Designer Managed Code'}strict privateComponents:. Systern.ComponentModel.Container;PictureBoxl: System. Windows. Forms. PictureBox;GroupBoxl: System.Windows.Forms.GroupBox;RadioButtonl: System.Windows.Forms.RadioButton;RadioButton2: System.Windows.Forms.RadioButton;RadioButton3: System.Windows.Forms.RadioButton;RadioButton4: System.Windows.Forms.RadioButton;ГЛАВА 5 • Основные компоненты при программировании для .NETRadioButton5: System.Windows.Forms.RadioButton;procedure InitializeComponent; 'procedure RadioButton2_Click(sender: System.Object;e: System.EventArgs);procedure RadioButtonl_Click(sender: System.Object;e: System.EventArgs);procedure RadioButton3_Click(sender: System.Object;e: System.EventArgs);procedure RadioButton4_Click(sender: System.Object;e: System.EventArgs);procedure RadioButton5_CheckedChanged(sender: System.Object;e: System.EventArgs);{$ENDREGION}strict protectedprocedure Dispose(Disposing: B o o l e a n ) ; override;privateP_Size : Size;// Размер компонентаPictureBox,// задаваемый во время созданияформы.publicconstructor Create;end;[assembly:RuntimeRequiredAttribute(TypeOf(TWinForml))]imp 1 ement at i on{$AUTOBOX ON}procedure TWinForml.Dispose(Disposing:beginif Disposing thenbeginif Components <> nil thenComponents.Dispose() ;end;inherited Dispose(Disposing);end;Boolean);constructor TWinForml.Create;begininherited Create;InitializeComponent;// Получаем фактические размеры компонентаP_Size.Width:=PictureBoxl.Width;P_Size.Height:=PictureBoxl.Height;end;// Режимотображения-Normal.PictureBox.Компонент PictureBoxprocedure TWinForml.RadioButtonl_Click(sender: System.Object;e: System.EventArgs);beginPictureBoxl.SizeMode:=PiсtureBoxSizeMode.Normal;PictureBoxl.Size:=P_Size;end;// Режим отображения - Centerlmage.procedure TWinForml.RadioButton2_Click(sender: System.Object;e: System.EventArgs);beginPictureBoxl.SizeMode:=PictureBoxSizeMode.CenterImage;PictureBoxl.Size:=P_Size;end;// Режим отображения - Stretchlmage.procedure TWinForml.RadioButton3_Click(sender: System.Object;e: System.EventArgs);beginPictureBoxl.SizeMode:=PiсtureBoxSizeMode.Stretchlmage;PictureBoxl.Size:=P_Size;end;// Режим отображения - AutoSize.procedure TWinForml.RadioButton4_Click(sender: System.Object;e: System.EventArgs);beginPictureBoxl.SizeMode:=PiсtureBoxSizeMode.AutoSize;end;// Пропорциональное отображение картинки.procedure TWinForml.RadioButton5_CheckedChanged(sender:System.Object; e: System.EventArgs);vardx,dy,scale: real;begin// Режим отображения - без масштабирования.PictureBoxl.SizeMode:=PiсtureBoxSizeMode.Normal;PictureBoxl.Size:=P_Size;// Если ширина компонента PictureBox меньше ширины иллюстрации,// то вычислить коэффициент масштабирования по длинеif PictureBoxl.Width>PictureBoxl.Image.PhysicalDimension.Widththen dx:=lelse dx:=PictureBoxl.Width/PictureBoxl.Image.PhysicalDimension.Width;// и высоте.ГЛАВА 5 • Основные компоненты при программировании для .NETif PictureBoxl.Height > PictureBoxl.Image.PhysicalDimension.Heightthen dy:=1else dy:=PictureBoxl.Height/PictureBoxl.Image.PhysicalDimension.Height;// Определяем итоговый коэффициент масштабирования// (чтобы не было искажения картинки,// коэффициенты масштабирования должны быть одинаковыми// по обеим осям).if dx<dythenscale:=dxelsescale:=dy;if scale=lthen// Если масштабировать не надо, режим масштибирования // Normal.PictureBoxl.SizeMode := PictureBoxSizeMode.Normalelsebegin// В противном случае// выполняем масштабирование.PictureBoxl.SizeMode:=PictureBoxSizeMode.Stretchlmage;PictureBoxl .Width: =Round (PictureBoxl.

Характеристики

Тип файла
PDF-файл
Размер
37,94 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
314
Средний доход
с одного платного файла
Обучение Подробнее