Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 29
Текст из файла (страница 29)
5.2 • Окно программы, демонстрирующей особенностииспользования компонента TextBoxЛистинг 5.2 т Текст программы, демонстрирующей использование компонента TextBox дляввода различных данныхunit WinForml;interfaceusesSystem.Drawing, System.Collections, System.ComponentModel,System.Windows.Forms, System.Data, System.Globalization;typeTWinForml = class(System.Windows.Forms.Form)1{$REGION 'Designer Managed Code },strict privateComponents: System.ComponentModel.Container;Labell: System.Windows.Forms.Label;RadioButtonl: System.Windows.Forms.RadioButton;RadioButton2: System.Windows.Forms.RadioButton;.RadioButton3: System.Windows.Forms.RadioButton;RadioButton4: System.Windows.Forms.RadioButton;TextBoxl: System.Windows.Forms.TextBox;StatusBarl: System.Windows.Forms.StatusBar;GroupBoxl: System.Windows.Forms.GroupBox;procedure InitializeComponent;procedure TextBoxl_KeyPress(sender: System.Object;e: System.Windows.Forms.KeyPressEventArgs)procedure RadioButtonl_CheckedChanged(sender: System.Object;e: System.EventArgs);ГЛАВА 5 • Основные компоненты при программировании для .NETprocedure RadioButton4_CheckedChanged(sender: System.Object;e: System.EventArgs);procedure RadioButton3_CheckedChanged(sender: System.Object;e: System.EventArgs);procedure RadioButton2_CheckedChanged(sender: System.Object;e: System.EventArgs);procedure TextBoxl_TextChanged(sender: System.Object;e: System.EventArgs);{$ENDREGION}strict protectedprocedure Dispose(Disposing: Boolean); override;private{Private Declarations}input_ch:integer; // Переменная для указания типа данных,II которые можно вводить в TextBoxl.II Обозначим числами следующие типы данных:/10строка символов;111целое число;112дробное число;/13пароль.ds:Char;publicconstructor Create;end;• [assembly: RuntimeRequiredAttribute(TypeOf(TWinForml))]implement ation{$AUTOBOX ON}procedure TWinForml.Dispose(Disposing: Boolean);beginif Disposing thenbeginif Components <> nil thenComponents.Dispose();end;inherited Dispose(Disposing);end ;// Процедура, выполняемая в момент создания окна приложения.constructor TWinForml.Create;begininherited Create;InitializeComponent;Компонент TextBox•input_ch:=0;.ds := NumberFormatlnfo.Currentlnfo.NumberDecimalSeparator[1];StatusBarl.Panels.Add('0');StatusBarl.Panels[0].AutoSize := StatusBarPanelAutoSize.Spring;end;>// Процедура определения нажатой клавиши (отображаемого символа).procedure TWinForml.TextBoxl_KeyPress(sender: System.Object;e: System.Windows.Forms.KeyPressEventArgs);beginif (e.KeyChar = Chr(8)) then exit;case input_ch of0:; // Ввод строки текста - ограничений по вводу нет.1: //Ввод целых чисел.case e.KeyChar of' 0 ' ..
' 9 ' : ;'-': if TextBoxl.Text.IndexOf('-') о -1then e.Handled := True;else e.Handled := True;end;2: // Ввод дробных чисел.case e.KeyChar of'0' .. '9' : ;'-': if TextBoxl.Text.IndexOf('-') <> -1then e.Handled := True;elseif (e.KeyChar =NumberFormatlnfo.Currentlnfo.NumberDecimalSeparator[1])thenbeginif (TextBoxl.Text.IndexOf(e.KeyChar) <> -1)then e.Handled : = True;endelse e.Handled := True;end;3: // Ввод пароля (отображается звездочками).case e.KeyChar of10'..'9','A'..'z','A'..'я':if TextBoxl.Text.Length = 12then e.Handled := True;else e.Handled := True;end;end;end;•ГЛАВА 5 т Основные компоненты при программировании для .NET// Процедура отображения количества введенных символов// вызывается в случае, если изменилось содержимое поля ввода// TextBoxl.procedure TWinForml.TextBoxl_TextChanged(sender: System.Object; e:System.EventArgs);beginStatusBarl.Panels[0].Text := 'Количество введенных символов:'+Convert.ToString(TextBoxl.Text.Length);end ;// Установка режима ввода текста (при нажатии на кнопку// RadioButtonl).procedure TWinForml.RadioButtonl_CheckedChanged(sender: System.Object;e: System.EventArgs);beginTextBoxl.Clear;// Очистка поля для ввода.TextBoxl.Select;// Курсор устанавливается в поле// компонента.TextBoxl.MaxLength:= 20;// Ограничение максимального числа// вводимых символов.TextBoxl.PasswordChar:=Chr(0); // Режим ввода пароля отключен.input_ch:=0;end ;// Установка режима ввода целых чисел (при нажатии на кнопку// RadioButton2).procedure TWinForml.RadioButton2_CheckedChanged(sender: System.Object;e: System.EventArgs);beginTextBoxl.Clear;TextBoxl.Select;TextBoxl.MaxLength:=9;TextBoxl.PasswordChar:=Chr(0);input_ch:=1;end;// Установка режима ввода дробных чисел (при нажатии на кнопку// RadioButton3).procedure TWinForml.RadioButton3_CheckedChanged(sender: System.Obj ect;e: System.EventArgs) ;begin,TextBoxl.Clear;TextBoxl.Select;TextBoxl.MaxLength:=12;TextBoxl.PasswordChar:=Chr(0);input_ch:=2;Компонент Buttonend;// Установка режима ввода пароля (сиволов звездочки) (при нажатий// на кнопкуRadioButton4).procedure TWinForml.RadioButton4_CheckedChanged(sender: System.Object;e: System.EventArgs);beginTextBoxl.Clear;TextBoxl.Select ;TextBoxl.MaxLength:=12;TextBoxl.PasswordChar:='*';input_ch:=3;end;end.Компонент ButtonЭто последний из рассмотренных нами ранее компонентов.
Компонент Buttonпредставляет собой командную кнопку. Свойства компонента приведены в табл. 5.3.Таблица 5.3 • Основные свойства компонента B u t t o nСвойствоКомментарийNameИмя компонента. Это имя используется для доступа в программе к компоненту и егосвойствамТекст, отображаемый на кнопкеШрифт, который используется для отображения текстаЦвет текста, отображаемого на кнопкеРасстояние от левой границы формы до левой границы компонентаРасстояние от верхней границы формы до верхней границы компонентаШирина поля компонентаВысота поля компонентаПризнак доступности кнопки.
Кнопка доступна, если значение свойства равно True,если же оно равно False - кнопка недоступнаПризнак видимости кнопки на поверхности формы. Если значение свойства равноTrue - кнопка отображается, в противном случае - кнопка невидимаСпособ выравнивания текста в поле компонента.
Текст может быть прижат различнымиспособами - TopLeft, TopCenter, TopRight,MiddleLeft,MiddleCenter,MiddleRight, BottomLeft, BottomCenter, BottmRightКартинка на кнопке. Можно использовать различные форматы - bmp, gif, jpg и т.д.Рекомендуется использовать формат gif, позволяющий задавать прозрачный цвет длякартинкиTextFontForeColorLocation.XLoeation.YSize.WidthSize.HeightEnabledVisibleTextAlignImageImageAlignСпособ выравнивания картинки на кнопке.
Картинка может быть прижата к левойгранице кнопки (MiddleLef t ) , правой (MiddleRight), располагаться в центре(MiddleCenter). Также возможны и другие варианты, аналогичные используемымв свойстве T e x t A l i g n\ЬЬ¥ГЛАВА 5 • Основные компоненты при программировании для .NETТаблица 5.3 т Основные свойства компонента B u t t o n (окончание)СвойствоКомментарийimageListСвойство определяет используемый компонент i m a g e L i s t (набор картинок)в качестве источника картинок для обозначения различных состояний кнопки.Представляет собой ссылку на объект типа I m a g e L i s t (см. ниже). Чтобы задатьсвойство, требуется добавить компонент I m a g e L i s t на формуImagelndexНомер (индекс) картинки из набора компонента I m a g e L i s t , которая отображаетсяна кнопкеКак видно из табл. 5.3, кнопка может содержать картинку.
Добавить ее можнодвумя способами - указать значение свойства Image либо добавить на формукомпонент-контейнер картинок ImageList (описание компонента см. ниже)и установить связь между этими компонентами. Первый способ значительнопроще, однако таким образом нельзя задавать прозрачный цвет, поэтому цветфона должен совпадать с цветом кнопки.Компонент ImageListКомпонент ImageList представляет собой контейнер, содержащий наборкартинок.
Эти картинки могут быть использованы другими компонентами(например, компонентами Button или ToolBar). Компонент не отображаетсяв процессе выполнения программы, то есть является невизуальньил. Если выпопробуете добавить компонент ImageList в проект, то он будет перенесен нена форму, а в нижнюю часть окна Design (рис. 5.3). Точно также отображаются идругие невизуальные компоненты - в нижней части окна Design.Основные свойства этого компонента приведены ниже в табл. 5.4.Т а б л и ц а 5 . 4 т О с н о в н ы е свойства к о м п о н е н т а I m a g e L i s tСвойствоКомментарийNameИмя компонента.
Это имя используется для доступа в программе к компонентуи его свойствамImagesКоллекция картинокImageSize. w i d t hШирина картинок коллекцииImageSize.HeightВысота картинок коллекцииColorDepthГлубина цвета (количество байтов, используемых для кодирования цвета пикселя)TransparentColorСвойство задает прозрачный цвет. Точки, имеющие этот цвет, не отображаютсяНабор картинок формируется во время разработки формы из заранее подготовленных картинрк. Формат исходных картинок может быть практическилюбым (bmp, gif, png, ico). Все картинки должны быть одного размера и иметьКомпонент ImageListwWdith ii6JHetght !(6TirantparBntCa! | TransparentEfConRguratolratГГ*""ГВРис. 5.3 т Невизуальные компоненты отображаются в нижней части окна Designодинаковый цвет фона. Формируется коллекция 1тутем добавления в нее элементов.