Поиск текста в TEdit
PHP код:
$edit = c("edit1");
$selStart = strpos( $edit->text, c("edit1")->text );
if($selStart !== false){
$edit->setFocus();
$edit->selStart = $selStart;
$edit->selLength = strlen( c("edit1")->text );
}else{
message("Текст не найден!");
}
Поиск текста в TMemo
PHP код:
$edit = c("memo1");
$selStart = strpos( $edit->text, c("edit1")->text );
if($selStart !== false){
$edit->setFocus();
$edit->selStart = $selStart;
$edit->selLength = strlen( c("edit1")->text );
}else{
message("Текст не найден!");
}
Поиск текста в TRichEdit
PHP код:
$edit = c("richEdit1");
$selStart = strpos( $edit->text, c("edit1")->text );
if($selStart !== false){
$edit->setFocus();
$edit->selStart = $selStart;
$edit->selLength = strlen( c("edit1")->text );
$edit->Perform(0xB7, $selStart, 0); // прокручиваем scroll до начала выделения
}else{
message("Текст не найден!");
}
* * *
strpos() - функция чувствительна к регистру символов, поэтому если хотим искать текст не учитывая регистр символов, то вместо:
PHP код:
$selStart = strpos( $edit->text, c("edit1")->text );
Пишем stripos():
PHP код:
$selStart = stripos( $edit->text, c("edit1")->text );
* * *
Для многократного поиска используется 3 параметр функции strpos, он задаёт позицию от куда начинать поиск.
Для этого заменим:
PHP код:
$selStart = strpos( $edit->text, c("edit1")->text );
На:
PHP код:
// поиск будет начинаться от позиции курсора! от $edit->selStart!
$selStart = strpos( $edit->text, c("edit1")->text, $edit->selStart + $edit->selLength);