Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программно подсветить строку.


Jeka ©   (2005-01-12 15:15:00) 

Скажите вот в TListBox можно подсветить строку написав:
Form1.ListBox.ItemIndex := номер строки!
А как сделать тоже самое в TMemo?


Neznaika   (2005-01-12 16:53:00) [1]


> не отрабатывает Memo1.SetFocus;
>                        <_____
> Form1.Memo1.SelStart:=2;     |
> Form1.Memo1.SelLength := 3;  |
> Form1.Memo1.SetFocus;--------


Jeka   (2005-01-12 16:23:00) [2]

у меня всего там 2 строчки в каждой по 10 символов!


KSergey   (2005-01-12 16:11:00) [3]

> [13] Александр Иванов ©   (12.01.05 16:06)
> Даже если встречаются переводы должно работать корректно

А оно и работает корректно, я думаю
Просто может там в Memo вбиты 10 пустых строк вначале? Или того прикольнее - там большой текст и Memo проскроллирован в конец ;)


Александр Иванов   (2005-01-12 16:06:00) [4]

KSergey ©   (12.01.05 16:02) [12]
Даже если встречаются переводы должно работать корректно


KSergey   (2005-01-12 16:02:00) [5]

Возможно, попадает на переводы строк
Попробуй в Memo внести текст в первую же строку длиной не менее 6 символов


Jeka   (2005-01-12 15:47:00) [6]

вообще ничего!
даже если выделяю текст вручную, то после выполнения тех строчек теряеться выделение.

P.S я ети 3 строчки вписал в обработчик кнопки и хочу чтоб выделялся текст, когда я нажал на кнопку!


Александр Иванов   (2005-01-12 15:43:00) [7]

Не отрабатывает - это как? Что происходит?


Jeka   (2005-01-12 15:42:00) [8]


> Александр Иванов


не отрабатывает Memo1.SetFocus;

Form1.Memo1.SelStart:=2;
Form1.Memo1.SelLength := 3;
Form1.Memo1.SetFocus;


begin...end   (2005-01-12 15:35:00) [9]

> [6] KSergey ©   (12.01.05 15:33)

Можно и Length(Memo.Lines[...]).


KSergey   (2005-01-12 15:34:00) [10]

в [6] имеется в виду вторая часть из [5], т.е. по поводу конечного символа


KSergey   (2005-01-12 15:33:00) [11]

Даже вру в [5]
Тогда надо EM_LINELENGTH применить аналогичным образом


KSergey   (2005-01-12 15:31:00) [12]

> [2] Orc ©   (12.01.05 15:20)
> Memo1.JumpTo(n,0);

А можно подробнее?
Или это после D5 появилось?

> [3] Jeka   (12.01.05 15:21)
> тогда встречный вопрос:
> вот мне известно только номер строки
> как мне узнать начальный и конечный номер символа?


n := Memo1.Perform(EM_LINEINDEX, {номер строки с 0}, 0);
if n >= 0 then // тогда нет ошибок, в n = номер символа
 

> конечный номер символа?

Можно попробовать тоже самое, но строку на 1 больше передать и откакиться назад за 2 (обычно) символа перевода строки


Александр Иванов   (2005-01-12 15:30:00) [13]

Jeka   (12.01.05 15:21) [3]
result:=0;
for i:=0 to Min(Memo1.Lines.Count-1,Number) do
result:=result+Length(Memo1.Lines[i]);
Result:=Result+Number*2;

Result - номер первого символа, строки Number


Jeka   (2005-01-12 15:21:00) [14]

тогда встречный вопрос:
вот мне известно только номер строки - как мне узнать начальный и конечный номер символа?


Orc   (2005-01-12 15:20:00) [15]

Ставишь курсор на начало искомой строки:

Memo1.JumpTo(n,0);

И делаешь что-то типа (если память не изменяет)

Memo1.SelStart:=0;
Memo1.SelLength:=100;


Александр Иванов   (2005-01-12 15:18:00) [16]

Memo1.SelStart:=
Memo1.SelLength:=
Memo1.SetFocus;


Наверх

Титульная страница Поиск, карта сайта Написать письмо