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

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

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

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

Граница панели инструментовможет быть тонкой ( F i x e d S i n g l e ) , «объемной» (Fixed3D) или может отсутствовать(None)Свойство определяет компонент i m a g e L i s t , который является источником картинок длякнопок панели(плоские кнопки)ImageListText A l i g nСвойство, определяющее положение поясняющего текста к кнопкам. Возможно дваварианта положения текста: справа от картинки (Right), снизу картинки (Under-neath)VisibleПризнак необходимости отображать или скрывать панель инструментов.

Если свойствоустановлено в False, то панель отображаться не будетEnabledПризнак доступности кнопок панели инструментов. Если свойство установлено в False,то кнопки на панели будут недоступныDockСвойство определяет границу окна, к которой будет прикреплена панель. Панель можетприкрепляться к верхней (Тор), нижней (Bottom), левой ( L e f t ) или правой (Right)границеВ качестве рекомендаций по использованию этого компонента можно отметить следующие. Перед использованием компонента лучше сначала добавить кформе компонент ImageList (см.

выше) и произвести его настройку. Послетого как картинки к кнопкам будут определены, можно настраивать и саму панель с кнопками. Для этого нужно в строке свойства Buttons (Кнопки) щелкнуть по кнопке с тремя точками. В появившемся окне редактора свойствКомпонент ToolBarToolBar Button Collection Editor необходимо щелкнуть по кнопке Add для добавления кнопки на панель. После того как нужное количество кнопок добавлено, можно производить настройку каждой из них. Свойства кнопки указываются в правой части упомянутого выше окна (рис.

5.18).В качестве примера использования этого компонента можно привестипрограмму, являющуюся простейшим редактором текстовых файлов. На рис. 5.19показана форма приложения, а в листинге 5.11 приведен текст программы.HeplРис. 5.18 т Добавление кнопок к панели ToolBarОткрыть файлУ| Сохранить в ЧРис. 5 . 1 9 т Форма программы, использующейкомпонент ToolBar•ГЛАВА 5 • Основные компоненты при программировании для .NETНеобходимо отметить некоторое отличие при использовании кнопок напанели ToolBar от рассмотренных нами ранее обычных кнопок Buttons. Принажатии на любую из кнопок панели инструментов возникает событие Butt o n C l i c k (не путайте с обычным событием Click, которое мы рассматривалираньше). При этом возникшее событие является общим для всех кнопок,расположенных на панели, соответственно, необходимо будет дополнительноузнавать, какая кнопка была нажата.

