мне нужно что бы выделялся текст который я напишу в поле для текста.. + с прокруткой richEdit до выделеного текста, можно так сделать ? как ?)
Поиск не отвечает ;(
мне нужно что бы выделялся текст который я напишу в поле для текста.. + с прокруткой richEdit до выделеного текста, можно так сделать ? как ?)
Поиск не отвечает ;(
malish (05.02.2012)
Большой и низкий поклон вам ) Но как еще сделать скролинг ?
Да придеться переделывать в memo ...
Вот какНашёл на сайтах делфи http://www.sql.ru/forum/actualthread.aspx?tid=288746
PHP код:c("richEdit1")->Perform(0xB7, c("richEdit1")->selStart ,0);
malish (05.02.2012)
И того весь код такой:
PHP код:c("richEdit1")->setFocus();
c("richEdit1")->selStart = strpos( c("richEdit1")->text, c("edit1")->text );
c("richEdit1")->selLength = strlen( c("edit1")->text );
c("richEdit1")->Perform(0xB7, c("richEdit1")->selStart ,0);
Ну ты вообще человек
Добавь в решебник )
Что ещё полезно знать
setFocus() всётаки нужен!
setFocus() надо писать в начале кода... Т.к. сначала передаём фокус, потом выделяем, иначе может получиться, что при передачи фокуса в конце кода выделится весь текст, как и происходит с TEdit!
И ещё надо сделать проверку найден ли текст!
PHP код:$selStart = strpos( c("richEdit1")->text, c("edit1")->text );
if($selStart !== false){
c("richEdit1")->setFocus();
c("richEdit1")->selStart = $selStart;
c("richEdit1")->selLength = strlen( c("edit1")->text );
c("richEdit1")->Perform(0xB7, $selStart, 0);
}
Я так вот сделал:
А можно ли как - то сделать что бы искал дальше ?PHP код:if( c("edit1")->text == null){
}else{
$strpos = strpos( c("fmEdit->memo")->text, c("edit1")->text );
if ( $strpos === false ){
}else{
c("fmEdit->memo")->selStart = $strpos;
c("fmEdit->memo")->selLength = strlen( c("edit1")->text );
c("fmEdit->memo")->Perform(0xB7, c("fmEdit->memo")->selStart ,0);
c("fmEdit->memo")->setFocus();
}
}
__________________________________________________ ________
Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
Для новичков
__________________________________________________ ________
Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!
Да да да да да да и еще раз!
Я понял про какую вы тему !
Ссылка битая.
Как это битая, в той теме нет не одной битой ссылки, там либо код прям в теме написан, дибо двски выложенные на этом форуме, либо ссылки на микрософт.
__________________________________________________ ________
Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
Для новичков
__________________________________________________ ________
Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!
Та не..в этой темеЯ понял про какую вы тему говорите.
А в этой, страницу обновите, я сначала с опечаткой слово написал по этому там результатов не было, потом сразу поправил, но видимо вам удалось открыть тему до того как я поправил опечатку.
__________________________________________________ ________
Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
Для новичков
__________________________________________________ ________
Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!
Та всеравно ссылка битая. Ладно всё проехали![]()
А там не в конец ли скролит? Во всех темах вроде в конец...
Я ведь сначала там искал... Там вроде все скролят в конец...
vGhost, ты дал ссылку такого вида, вместо ссылки на результат поиска
http://community.develstudio.ru/#
Потому она и не работает!
А как что бы многократный поиск только именно от начала строки ?
http://community.develstudio.ru/show...ll=1#post36010
Просто при первом нажатии кнопки устанавливаешь c("fmEdit->memo")->selStart на 0. Поиск начнётся с 0, затем будет идти дальше...
Можно сделать галочку, искать ли с текущей позиции курсора или с начала.
Где-то надо держать переменную, которая будет отвечать за то, "начало поиска" или "процесс поиска"... При первом нажатии туда запишется, что идёт "процесс поиска" и не будет уже искать тоже самое с начала, а продолжит... после завершения поиска вернуть переменной значение "начало поиска".
Думаю понятно... Что тут не понятного при первом поиске ставить каретку на 0?
Та нифига! Яуже столько перепробовал..пизец. щас пробую с помощью инкремента ... ;(
Нет, там есть код который скролит на N строк, а также я где то ещё точно писал как скролить к нужной строке. Поиск по словосочетанию perform vGhost должен помоч в итоге, ток там много всего будет, хотя это много не плохо бы всё в решебник запихать..
И xsnakes, выйди в аську, "дело" есть.
Ява скрипты не отключайте в браузерах и всё будет работать: http://c.vghost.tk/dem/link.htm
З.Ы. есть у меня ещё интересный пример, прада с багом, но я не редактор делал тогда, а пытался идею донести как лучше сделать, если его кто до ума доведёт (баг исправит), получится не плохо имхо..
вот тема вобщем http://community.develstudio.ru/showthread.php/1171
__________________________________________________ ________
Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
Для новичков
__________________________________________________ ________
Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!
Как это поможет решить мою проблему ?)
Например так... Ну это просто...
Тут фигня в том, что каретка ставится на 0 перед поиском... Т.е. перед поиском юзер может поставить каретку обратно в конец...
Поэтому надо делать переменную global $find; и ставить туда например true, когда открываем поиск, а когда нажимаем поиск, ставить false.
Сделать условие если переменная true, то ставить каретку на 0 и искать иначе просто искать...
Короче надо подстраивать под свой проект код, а не писать всё что сказал xsnakes
Сделать например кнопку "Поиск ниже", "Поиск выше" как в EmEdit (по мне очень удобный редактор)
Аха ) можно сказать копи паст моего кода..нельзя было просто написать c("richEdit1")->selStart = 0; ?
Хм..просто хотел по другому сделать..ну а теперь как искать текст вверхЗНаю надоел но как то не получаеться..
Всё ? ты что тю тю ? там еще работы гора!
Ссыль не кликабельна
Щас поисчу что нибудь...
Вот тебе счастье! Я о таком и не знал, как и о stripos, но потратив меньше минуты нашёл...
http://www.php.su/functions/?strripos
Переведите пожалуйстаPHP код:class ev_fmPHPEditor_f_prev {
static function onClick(){
$GLOBALS['__findIndex'] -= 1;
if ($GLOBALS['__findIndex']<0)
$GLOBALS['__findIndex'] = count($GLOBALS['__find'])-1;
ev_fmPHPEditor_f_text::onKeyUp(0, 13);
$GLOBALS['__findIndex'] -= 1;
}
}
![]()
Ну ё моё... опять сомаму надо делать...
А всё дело в том, что оно ищет последний текст... т.е. чтобы найти пред последний, надо отрезать текст, ну или указывать отрицательную позицию, что было бы правильней!
Хотя не... отрицательная позиция не работает...
Да там капец..ящас пробую, уже запутался![]()
Та придётся резать строку... Я почти сделал, ток дето баг...
Хм... Заработало... Хз де ошибка была, написал заного, получилось!
PHP код:$edit = c("richEdit1");
$selStart = strripos( substr($edit->text,0,$edit->selStart), c("edit1")->text );
if($selStart !== false){
$edit->setFocus();
$edit->selStart = $selStart;
$edit->selLength = strlen( c("edit1")->text );
$edit->Perform(0xB7, $selStart, 0);
}
СПАСИБО!
Я надеюсь я не сильно тебя достал )