Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тормоза при проверке на выделенность текста 
:(
    Опции темы
shutnik
Дата 6.6.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 18.12.2005

Репутация: нет
Всего: нет



здравствуйте! у меня такая проблема: 
имеется форма, кнопка *выделить всё*, TSynEditMemo
когда я пропиываю в обработчик события OnStatusChange компонетна TSynMemo код примерно такого содержания

if(memo->SelText!=memo->Text){bntSelectAll->Enabled=1;}else{bntSelectAll->Enabled=0;}

при выделении текста прога начинает подтормаживать =(
каким ещё способом можно определить активность кнопки *выделить всё* (если выделен весь текст - сделать неактивной)?
помогите пожалуйста! 
PM   Вверх
_hunter
Дата 6.6.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



делать проверку хотябы по таймеру... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
shutnik
Дата 6.6.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 18.12.2005

Репутация: нет
Всего: нет



_hunter, хм......... неужели попроще нет ничего? 
PM   Вверх
skyboy
Дата 6.6.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



shutnik, я правильно понял: ты сравниваешь посимвольно выделенный текст со всем остальным? Я с компонентом незнаком, но, мне кажется, там есть свойства SelStart и SelLength - почему бы их не обрабатывать вместо сравнения двух кусков текста? 
PM MAIL   Вверх
shutnik
Дата 6.6.2006, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 18.12.2005

Репутация: нет
Всего: нет



skyboy, нет, я не сравниваю посимвольно, я просто сравниваю текст!
короче когда весть текст выделен кнопка должна деактивироваться!!
но если сравнивать так как я указал то прога подглючивает при выделении болшого текста.... 
PM   Вверх
skyboy
Дата 6.6.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



я не знаю, как происходит сравнение двух многосимвольных переменных. Разве не через побайтовое сравнение?
 
PM MAIL   Вверх
AntonChik
Дата 7.6.2006, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



2shutnik: думаю skyboy прав - SelStart и SelLength должны быть... зачем заморачиваться непосредственно сравнением текстов? 
--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
_hunter
Дата 7.6.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



заморачиваться нужно потому как тексты равной длины могут различаться.

shutnik, можно сделать и проще -- забить на интерактивность и выполнять проверку в обработчике нажатия на кнопку 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
skyboy
Дата 7.6.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



_hunter, глянь на код. Если я ничего не путаю, он сравнивает выделенный в Мемо текст со всем тексто того же Мемо. И если тексты совпадают(выбран текст полностью), то вопрошающий деактивирует кнопку "Выделить всё", иначе - активирует. Зачем проверять на совпадение текста? Если из 2834 символов в Мемо выбрано 2834 - ясен пень, что выбран весь текст полностью smile 
PM MAIL   Вверх
_hunter
Дата 7.6.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



просто есть у меня подозрение что тот код набирался руками а не копировался из IDE и текст должен сравниваться с шаблоном.
если это действительно "рабочий" код -- можно и просто длины сравнивать... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
skyboy
Дата 7.6.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



bntSelectAll - для чего может предназначаться кнопка с таким именем, кроме как для выделения всего текста?  
PM MAIL   Вверх
_hunter
Дата 7.6.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



а какой, в этом случае, смысл этого кода? -- если Selection можно и програмно установить... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
AntonChik
Дата 8.6.2006, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.10.2005
Где: Красноярск

Репутация: 1
Всего: 1



Вот именно, что Selection, судя по теме, надо  не устанавливать, а проверять на полное выделение...
Или я уже в конец запутался...
 
--------------------
"Человек притаился за деревом. За широким огромным деревом. Он выглядывал тихонько и прятался. Но его никто не преследовал." (с) Хорги 
PM MAIL   Вверх
skyboy
Дата 8.6.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 2
Всего: 260



если выделен весь текст(текст мемо=выделенному фрагменту), то деактивировать кнопку "Выделить всё", иначе - сделать её активной. Это и означает код smile
Ищу работу телепата. 
PM MAIL   Вверх
shutnik
Дата 10.6.2006, 05:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 18.12.2005

Репутация: нет
Всего: нет



всем спасибо, пофлеймили немножко в моё отсутствие =) ну да ладно )))
а теперь попорядку:
---
Цитата(AntonChik @  7.6.2006,  09:20 Найти цитируемый пост)
думаю skyboy прав - SelStart и SelLength должны быть... зачем заморачиваться непосредственно сравнением текстов

ну допустим я сравниваю selstat с длиной текста, но вот при обращении к этому самому тексту получается такой же эффект как при сравнивании текстов, то есть по сути смысла нету так поступать =(
---
Цитата(_hunter @  7.6.2006,  13:46 Найти цитируемый пост)
можно сделать и проще -- забить на интерактивность и выполнять проверку в обработчике нажатия на кнопку

а если я выделил теккст через контекстное меню (пунктом *выделить всё*)???? =)))
---
в общем, я понял что эту задачу более рациональным путём эту задачу не решить, так как в любом случае я сравниваю либо с самим текстом, либо с его длиной что по сути не имеет значения и памяти расходуется столько же ..........
---
в итоге позволю себе забить на эту функцию, пусть кнопка будет всегда активна =)
---
ещё раз всем спасибо!!! 
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1379 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.