Организация функции ПОИСК в TMemo
Предводителев Сергей
Представленный ниже код я использовал при написании текстового редактора. Всё вроде работает.
Итак, на форме должны быть TMemo (Editor), TFindDialog (FindDialog) и TButton (Button).
Сначала напишем обработчик нажатия на кнопку:
procedure TForm1.ButtonClick(Sender: TObject);
begin
FindDialog.Execute; // ОткрытиедиалогаПоиск
end;
В свойствах дилога должны быть True опции frHideWholeWord (Скрыть в диалоге выбор флажка "Только слово целиком"), frHideMatchCase (Скрыть в диалоге выбор флажка "С учётом регистра") и frDown (по-умолчанию направление поиска вниз), все остальные опции должны быть False.
В Editor свойство HideSelection должно быть False.
Теперь напишем обраобтчик на нажатие кнопки Найти далее в диалоге Поиск.
Должны быть описаны следующие переменные и метки:
var
SelPos,X,i:integer;
s,textE:string;
label 1;
Для начала посмотрим, в каком направлении нужно искать и соответственно выберем текст в котором надо искать:
if frDown in FindDialog.Options
then Editor.SelStart:=Editor.SelStart+Editor.SelLength; // этодля "поискдалее"
textE:=Editor.Text;
X:=Editor.SelStart+1;
if frDown in FindDialog.Options
then
textE:=Copy(textE,X,Length(textE)-X+1)
else
textE:=Copy(textE,0,X-1);
s:=FindDialog.FindText; // переменной s присваивается строка, которую нужно найти
Теперь напишем код собственно поиска:
if frDown in FindDialog.Options
then
{ код поиска вниз }
begin
SelPos := Pos(s,textE);
if SelPos > 0
then
begin
Editor.SelStart := SelPos + X - 2;
Editor.SelLength:=length(s);
end
else ShowMessage(pchar('Текст "'+ FindDialog.FindText+'" ненайден.'));
end
else
{ код поиска вверх }
begin
for i:=length(textE)-length(s) downto 1 do
if copy(textE,i,length(s))=s
then
begin
Editor.SelStart := i-1;
Editor.SelLength:=Length(s);
goto 1;
end;
ShowMessage(pchar('Текст "'+ FindDialog.FindText+'" ненайден.'));
1:
end;
Если строка найдена, то она выделяется, если нет, то выдаётся соответстующее сообщение.
Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.
Другие работы по теме:
Моделирование предприятия в MS Excel
Методика и этапы построения экономических моделей с помощью программы Microsoft Excel. Определение оптимальной структуры производства консервного завода на основании имеющихся статистических данных. Нахождение условного экстремума функции в Excel.
Поиск нулей функции. Итерационные методы
Поиск нулей функции - исследование и построение различных функций зависимостей. Исследование непрерывных процессов. Метод простой итерации. Итерационный процесс Ньютона, аналитическое задание системы уравнений и локализация области нахождения корня.
Методы Хука-Дживса
Метод Хука-Дживса, модифицированный метод Хука-Дживса, блок-схема, результаты работы программы.
Шпаргалка по численным методам
Определение точки пересечения отрезков, расстояния между точками, сортировка выбором, сортировка обменом, двоичный поиск, сортировка бинарными вставками.
Вычисление корней нелинейного уравнения
Нахождение нулей функции графическим методом. Вычисление корней уравнения при помощи вычислительных блоков Givel и Root. Поиск экстремумов функции. Разложение функции в степенной ряд.
Выбор жизненного пути мини-сочинение
Автор: Сочинения на свободную тему Среди десятков и сотен принимаемых человеком решений самую важную роль и влияние играет выбор жизненного пути.Потребность этого выбора возникает тогда, когда человек начинает осознавать себя в обществе и размышлять о своих потребностях.
NAUI
Введение 1 NAUI Курсы рекреационного дайвинга 2 NAUI Курсы по специальностям 3 NAUI Профессиональные курсы 4 NAUI Технические курсы Введение NAUI («National Association of Underwater Instructors») — Национальная Ассоциация Подводных Инструкторов — расположенная в США организация по подготовки дайверов, занимающаяся продвижением безопасности подводного плавания через образование.
Антарктический буревестник
Антарктический буревестник Научная классификация Латинское название Thalassoica antarctica Gmelin, 1789 Систематика на Викивидах Поиск изображений
Рыба-жаба
Рыба-жаба Научная классификация Латинское название Opsanus tau (Linnaeus, 1766) Систематика на Викивидах Поиск изображений на Викискладе Рыба-жаба
Индексирование
Чтобы задать смысл индексов для объектов класса используется функция operator[]. Второй параметр (индекс) функции operator[] может быть любого типа. Это позволяет определять ассоциативные массивы и т.п.
Динамические структуры данных
Разработка алгоритмов на динамических структурах данных. Описание структуры данных "стек". Процедуры добавления и удаления элемента, очистки памяти. Код распечатки содержимого всего стека. Инструкция пользователя, код программы, контрольный пример.
Сортировка
1. ЛАБОРАТОРНАЯ РАБОТА ПО ПРОГРАММИРОВАНИЮ УЧЕНИКА 10д КЛАССА ШКОЛЫ N57 АХМАНОВА СЕРГЕЯ ПО ТЕМЕ "СОРТИРОВКИ". 2. ПОСТАНОВКА ЗАДАЧИ. Дан файл, содержащий числа типа longint, расположенные в произвольном порядке. Требуется расположить эти числа по возрастанию, используя не более 40 килобайт оперативной памяти и дискового пространства не более чем в два раза больше исходного файла.
Поиск - простой и видимый
Поиск - жизненно важен для пользователей, с его помощью они работают со сложными веб-сайтами. Лучшие веб-сайты предлагают поле простого поиска на главной странице и отказываются от продвинутого поиска и использования рамок поиска.
Работа с файлам в Дельфи
В статье рассматриваются стандартные I/O операции с файлами, типичные ошибки и методы их предотвращения.
Операции многократной точности (операции с длинными числами)
Задание Операции многократной точности (т.е. операции с длинными числами). Конкретизация задания Сначала буквам присваивается значение – например: а=23850934, причем все переменные – целые числа, которые по длине не должны превышать 300 знаков. Потом пишется выражение, например f=(a+b)/c+(d+a).
Регрессионные зависимости
Вычисление значений регрессионно-авторегрессионной зависимости заданного выражения линейного программирования. Графическое представление математической модели в виде уравнения регрессии. Принципи оптимизации производственных и коммерческих операций.
Алгоритмы численного решения задач
Графоаналитический метод решения задач. Получение задачи линейного программирования в основном виде. Вычисление градиента и поиск экстремумов методом множителей Лагранжа. Параболоид вращения функции. Поиск решения на основе условий Куна-Таккера.
Среда программирования Delphi
Требования к аппаратным и программным средствам. Общая структура Среды Delphi. Основные элементы. Дополнительные элементы. Инструментальные средства. TButton, исходный текст, заголовки и Z-упорядочивание.
Обзор Палитры Delphi
В данной работе дается обзор стандартных и дополнительных компонентов из Палитры Компонент Delphi.
Шифрование DES - теория и практика
Процесс шифрования. Процесс расшифрования. Функция шифрования. Функция расширения Е". Функции преобразования S(i). Функция перестановки P. Функция перестановки и выбора последовательности B.
Поиск подстроки в строке с помощью хеш-функции
Поиск подстроки в строке - часто возникающая на практике задача. Поиск подстроки в строке обычной подстановкой к каждой позиции строки всей подстроки - метод неэффективный и вообще грустный.
Разработка текстового редактора 2
Содержание Содержание 1 1.Постановка задачи 2 1.Создали новый проект. 3 2.Поместили на форму компоненты Memo, MainMenu, Panel. 3 3.Создали главное меню и пункты в нем. В каждом пункте меню описали событие OnClick. 3
Гибридная система шифрования ГСШ-11
Курский Государственный Университет Кафедра программного обеспечения и администрирования информационных систем КУРСОВАЯ РАБОТА по дисциплине «Программно-аппаратная защита информации»
Изучение симметричных алгоритмов шифрования
Филиал государственного образовательного учреждения высшего профессионального образования «Санкт-Петербургский государственный инженерно-экономический университет» в г.Чебоксары
Операции многократной точности операции с длинными числами
Задание Операции многократной точности (т.е. операции с длинными числами). Конкретизация задания Сначала буквам присваивается значение – например: а=23850934, причем все переменные – целые числа, которые по длине не должны превышать 300 знаков. Потом пишется выражение, например f=(a+b)/c+(d+a).
Создание treeview в Delphi
Форма: Листинг программы unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, XPMan, SRColBtn, SRGrad, IniList, ImgList;