Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 37
Текст из файла (страница 37)
. '.OpenFileDialogl.ShowDialog;if OpenFileDialogl.FileName <> NIL thenbeginГЛАВА 5 V Основные компоненты при программировании для .NETfile_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// Если имя файла не задано, то выводимII диалоговое окно 'Сохранить...'.if file_name = NIL thenbeginSaveFileDialogl.ShowDialog;file_name := SaveFileDialogl.FileName;// Открываем поток для перезаписи.stream_write:=System.10.StreamWriter.Create(file_name,False,encoder);stream_write.Write(TextBoxl.Text); // Записываем текст в поток.stream_write.Close;// Закрываем поток.Self.Text:= file_name;end// В противном случаеelsetry// открываем поток для перезаписи.stream_write:=System.10.StreamWriter.Create(file_name,False,encoder) ,stream_write.Write(TextBoxl.Text); // Записываем текст в поток.stream_write.Close;// Закрываем поток.Self.Text:= file_name;excepton e : exception doMessageBox.Show(e.Message);end ;end;end.Компонент ContextMenuКомпонент ContextMenuЭтот компонент также представляет собой меню.
От предыдущего он отличаетсятем, что пункты этого меню отображаются при нажатии правой кнопки мыши (такое меню называется контекстным). После добавления этого компонента на формуприложения в строке свойств формы появится новое свойство - Cont extMenu. Дляопределения перечня пунктов меню нужно выполнить двойной щелчок по этомусвойству и заполнить элементы меню так же, как мы делали это для главного меню.После того как контекстное меню будет создано, следует выполнить егоокончательную настройку - задать значения свойств пунктов меню Menu I t em,а также определить процедуры обработки событий.
В отличие от компонентаMainMenu для ContextMenu необходимо дополнительно определить компонент,для которого это меню создано. Для этого в свойство ContextMenuкомпонента необходимо поместить ссылку на контекстное меню. Свойстваобъекта Menultem приведены в табл. 5.22.Таблица 5.22 т Основные свойства элемента меню ContextMenuСвойство КомментарийNameИмя компонента, используемое в программе для доступа к компоненту и его свойствамTextНазвание элемента менюEnabledПризнак доступности элемента меню.
Если значение свойства равно F a l s e , то названиепункта изображается инверсным цветом и при нажатии на него событие c l i c k не происходитПризнак того, что элемент меню выбран. Выбранный элемент меню помечается галочкойПризнак того, что для пометки пункта меню используется точка, а не галочкаCheckedRadioCheckСледующая программа демонстрирует использование компонента ContextMenu. Форма окна программы приведена на рис. 5.23.Текст программы приведен в листинге 5.14.Пример использования компоненте ContextMenu. При вызовесоответствующей команды меню просиходиг изменениесвойств отображаемого текста: его размера, начертания ивыравнивания.Рис.
5.23 • Форма программы, демонстрирующей вариантиспользования компонента ContextMenu•ГЛАВА 5 • Основные компоненты при программировании для .NETЛистинг 5.14т Текст программы (основные процедуры), демонстрирующей вариантиспользования компонента ContextMenu.// Выбор пункта меню 'Выравнивание текста/По центру'.procedure TWinForml.MenuItem9_Click(sender: System.Object;e: System.EventArgs);beginMenultem7.Checked:=True;Menultem8.Checked:=False;Menultem9.Checked:=False;Labell.TextAlign:=System.Drawing.ContentAlignment.TopCenter;end ;// Выбор пункта меню 'Выравнивание текста/По правому краю'.procedure TWinForml.MenuItem8_Click(sender: System.Object;e: System.EventArgs);beginMenultem?.Checked:=False;Menultem8.Checked:=True;Menultem9.Checked:=False;Labell.TextAlign:=System.Drawing.ContentAlignment.TopRight;end j// Выбор пункта меню 'Выравнивание текста/По левому краю'.procedure TWinForml.MenuItem7_Click(sender: System.Object;e: System.EventArgs);beginMenultem7.Checked:=True;Menultem8.Checked:=False;Menultem9 .C.hecked:=False;Labell.TextAlign:=System.Drawing.ContentAlignment.TopLeft;.end;.
// Выбор пункта меню 'Выбор шрифта'.procedure TWinForml.MenuItem2_Click(sender: System.Object;e: System.EventArgs);beginFontDialogl.ShowDialog ;Labell.Font:=FontDialogl.Font;end;// Выбор пункта меню 'Размер шрифта/Крупный'.procedure TWinForml.MenuItem6_Click(sender: System.Object;e: System.EventArgs);beginMenultem4.Checked:=False;" Menultem5.Checked:=False,•Menultem6.Checked:=True;Компонент OpenFileDialogLabell.Font:=System.Drawing.Font.Create(Label1.Font.FontFamily,12) .end;// Выбор пункта меню 'Размер шрифта/Средний'.procedure TWinForml.MenuItem5_Click(sender: System.Object;e: System.EventArgs) ;beginMenultem4.Checked:=False;Menultem5.Checked:=True;Menultem6.Checked:=False;Label1.Font:=System.Drawing.Font.Create(Label1.Font.FontFami ly, 10)end ;// Выбор пункта меню 'Размер шрифта/Мелкий'.procedure TWinForml.MenuItem4_Click(sender: System.Object;e: System.EventArgs);beginMenultem4.Checked:=True;Menultem5 .Checked: =False,.Menultem6.Checked:=False;Labell.Font:=Systern.Drawing.Font.Create(Labell.Font.FontFamily,8)end;КомпонентOpenFileDialogС компонентом OpenFileDialog мы уже сталкивались, когда создавали простейший текстовый редактор.
Данный компонент представляет собой стандартное диалоговое окно, позволяющее выбирать (открывать) файлы. Хотя некоторые свойства этого компонента нам уже знакомы, считаю необходимымпривести основные из них (табл. 5.23).Таблица 5.23 г Основные свойства компонента OpenFileDialogСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и егосвойствамTi t i eЗаголовок диалогового окнаFilenameИмя выбранного пользователем файла.
Помимо собственно имени файласодержит также и путь к каталогу, в котором находится файлИмя каталога, содержимое которого будет отображаться при появлении окнаПризнак необходимости того, что содержимое каталога, указанное в свойствеI n i t i a l D i r e c t o r y , будет отображаться при каждом появлении окна на экране.Если значение свойства установлено в F a l s e , то при следующем появлении окнана экране отобразится каталог, который был выбран в прошлый разInitialDirectoryRestoreDirectoryГЛАВА 5 • Основные компоненты при программировании для .NETТаблица 5.23 т Основные свойства компонента O p e n F i l e D i a l o g (окончание)СвойствоКомментарийFilterСвойство определяет описание и фильтр, по которому будут отображаться файлы.В списке файлов отображаются только те файлы, описание которых соответствуетзаданной маске.
Например, значение свойства Текстовые файлы I * . t x t будетотображать только текстовые файлы с соответствующим расширениемFilterlndexЕсли фильтр имеет несколько элементов (например, Текстовые файлы I * . t x t IФайлы изображений I * . j p g ) , то значение свойства определяет тот фильтр,который используется в момент появления окна на экранеОтображение самого диалогового окна обеспечивает метод ShowDialog.Результатом завершения будет код клавиши, которая была нажата пользователем (ОК или Cancel). Если была нажата клавиша ОК, то результатом выполнения метода будет DialogResult .Ok. Помните, что данный компонентне выполняет непосредственно открытия файла, - его назначение состоит втом, чтобы получить имя файла, над которым будут производиться соответствующие действия (например, чтение файла).Следующая программа использует компонент OpenFileDialog для открытиятекстового файла, который затем отображается с помощью компонента TextBox.Форма окна программы приведена на рис.
5.24, текст программы - в листинге 5.15...и,хамие (Twi открываемых Файлов ', (•" Текстовые Файлы f.bft)•f'.' '.'.Файлы изображений V.bmp.".ipg, "' <~ Все Файлы (".") : : : : : ' . : : : : : :Вы выбрали Файл;Открыть ФайлРис. 5.24 т Форма программы, использующей компонент O p e n F i l e D i a l o gЛистинг 5.15 т Текст программы (основные процедуры), демонстрирующей использованиекомпонента OpenFileDialog/*/ Нажатие на кнопку'Очистить'.procedure TWinForml.Button2_Click(sender: System.Object;e: System.EventArgs);beginOpenFileDialogl.FileName:='';Labell.Text:='Вы выбрали файл: ' ;Компонент SaveFileDialogwend;// Нажатие на кнопку 'Открыть файл'.procedure TWinForml.Buttonl_Click(sender: System.Object;e: System.EventArgs);begin// Определяем текущий каталог.OpenFileDialogl.InitialDirectory:=Environment.CurrentDirectory;// Определяем, какой фильтр отображения применять.if RadioButtonl.Checked thenOpenFileDialogl.Filter: ='Текстовые файлы I *.txt'; // Простой// фильтр.if RadioButton2.Checked then// Составной фильтр.OpenFileDialogl.Filter: = 'Файлы изображений I *.bmp;*.jpg;*.gif';if RadioButton3.Checked thenOpenFileDialogl.Filter:='Все файлы|*.*'; // Простой фильтр - все// файлы.OpenFileDialogl.ShowDialog;Label1.Text:='Вы выбрали файл: '+OpenFileDialogl.FileName;end;Диалоговое окно открытия файла появляется в результате нажатия кнопкиОткрыть файл.
При этом фильтр отображения файлов формируется в зависимости от выбранного значения в группе Тип открываемых файлов. В началеработы программы в диалоге текущим будет каталог, из которого была запущена программа (имя текущего каталога содержит свойство C u r r e n t D i r e c t o r yобъекта Environment).Отображение окна открытия файла, чтение и отображение текстовогофайла осуществляет метод ShowDialog компонента OpenFileDialogl.Компонент SaveFileDialogЭтот компонент, также предназначенный для работы с именами файлов, служит для сохранения файлов. Свойства компонента приведены в табл. 5.24.Таблица 5.24 т Основные свойства компонента S a v e F i l e D i a l o gСвойствоКомментарийNameИмя компонента, используемое в программе для доступа к компоненту и егосвойствамTitleЗаголовок диалогового окна.
Если свойство не указано, то заголовок будет иметьстандартное значение Сохранить какГЛАВА 5 • Основные компоненты при программировании для .МЕТТаблица 5.24 т Основные свойства компонента S a v e F i l e D i a l o g (окончание)СвойствоКомментарийFilenameИмя выбранного пользователем файла. Помимо собственно имени содержит также и путь к каталогу, в котором находится файлInitialDirectoryИмя каталога, содержимое которого будет отображаться при появлении окнаRestoreDirectoryПризнак необходимости того, что содержимое каталога, указанное в свойствеI n i t i a l D i r e c t o r y , будет отображаться при каждом появлении окна на экране.Если значение свойства установлено в False, то при следующем появлении окнана экране отобразится каталог, который был выбран в прошлый разСвойство определяет описание и фильтр, по которому будут отображаться файлы.В списке файлов отображаются только те файлы, описание которых соответствуетзаданной маске. Например, значение свойства Текстовые файлы I * .