Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListBox смотрит вводимый текст в Richeidt 
:(
    Опции темы
gafarov
Дата 17.9.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Будет хтмл редактор и выпадающий список как в С++ билдере. предлагающий для ввода похожщий тег.
Положение листбокса уже нашел. бегает за курсором как надо, теперь надо чтобы он начал предлагать теги похожие на вводимые

Это сообщение отредактировал(а) gafarov - 17.9.2008, 12:17
PM MAIL   Вверх
mrbrooks
Дата 17.9.2008, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(gafarov @  17.9.2008,  10:26 Найти цитируемый пост)
ListBox смотрит вводимый текст в Richeidt и откидывает те, что не совпадают. Все кака в Билдере. Пишешь фразу, ЛистБокс появился и начинает кидать подсказки. (ЛистБокс уже появляется, осталось чтобы подсказывал.)
я не знаю как это делать, но начал с того что ищу каждый новый вводимый знак. я не понимаю того. как пользоваться SelLeght и  selText.

Ничего не понял  smile 
PM MAIL   Вверх
Michrutka
Дата 17.9.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(gafarov @ 17.9.2008,  10:26)
необходимо сделать выпадающий список тегов. не знаю как находить вводимый в РичЭдит текст и отбирать в ЛистБоксе нужный тег.

подскажите как это делать??

спасибо smile

Имеешь в виду контекстную подсказку??

Это сообщение отредактировал(а) Michrutka - 17.9.2008, 11:33
PM MAIL   Вверх
gafarov
Дата 19.9.2008, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, именно так
PM MAIL   Вверх
Michrutka
Дата 19.9.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как вариант - 
используешь свойство CaretPos
Код

RichEdit1->CaretPos.x//индекс символа в строке
RichEdit1->CaretPos.y//индекс строки в которой находится курсор

ну и далее при нажатии клавиши смотришь предыдущий символ в строке ричедита, точнее до пробела, и сравниваешь с твоим массивом тегов и каждый раз формируешь свой лист.
PM MAIL   Вверх
gafarov
Дата 22.9.2008, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Michrutka @ 19.9.2008,  10:36)
Как вариант - 
используешь свойство CaretPos
Код

RichEdit1->CaretPos.x//индекс символа в строке
RichEdit1->CaretPos.y//индекс строки в которой находится курсор

ну и далее при нажатии клавиши смотришь предыдущий символ в строке ричедита, точнее до пробела, и сравниваешь с твоим массивом тегов и каждый раз формируешь свой лист.

Спасибо. примрено так себе и представлял. только вот подробнее раскидать не могу(((
PM MAIL   Вверх
Michrutka
Дата 23.9.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пожалуйста)
вот так, если в кратце smile 
собственно останется только некотороые защиты поставить и се smile 

Код

//---------------------------------------------------------------------------
void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
String MasTag[]={"<table>","<tr>","<href>","<p></p>","<form>","<div>"};//массив тегов
int iCountTag = 6;//число тегов в массиве
int iCol = RichEdit1->CaretPos.x;//индекс позиции курсора в строке
int iRow = RichEdit1->CaretPos.y;//индекс строки в которой находится курсор
if (iCol!=0){
        String CurStr = RichEdit1->Lines->Strings[iRow];
        String CurTag = "";//набираемый тег
        for (int iStr=CurStr.Length();iStr>0;iStr--){
                if (CurStr[iStr]==' '){//до пробела
                        break;
                }
                else{
                        String StrTemp = CurStr[iStr];
                        StrTemp += CurTag;
                        CurTag = StrTemp;
                }
        }
        ListBox1->Clear();
        for (int iCt=1;iCt<=iCountTag;iCt++){
                //сравниваем строки до длины CurTag.Length() без учета
                //регистра, если они одинаковы, то возвращается 0
                int iCompare = AnsiStrLIComp(CurTag.c_str(),MasTag[iCt-1].c_str(),CurTag.Length());   
                if (iCompare==0){
                        ListBox1->Items->Add(MasTag[iCt-1]);
                }
        }
}
}
//---------------------------------------------------------------------------


Это сообщение отредактировал(а) Michrutka - 23.9.2008, 11:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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