Для этого воспользуйтесь функцией I n dexOf, указав в качестве параметра коллекцию кнопок панели (см. ниже втексте программы). Результатом выполнения этой функции будет индекскнопки, которая была нажата (при этом необходимо помнить, что нумерацияиндексов начинается с нуля, а не с единицы).Листинг 5.11 тТекст программы «Простейший редактор текста»u n i t WinForm;interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data, System.Resources,System.Drawing.Printing, System.10, System.Text;typeTWinForm = class(System.Windows.Forms.Form){$REGION 'Designer Managed Code'}strict privatecomponents: System.ComponentModel.IContainer;ToolBar1: Systern.Windows .Forms .ToolBar;ImageListl: System.Windows.Forms.ImageList;ToolBarButtonl: System.Windows.Forms.ToolBarButton;ToolBarButton2: System.Windows.Forms.ToolBarButton;ToolBarButton3: System.Windows.Forms.ToolBarButton;TextBoxl: System.Windows.Forms.TextBox;OpenFileDialogl: System.Windows.Forms.OpenFileDialog;SaveFileDialogl: System.Windows.Forms.SaveFileDialog;procedure InitializeComponent;procedure ToolBarl_ButtonClick(sender: System.Object;e: System.Windows.Forms.ToolBarButtonClickEventArgs) ;{$ENDREGION}strict protectedprocedure Dispose(Disposing: Boolean); override;privatefile_name : string;// Имя текстового файла.stream_read:System.10.StreamReader;// Поток для выполнения// чтения.Компонент TooIBar•stream_write:System.10.StreamWriter;// Поток для выполнения// записи.encoder:System.Text.Encoding;// Кодировщик (необходим// для правильного отображения текста).procedure Open_File;// Процедура для открытия текстового// файла.procedure Save_File;// Процедура для сохранения текстового// файла.publicconstructor Create;end ;(assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))]implementation{$AUTOBOX ON}{$REGION 'Windows Form Designer generated code'}procedure TWinForm.Dispose(Disposing: Boolean);beginif Disposing thenbeginif Components <> nil then• Components.Dispose();end;inherited Dispose(Disposing);end;constructor TWinForm.Create;begininherited Create;InitializeComponent;// Устанавливаем русскую кодировку для Windows (1251).encoder:=System.Text.Encoding.GetEncoding(1251);end ;// Процедура обработки нажатия на кнопку панели инструментов.procedure TWinForm.ToolBarl_ButtonClick(sender: System.Object;e: System.Windows.Forms.ToolBarButtonClickEventArgs)begin// Определяем номер кнопки, которая была нажата.case (ToolBarl.Buttons.IndexOf(e.Button)) of0: Open_File; // Была нажата кнопка 'Открыть файл' - вызов// процедуры открытия файла Open_File// (кнопка с индексом 1 является разделителем).2: Save_File; // Была нажата кнопка 'Сохранить в файл' - вызовГЛАВА 5 • Основные компоненты при программировании для .NET// процедуры сохранения текста в файл Save_File.end;end;// Процедура открытия текстового файла// (текст отображается в поле компонента TextBoxl).procedure TWinForm.Open_File;beginOpenFileDialogl.FileName := '';// Отображаем диалоговое окно 'Открыть...

'.OpenFileDialogl.ShowDialog;if OpenFileDialogl.FileName <> NIL thenbeginfile_name := OpenFileDialogl.FileName;// Отображаем имя открытого файла в заголовке окна.Text := file_name;trystream_read := System.10.StreamReader.Create(file_name,encoder) ;TextBoxl.Text := stream_read.ReadToEnd;// Читаем весь файл.stream_read.Close;.// Закрываем поток.TextBoxl.SelectionStart:=TextBoxl.TextLength;excepton e:exception doMessageBox.Show(e.Message);end;end;end;// Процедура сохранения текста в файл.procedure TWinForm.Save_File;begin// Если имя файла не задано, то выводим// диалоговое окно 'Сохранить... '.if file_name = NIL thenbeginSaveFileDialogl.ShowDialog;file_name := SaveFileDialogl.FileName;end;// В противном случае перезаписываем открытый файл.try// Открываем поток для перезаписи.stream_write:=System.10.StreamWriter.Create(file_name,False,encoder);stream_write.Write{TextBoxl.Text); // Записываем текст в поток.Компонент ProgressBarstream_write.Close;self.Text/ / Закрываем•поток.:= file_name;excepton e : exception doMessageBox.Show(e.Message);end ;end;end.Компонент ProgressBarЭтот компонент представляет собой индикатор, обычно используемый дляотображения протекания какого-либо процесса.

Такими процессами, например, могут быть копирование файлов, загрузка данных и т.п. Чтобы не раздражать людей, использующих ваши программы, кажущимся бездействием(хотя на самом деле выполняются какие-либо трудоемкие операции), можноиспользовать именно этот компонент. Свойства компонента представлены в ,табл. 5.20.Таблица 5.20 т Основные свойства компонента ProgressBarСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и его свойствамValueЗначение, которое отображается в поле компонента в виде прямоугольников, количествокоторых пропорционально значению свойства ValueMinimumМинимальное значение, которое может принимать свойство ValueMaximumstepМаксимальное значение, которое может принимать свойство ValueСвойство, определяющее приращение свойства v a l u e .

