+ Ответить в теме
Показано с 1 по 38 из 38
  1. #1

    Как выделить текст в richEdit

    мне нужно что бы выделялся текст который я напишу в поле для текста.. + с прокруткой richEdit до выделеного текста, можно так сделать ? как ?)
    Поиск не отвечает ;(

  2. #2
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    PHP код:
    c("richEdit1")->setFocus();
    c("richEdit1")->selStart strposc("richEdit1")->textc("edit1")->text );
    c("richEdit1")->selLength strlenc("edit1")->text ); 
    А вот прокрутка не знаю, в мемо автоматом крутит... где-то было такое!
    Последний раз редактировалось xsnakes; 05.02.2012 в 09:18.

  3. Пользователь сказал cпасибо:

    malish (05.02.2012)

  4. #3
    Большой и низкий поклон вам ) Но как еще сделать скролинг ?

  5. #4
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    В делфи есть метод ScrollBy, а в дс именно в TRichEdit нету )
    Поищу другой способ...

  6. #5
    Да придеться переделывать в memo ...

  7. #6
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Вот как Нашёл на сайтах делфи http://www.sql.ru/forum/actualthread.aspx?tid=288746
    PHP код:
    c("richEdit1")->Perform(0xB7c("richEdit1")->selStart ,0); 

  8. Пользователь сказал cпасибо:

    malish (05.02.2012)

  9. #7
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    И того весь код такой:
    PHP код:
    c("richEdit1")->setFocus(); 
    c("richEdit1")->selStart strposc("richEdit1")->textc("edit1")->text );
    c("richEdit1")->selLength strlenc("edit1")->text );
    c("richEdit1")->Perform(0xB7c("richEdit1")->selStart ,0); 
    Последний раз редактировалось xsnakes; 05.02.2012 в 09:18.

  10. #8
    Ну ты вообще человек
    Добавь в решебник )

  11. #9
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    В фак Решебник я переместил фак, а то получается 2 фака )

  12. #10
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Что ещё полезно знать
    setFocus() всётаки нужен!
    setFocus() надо писать в начале кода... Т.к. сначала передаём фокус, потом выделяем, иначе может получиться, что при передачи фокуса в конце кода выделится весь текст, как и происходит с TEdit!

    И ещё надо сделать проверку найден ли текст!
    PHP код:
    $selStart strposc("richEdit1")->textc("edit1")->text ); 
    if(
    $selStart !== false){
     
    c("richEdit1")->setFocus(); 
     
    c("richEdit1")->selStart $selStart;
     
    c("richEdit1")->selLength strlenc("edit1")->text ); 
     
    c("richEdit1")->Perform(0xB7$selStart0); 

    Последний раз редактировалось xsnakes; 05.02.2012 в 09:13.

  13. #11
    Я так вот сделал:
    PHP код:
    if( c("edit1")->text == null){
    }else{
    $strpos strposc("fmEdit->memo")->textc("edit1")->text );
    if ( 
    $strpos === false ){
    }else{
    c("fmEdit->memo")->selStart $strpos;
    c("fmEdit->memo")->selLength strlenc("edit1")->text );
    c("fmEdit->memo")->Perform(0xB7c("fmEdit->memo")->selStart ,0);
    c("fmEdit->memo")->setFocus();
    }

    А можно ли как - то сделать что бы искал дальше ?

  14. #12
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Цитата Сообщение от malish Посмотреть сообщение
    Поиск не отвечает ;(
    А пользовались?
    тыкаем: richedit скроллинг

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  15. #13
    Да да да да да да и еще раз!
    Я понял про какую вы тему !
    Ссылка битая.

  16. #14
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Как это битая, в той теме нет не одной битой ссылки, там либо код прям в теме написан, дибо двски выложенные на этом форуме, либо ссылки на микрософт.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  17. #15
    Та не..в этой теме Я понял про какую вы тему говорите.

  18. #16
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    А в этой, страницу обновите, я сначала с опечаткой слово написал по этому там результатов не было, потом сразу поправил, но видимо вам удалось открыть тему до того как я поправил опечатку.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  19. #17
    Та всеравно ссылка битая. Ладно всё проехали

  20. #18
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Цитата Сообщение от vGhost Посмотреть сообщение
    А пользовались?
    тыкаем: richedit скроллинг
    А там не в конец ли скролит? Во всех темах вроде в конец...
    Я ведь сначала там искал... Там вроде все скролят в конец...


    vGhost, ты дал ссылку такого вида, вместо ссылки на результат поиска
    http://community.develstudio.ru/#
    Потому она и не работает!
    Последний раз редактировалось xsnakes; 05.02.2012 в 10:38.

  21. #19
    А как что бы многократный поиск только именно от начала строки ?

  22. #20
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    http://community.develstudio.ru/show...ll=1#post36010
    Просто при первом нажатии кнопки устанавливаешь c("fmEdit->memo")->selStart на 0. Поиск начнётся с 0, затем будет идти дальше...
    Можно сделать галочку, искать ли с текущей позиции курсора или с начала.

    Где-то надо держать переменную, которая будет отвечать за то, "начало поиска" или "процесс поиска"... При первом нажатии туда запишется, что идёт "процесс поиска" и не будет уже искать тоже самое с начала, а продолжит... после завершения поиска вернуть переменной значение "начало поиска".

    Думаю понятно... Что тут не понятного при первом поиске ставить каретку на 0?

  23. #21
    Та нифига! Яуже столько перепробовал..пизец. щас пробую с помощью инкремента ... ;(

  24. #22
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Цитата Сообщение от xsnakes Посмотреть сообщение
    А там не в конец ли скролит? Во всех темах вроде в конец...
    Я ведь сначала там искал... Там вроде все скролят в конец...
    Нет, там есть код который скролит на N строк, а также я где то ещё точно писал как скролить к нужной строке. Поиск по словосочетанию perform vGhost должен помоч в итоге, ток там много всего будет, хотя это много не плохо бы всё в решебник запихать..

    И xsnakes, выйди в аську, "дело" есть.

    Цитата Сообщение от xsnakes Посмотреть сообщение
    vGhost, ты дал ссылку такого вида, вместо ссылки на результат поиска
    http://community.develstudio.ru/#
    Потому она и не работает!
    Ява скрипты не отключайте в браузерах и всё будет работать: http://c.vghost.tk/dem/link.htm

    З.Ы. есть у меня ещё интересный пример, прада с багом, но я не редактор делал тогда, а пытался идею донести как лучше сделать, если его кто до ума доведёт (баг исправит), получится не плохо имхо..
    вот тема вобщем http://community.develstudio.ru/showthread.php/1171

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  25. #23
    Как это поможет решить мою проблему ?)

  26. #24
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Например так... Ну это просто...
    Тут фигня в том, что каретка ставится на 0 перед поиском... Т.е. перед поиском юзер может поставить каретку обратно в конец...
    Поэтому надо делать переменную global $find; и ставить туда например true, когда открываем поиск, а когда нажимаем поиск, ставить false.
    Сделать условие если переменная true, то ставить каретку на 0 и искать иначе просто искать...

    Короче надо подстраивать под свой проект код, а не писать всё что сказал xsnakes

    Сделать например кнопку "Поиск ниже", "Поиск выше" как в EmEdit (по мне очень удобный редактор)
    Вложения
    • Тип файла: dvs find..dvs (5.2 Кб, Просмотров: 5)

  27. #25
    Аха ) можно сказать копи паст моего кода..нельзя было просто написать c("richEdit1")->selStart = 0; ?

  28. #26
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Твоего кода? Я свой код из фака скопировал!
    Я тебе что не говорил? Злишь!...
    Цитата Сообщение от xsnakes Посмотреть сообщение
    Просто при первом нажатии кнопки устанавливаешь c("fmEdit->memo")->selStart на 0

  29. #27
    Хм..просто хотел по другому сделать..ну а теперь как искать текст вверх ЗНаю надоел но как то не получаеться..

  30. #28
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Надо было мне я бы нашёл и сделал... И так уже не мало нашёл... На крайняк развернул бы текст задом на перёд
    За тебя всё делать тоже не прикольно!

  31. #29
    Всё ? ты что тю тю ? там еще работы гора!

  32. #30
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Повернут поиск в зад гора? )
    Вот файл поиска по PHP редактору в DS
    D:\Program Files\DevelStudio 3.0 alpha\system\dfm\uPHPEditor.php
    В нём и покопайся, некоторые строки ссылаются на другие файлы, так что надо будет искать и другие файлы с функциями )

  33. #31
    Ссыль не кликабельна
    Щас поисчу что нибудь...

  34. #32
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Вот тебе счастье! Я о таком и не знал, как и о stripos, но потратив меньше минуты нашёл...
    http://www.php.su/functions/?strripos

  35. #33
    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(013);
            
            
    $GLOBALS['__findIndex'] -= 1;
        }

    Переведите пожалуйста

  36. #34
    Цитата Сообщение от xsnakes Посмотреть сообщение
    Вот тебе счастье! Я о таком и не знал, как и о stripos, но потратив меньше минуты нашёл...
    http://www.php.su/functions/?strripos
    Не хочет ;(

  37. #35
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Ну ё моё... опять сомаму надо делать...

    А всё дело в том, что оно ищет последний текст... т.е. чтобы найти пред последний, надо отрезать текст, ну или указывать отрицательную позицию, что было бы правильней!

    Хотя не... отрицательная позиция не работает...
    Последний раз редактировалось xsnakes; 05.02.2012 в 14:55.

  38. #36
    Да там капец..ящас пробую, уже запутался

  39. #37
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,295
    Та придётся резать строку... Я почти сделал, ток дето баг...

    Хм... Заработало... Хз де ошибка была, написал заного, получилось!
    PHP код:
    $edit c("richEdit1");
    $selStart strripossubstr($edit->text,0,$edit->selStart), c("edit1")->text );
    if(
    $selStart !== false){
     
    $edit->setFocus();
     
    $edit->selStart $selStart;
     
    $edit->selLength strlenc("edit1")->text );
     
    $edit->Perform(0xB7$selStart0);


  40. #38
    СПАСИБО!
    Я надеюсь я не сильно тебя достал )

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения