Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2009, 12:27   #1
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию Поиск в Tmemo через TEdit

здравствуйте! есть код прописанный в Tedit (OnChenge):
Код:
var 
Find:string; 
i:integer; 
begin
find:=Edit1.Text; 
For i:=0 to Memo1.Lines.Count-1 do 
If Pos(FIND, Memo1.Lines.Text)<>0 
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FIND);
End;
Все работате,но поиск чувствителен к регистру!(

Что то я не догоню если кинуть еще на форму CheckBox (с caption: учитывать регистр) то догнать не могу как такое реализовать.

Т.е.
Код:
var 
Find:string; 
i:integer; 
begin
If CheckBox.Checked=true then
find:=Edit1.Text; 
For i:=0 to Memo1.Lines.Count-1 do 
If Pos(FIND, Memo1.Lines.Text)<>0 
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FIND);
End;
Begin
If CheckBox.Checked=false then
НЕ УЧИТЫВАТЬ РЕГИСТР
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 05.09.2009, 12:29   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Memo1.Lines.Text и find переводи в верхний регистр и ищи
Цитата:
Функция UpperCase -Изменяет символы в строке из нижнего регистра в верхний
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 05.09.2009 в 12:32.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 05.09.2009, 12:37   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Лучше использовать AnsiUpperCase или AnsiLowerCase.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 05.09.2009, 12:43   #4
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Terran Посмотреть сообщение
Лучше использовать AnsiUpperCase или AnsiLowerCase.
смысле?я не так давно кодю на делфи поэтому можно сказать мне многое не понятно(((
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 05.09.2009, 12:53   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

AnsiUpperCase и AnsiLowerCase - это функции, находящиеся в модуле SysUtils. Они выполняют перевод символов в верхний и нижний регистр. Только в отличие от функции UpperCase эти функции переводят как и русские так и английские символы и многое другой, а функция UpperCase переводит только английские.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 05.09.2009, 13:12   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Недавно уже была похожая тема.
Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
   Find,memtext:string;
   i:integer;
begin
   if checkbox1.Checked then
   begin
      find:=Edit1.Text;
      memtext:=Memo1.Lines.Text;
   end else
   begin
      find:=ANSIUpperCase(Edit1.Text);
      memtext:=ANSIUpperCase(Memo1.Lines.Text);
   end;
   for i:=0 to Memo1.Lines.Count-1 do
   if Pos(FIND, memtext)<>0 then
   begin
      Memo1.SetFocus();
      Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
      Memo1.SelLength:=Length(FIND);
   end;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 07.09.2009, 21:41   #7
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от russian-stalker Посмотреть сообщение
Недавно уже была похожая тема.
Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
   Find,memtext:string;
   i:integer;
begin
   if checkbox1.Checked then
   begin
      find:=Edit1.Text;
      memtext:=Memo1.Lines.Text;
   end else
   begin
      find:=ANSIUpperCase(Edit1.Text);
      memtext:=ANSIUpperCase(Memo1.Lines.Text);
   end;
   for i:=0 to Memo1.Lines.Count-1 do
   if Pos(FIND, memtext)<>0 then
   begin
      Memo1.SetFocus();
      Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;
      Memo1.SelLength:=Length(FIND);
   end;
end;
данный код ищет первую букву и переходит сразуже в мемо, что не есть гуд!((
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Старый 08.09.2009, 10:48   #8
Rebel123
C++ новичок
Форумчанин
 
Аватар для Rebel123
 
Регистрация: 13.06.2009
Сообщений: 160
По умолчанию

Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i,j,k:integer;
begin
for i := 0 to Form4.RichEdit1.Lines.Count - 1 do
begin
  if pos(edit1.Text,Form4.richedit1.Lines.Strings[i])<>0 then
  begin
     Form1.setfocus;
     Form4.richedit1.SetFocus;
     Form4.richedit1.SelStart := SendMessage(Form4.richedit1.Handle, EM_LINEINDEX, i, 0)+pos(edit1.Text,Form4.richedit1.Lines.Strings[i])-1;
     Form4.richedit1.SelLength := Length(edit1.Text);
     Form4.richedit1.SelAttributes.Color:=clred;
  end;
end;
end;

end.
Просто Заменишь RichEdit1 на Memo1 и все!=)
Rebel123 вне форума Ответить с цитированием
Старый 08.09.2009, 11:38   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Rebel123, пробывал заменять то?
а стоило...
код рабочий но частично...много не хватает...

ТС, нужен поиск в мемо по типу блокнота чтоли?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.09.2009, 12:53   #10
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Rebel123, пробывал заменять то?
а стоило...
код рабочий но частично...много не хватает...

ТС, нужен поиск в мемо по типу блокнота чтоли?
нужно сделать так как это реализованно в браузере firefox. т.е. мой код работатет, но только он чувствителен к регистру, а надо чтобы чувствительность к регистру не было! И не надо ничего заменять! мне пока надо просто найти в тексте, заменой текста думаю будет использован replace dialog.
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немного необычный поиск в TMemo RIO Общие вопросы Delphi 8 30.07.2009 02:12
поиск в TMemo и работа со строками MixanMM Общие вопросы Delphi 5 15.06.2009 13:44
Массивы, ввод.вывод через TEdit/TMemo MaksimSeriy Общие вопросы Delphi 5 02.04.2009 01:04
задать число через TEdit )Игнат( Общие вопросы Delphi 13 22.01.2008 19:05