Используется для изменениясвойства Value методом PerformStepОбратите внимание на то, что при выходе значения свойства Value заграницы диапазона, который определяется значениями Minimum и Maximum,возникнет ошибка.В качестве примера напиНажмите кнопка для начала копированияшем программу, которая копирует несколько файлов из одного каталога в другой. ФормаВыподаигъ копирование [окна программы приведена нарисунке 5.20, текст програмРис. 5 . 2 0 • Окно программы, использующейкомпонент ProgressBarмы - в листинге 5.12.ГЛАВА 5 • Основные компоненты при программировании для .NETЛистинг 5.12т Текст программы копирования файловunit WinForml;interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data,System.10, Borland.Vcl.SysUtils;typeTWinForml = class(System.Windows.Forms.Form){$REGION 'Designer Managed Code 1 }strict privateComponents: System.ComponentModel.Container;ProgressBarl: System.Windows.Forms.ProgressBar;Buttonl: System.Windows.Forms.Button;Labell: System.Windows.Forms.Label;procedure InitializeComponent;procedure Buttonl_Click(sender: System.Object;e: System.EventArgs);{$ENDREGION}strict protectedprocedure Dispose(Disposing: Boolean); override;privatedir_infо:DirectoryInfo; // Переменная для хранения информации// о каталоге.files_infо:array of Filelnfo; // Массив для хранения информации// о файлах.s:string;// Переменная для определения текущего// каталога.publicconstructor Create;end;[assembly: RuntimeReguiredAttribute(TypeOf(TWinForml))]imp1ement at ion{$AUT0B0X ON}{$REGI0N 'Windows Form Designer generated code'}procedure TWinForml.Dispose(Disposing: Boolean);beginif Disposing thenbeginif Components <> nil thenComponents.Dispose() ;end;Компонент ProgressBarinherited Dispose(Disposing);end; constructor TWinForml.Create;begininherited Create;InitializeComponent;s:=GetCurrentDir();try// Создаем объект Directorylnfo.dir_info:=DirectoryInfo.Create(s+'\Folder_l');excepton e:Exception dobeginMessageBox.Show(e.Message);end;end;// Формируем список файлов (считываются файлы типа JPG).files_info:=dir_info.GetFiles('*.jpg1);// Определяем максимальное значение свойства Value компонента// ProgressBar.ProgressBarl.Maximum:=Length(files_info);end;procedure TWinForml.Buttonl_Click(sender: System.Object;e: System.EventArgs);var i:integer;begin// Делаем кнопку недоступной в момент копирования во избежание// ошибок.Buttonl.Enabled:=False;//Устанавливаем значение Value в 0.ProgressBarl.Value:=0;// Копируем поочередно все файлы.for i:=0 to ProgressBarl.Maximum-1 dobeginProgressbarl.Increment(1);Label1.Text:='Выполняется копирование '+files_info[i].Name;Label1.Refresh;// Выполняем копирование в режиме перезаписи (True).files_info[i].CopyTo(s+'\Folder_2\'+files_info[i].Name,True);end;// Кнопка выполнения копирования снова доступна.Buttonl.Enabled:=True;Label1.Text:='Копирование завершено1;end;end.ГЛАВА 5 • Основные компоненты при программировании для .NETПрограмма работает следующим образом.

Во время создания окна определяется текущий каталог, из которого была запущена программа. Затем в этомкаталоге создается объект типа D i r e c t o r y l n f о, который указывает на папкуFolder_l. После этого формируется список файлов этого каталога (с помощьюметода Get F i l e s ) и в зависимости от их количества определяется значениесвойства Maximum компонента P r o g r e s s B a r l .Далее после нажатия кнопки Выполнить копирование последовательнокопируются файлы с одновременным изменением значения свойства Value(положением индикатора) компонента P r o g r e s s B a r l .Среди особенностей программы нужно отметить необходимость отключения кнопки B u t t o n l на весь период копирования во избежание возможныхошибок.Компонент MainMenuЭтот компонент представляет собой главное меню программы. После добавления его к ф о р м е программы в верхней части окна появится строка, которуюпредстоит заполнить элементами меню. В начале строки находится область дляввода текста (прямоугольник с надписью Type h e r e ) .

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

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

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

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