• Поиск по форумам
  •  
      Этот форум закрыт. Новый форум располагается по адресу http://forum.use.ru  

      Nordnet Форум
      Программирование
      Trichedit. Как определить номер первой и последней отображенной на экране строки?
     
    Страницы: 1
    Автор Тема:  Trichedit. Как определить номер первой и последней отображенной на экране строки?
    Olega 

    регистрация: 17-09-2004 в 13:04
    сообщений: 26

    отправлено 08-12-2006 17:07    
    Предположим в RichEdit помещено много строк теста. Сделано так, чтобы он переносил слова на новую строчку, если строка не помещается. Как выяснить с какой по какую строчку в данный момент выведен текст в RichEdit? Ну или не строки, а символа.
    Olega 

    регистрация: 17-09-2004 в 13:04
    сообщений: 26

    отправлено 08-12-2006 18:03    
    Давайте задачу разверну поподробнее.
    У меня программно возвращаются достаточно большие объемы данных, при чём эти данные - это SQL-запросы. Я их возвращаю в RichEdit и всё хорошо, но мне понадибилось подсветить синтаксис SQL. Подсвечивать во всём RichEdit, если делать это напрямую очень долго. Я решил, что нужно подсвечивать только те, что в данный момент на экране. А для этого нужно первый и последний символ знать. Или есть какие-то другие способы?
    ALIEN Xupypr 

    регистрация: 31-10-2004 в 15:53
    сообщений: 248

    отправлено 08-12-2006 18:19    
    procedure TTest.FormCreate(Sender: TObject); //При создании окна
    begin
    {Перенос}
      RichEdit.ScrollBars:=ssVertical;
    end;
    
    procedure TTest.RichEditKeyPress(Sender: TObject; var Key: Char); //При вводе
    begin
    {Посчёт строк}
      Canvas.TextOut(RichEdit.Left,RichEdit.Top+RichEdit.Height+8,'Строк '+IntToStr(RichEdit.Lines.Count));
    end;
    
    ALIEN Xupypr 

    регистрация: 31-10-2004 в 15:53
    сообщений: 248

    отправлено 08-12-2006 18:29    
    Olega, если ты будешь подсвечивать только текст который видно, то компонент будет при молейшем отклонении мурыжить весь текст и раскрашивать облость, которую видно (если скажем ты в конце текста).

    Лучше сделать так, при входе в компонент раскрашивать текст (и информацию удобнее грузить порциями).
     
    Сообщение было изменено автором 08-12-2006 в 18:30
    Olega 

    регистрация: 17-09-2004 в 13:04
    сообщений: 26

    отправлено 08-12-2006 18:36    
    Это кол-во вообще строк!
    А у меня уже есть текст из 100 строк, напрмер. А видно на экране только 7 из них. Вот мне и надо получить это 7 (видно с нулевой по 7-ую). Переместились вниз уже видим с 8-ой по 15-ую. Как вычислить с какой по какую строку я вижу?
    Olega 

    регистрация: 17-09-2004 в 13:04
    сообщений: 26

    отправлено 08-12-2006 18:38    


    Что бы не мурижить одно и то же, я буду сохранять номера обработанных позиций в отдельном массиве. И проверять.
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 11-12-2006 11:01    
    Точно не помню, но вроде никак не сделать.
    Страницы: 1