- •2. Визуальные компоненты
- •2.1. Свойства
- •2.2. События
- •2.3. Методы
- •If Edit1.CanFocus then Edit1.SetFocus; {перед получением фокуса производится проверка на возможность передачи фокуса компоненту}
- •3. Работа с текстом
- •3.1. Использование надписей
- •3.2. Однострочный редактор
- •3.3. Общие свойства, события и методы компонентов редактирования
- •3.4. Класс tStrings
- •3.5. Многострочный редактор
- •3.6. Использование списков
- •3.7. Таблица String Grid
- •4. Кнопки и переключатели
- •4.1. Работа с кнопками
- •4.1.1. Стандартная кнопка
- •4.1.2. Кнопка с рисунком
- •4.2. Работа с переключателями
- •4.2.1. Переключатель с независимой фиксацией
- •If CheckBox1.Checked then MessageDlg ('Время истекло! ', mtError, [mbОк], 0);
- •4.2.2. Переключатель с зависимой фиксацией
- •4.3. Объединение элементов управления
- •5. Использование форм
- •5.1. Свойства, методы и события форм
- •5.2. Организация взаимодействия форм
- •5.3. Особенности модальных форм
- •5.4. Шаблоны форм
- •5.5. Процедуры и функции, реализующие диалоги
- •5.6. Стандартные диалоги
- •If OpenDialog1.Execute then // при отмене диалога открытие файла не происходит
- •If SaveDialog1.Execute then { Получить имя файла }
- •6.Главное и контекстное меню, панели инструментов
- •6.1. Класс tMenuItem
- •6.2. Cоздание главного и контекстного меню
- •6.3. Динамическая настройка меню
- •6.4. Панели инструментов
- •7. Создание графических изображений
- •7.1. Классы для работы с графикой
- •7.2. Основные компоненты для размещения изображений
- •7.3. Типы графических объектов
- •7.4. Создание диаграмм
- •8. Печать объектов
- •8.1. Класс tPrinter
- •8.2. Печать текста
- •Var fPrn: Text; // объявлена переменная типа Text.
- •8.3. Диалоговые окна для работы с принтером
- •8.4. Печать графических изображений
- •8.4.1. Печать форм
- •8.4.2. Печать диаграмм
- •9. Работа с датами
- •9.1. Преобразование даты
- •9.2. Компоненты для ввода дат
- •10. Сохранение параметров программы.
- •Ini : tIniFile; //объявляем переменную типа inifile
- •Ini : tIniFile; //объявляем переменную типа inifile
- •11. Обработка исключительных ситуаций
- •Var f: File; begin AssignFile(f, 'Somefile.Ext'); try // оператор, в котором возможна ошибка Reset(f); // работы с файлом finally CloseFile(f) end;
3.3. Общие свойства, события и методы компонентов редактирования
Событие OnChange типа TNotifyEvent возникает при любых изменениях в содержимом редактора и можно использовать для проверки информации в поле ввода.
Свойство Modified типа Boolean при модификации данных редактора принимает значение True.
Пример проверки сохранения редактируемой информации на диске:
if Memo1.Modified then
begin
// операторы выдачи предупреждения и сохранения информации
end;
Свойство MaxLength типа Integer указывает максимальное количество вводимых символов. Ограничение на длину текста относится к вводу со стороны пользователя, программно можно ввести большее количество символов, чем задано в свойстве. По умолчанию длина ввода текста пользователем не ограничена (MaxLength = 0).
Свойство AutoSelect типа Boolean определяет, будет ли автоматически выделен текст в элементе редактирования, когда последний получает фокус управления (по умолчанию имеет значение True).
Значение свойства SelText типа String определяет выделенный фрагмент.
Свойства SelStart и SelLength типа Integer задают соответственно начальную позицию в строке (отсчет символов в строке начинается с нуля) и длину выделенного фрагмента. Свойства SelStart и SelLength взаимозависимы, поэтому при выделении фрагмента программным способом сначала необходимо установить значение свойства SelStart, а затем определять длину выделенного текста, задавая значение свойства SelLength.
Свойство HideSelection типа Bооlеаn определяет, будет ли отображаться выделенный текст при потере компонентом фокуса управления. Если свойство HideSelection имеет значение True (по умолчанию), то текст будет выглядеть выбранным при переходе фокуса на другой элемент управления.
Пример операции с выделенным текстом:
Memo1.SelStart := 19;
Memo1.SelLength := 6; // в компоненте Mеmо1 6 символов,
Memo1.SelText := 'abcdefgh'; // начиная с 19-го, заменяются на строку abcdefgh.
if pos('qwerty', Edit1.Text) <> 0 then // в поле Edit1 осуществляется поиск строки qwerty
begin
Edit1.HideSelection := false;
Edit1.SelStart := роs('qwertу', Edit1.Text)-1; // в случае удачного поиска найденный
Edit1.SelLength := length('qwerty'); // фрагмент выделяется.
end;
Метод SelectAll выделяет весь текст в элементе редактирования.
Методы CopyToClipBoard и CutToClipBoard соответственно копируют и вырезают в буфер обмена выделенный фрагмент текста. Например, Memo1.CutToClipBoard; // вырезает выделенный фрагмент и помещает в буфер обмена
Метод PasteFromClipBoard предназначен для вставки текста в элемент редактирования из буфера обмена в место текущего расположения курсора. Если имеется выделенный фрагмент, то вставляемый текст заменяет его.
Для проверки данных, введенных в элемент редактирования, можно использовать событие OnExit, возникающее при окончании ввода, то есть при потере этим элементом фокуса управления.
Пример проверки данных, введенных в редактор:
procedure TForm1.Edit1Exit (Sender: TObject);
begin
if (Edit1.Tеxt = '123') or (Edit1.Text ='456') thеn
bеgin
MessageDlg('Артикул '+ Edit1.Text + ' неправильный!' +
#13#10'Повторите ввод.', mtЕrrоr, [mbOK], 0);
Edit1.SеtFoсus;
Edit1.SelectAll;
end;
end;
Cвойства ReadOnly и Enabled обеспечивают отображение нередактируемого текста.