рус | укр

Главная

Контакты

Навигация:
Арсенал
Болезни
Витамины
Вода
Вредители
Декор
Другое
Животные
Защита
Комнатные растения
Кулинария
Мода
Народная медицина
Огород
Полесадник
Почва
Растения
Садоводство
Строительство
Теплицы
Термины
Участок
Фото и дизайн
Хранение урожая









Begin if not (Key in Digit) then

Key:=#0;
end;
Что касается обработчика KeyUp, то его использование аналогично использованию обработчика KeyDown, только принимая во внимание, что событие OnKeyUp происходит в момент отпускания клавиши.

Напоследок о возможности программного управления курсором и выделения текста в компоненте Delphi Edit. Для реализации этих задач служат свойства

  • SelStart
  • SelLength
  • SelText

Все эти свойства доступны и для чтения, и для записи.

- Свойство SelStart (типа Integer) определяет порядковый номер символа, перед которым находится курсор. Отсчёт идёт от нуля;

- Свойство SelLength (типа Integer) задаёт количество выделенных символов. Причём оно может быть и отрицательным. Тогда выделение идёт в обратную сторону, справа налево;

- Свойство SelText (типа String) содержит выделенный текст.

Чтобы выделенный текст был заметен, необходимо, чтобы компонент Edit обладал фокусом ввода. Для перемещения фокуса ввода к нужному компоненту служит свойство SetFocus. То есть, чтобы было видно выделение второго символа, нужно написать:

begin
Edit1.SetFocus;
Edit1.SelStart:=1;
Edit1.SelLength:=1;
end;

 

Если пропустить первый оператор, то свойство SelText всё равно будет содержать в себе второй символ, но на экране заметно этого не будет, если, конечно, фокус ввода не был перемещён туда ранее.

Компонент Delphi Memo это простой текстовый редактор. Delphi Memo позволяет вводить многострочный текст с клавиатуры, загружать его из файла, редактировать и сохранять в файл текстового формата. Простота текстового редактора компонента Delphi Memo заключается в том, что текстовый редактор Delphi Memo не обладает возможностями форматирования содержещегося в нём текста. Это означает, что все атрибуты выбранного шрифта будут относиться ко всему тексту.

Текст в компоненте Delphi Memo размещается построчно. Поэтому имеется доступ к каждой строке текста отдельно. Строки в редакторе Delphi Memo являются объектами Lines[i] типа String, где i - номер строки, отсчитываемый от нуля. Объект Lines[i] доступен и для чтения, и для записи. Соответственно, текст в компоненте Memo можно редактировать не только с клавиатуры, но и программно:

var S: String;

begin
Memo1.Lines[3]:='Четвёртая строка по счёту';

S:=Memo1.Lines[3];
end;

Естественно, для успешного присвоения текста определённой строке необходимо, чтобы эта строка физически существовала! То есть, данным способом можно только редактировать текст. Новую строку создать таким способом невозможно. Для создания новых строк служат методы

  • Add()
  • Insert()

Метод Add() добавляет новую строку в конец, а метод Insert() внедряет новую строку после указанной, для чего метод Insert() имеет соответствующий параметр:

begin
Memo1.Lines.Add('Это будет последняя строка');

Memo1.Lines.Insert(2, 'Эта строка будет четвёртой'); //Так как отсчёт идёт от нуля!

end;

 

Компонент Delphi Memo позволяет получить доступ к тексту как целому. Свойство Text типа String является текстом, содержащимся в редакторе, в виде одной строки. Необходимо учитывать, что эта строка также будет включать в себя и непечатаемые символы конца строки #13 и символы переноса строки #10. Кстати, чтобы продолжить текст с новой строки, необходимо использовать последовательно оба этих символа:

Memo1.Text:='Предыдущий текст'+#13+#10+'Это уже новая строка';

 

Delphi Memo обладает свойствами для перемещения курсора и выделения текста, такими же, как и у компонента Delphi Edit:

  • SelStart
  • SelLenght
  • SelText

Напоминаю:
- свойство SelStart типа Integer задаёт номер символа, после которого будет стоять курсор;
- свойство SelLenght типа Integer определяет количество выделенных символов;
- свойство SelText типа String содержит выделенный текст.

 

Для того, чтобы выделение текста было заметно на экране, небходимо, чтобы компонент обладал фокусом ввода. То есть, чтобы ранее либо пользователь переместил туда курсор, клавишей Tab или щёлкнув мышкой, либо был выполнен оператор Memo1.SetFocus.

 

Просмотров: 215

Вернуться в категорию: Строительство

© 2013-2017 cozyhomestead.ru - При использовании материала "Удобная усадьба", должна быть "живая" ссылка на cozyhomestead.ru.