powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Хочу сделать прогу для выделения ССЫЛОК в RichEdit
8 сообщений из 8, страница 1 из 1
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33046276
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу сделать прогу для выделения ССЫЛОК в RichEdit и потом сделать для них OnClick что бы CreateProcess'ом вызывать Explorer. Подскажите хотя бы алгоритм и или источник где можно прочиатать. Вобщем напишите все что вы можете сказать по этому поводу.
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33047182
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Builder или Visual? MFC (OWL) или API?

Много подходов! Зависит от конкретных предпочтений в реализации... Но судя по всему, раз было употреблено выражение "RICHEDIT", то речь идёт именно про OWL... Тогда тама чёрным по серому написано: Events -> OnChange, OnSelectionChange или на худой конец OnKeyPress (но этот худой конц будет сильно тормозить!); после проверять посимвольно любой ввод/изменение в окне RICHEDIT... Как тока встретится что-нить похожее на ссылку, это дело стоит выделить (тама естmь property SelAttributes, котором тебе и шрифт и колор и чего тока нет!)
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33047235
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, до этого я и сам додумался. Мне бы какой-нибудь рациональный способ, чтобы не проверять весь текст, один раз выделить а потом только следить за изменениями. И если можеш то подскажи как потом выделеный текст превратить в кнопку. А пишу я в Билдере.
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33049364
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слухай, а я так подозреваю, что придётся это дело посимвольно оформлять... по ходу набора текста... Ну при event`е OnChange... Кстати он очевидно сработает и если какой-нить текст загрузить или вставить в окно.
Но ты прав в вот в каком месте: как сделать кнопкой? Изменить внешний вид этой байды не сложно, а вот как сделать её полноценной ссылкой - не знаю. Пока не знаю. Могу только предположить что необходимо будет как то отслеживать перемещение выделенного текста по экрану, запоминать и постоянно следить за координатами этого куска текста... а при наведении уже и курсор мыхи менять и всё остальное... Пока других идей нет... Но я ещё кое что посмотрю... (а вдруг получится!)
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33049624
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо! в onChange у меня все получилось, тока мерцает немного а так все ок. А что касается клика так есть идея, правда пока не реализовал, как сделаю размещю на форуме. Идея заключается в том что когда я нахожу "www." то перемещаю курсор на начало этой ссылки и с помощю CaretPos у RichEdit'а можна получить координатыначала верхнего угла начала надписи, потом с этими координатами разместить какой-нибуть Image и обрабатывать его onClick.
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33050981
XED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про CaretPos совсем забыл... Но даже так не совсем представляю себе пока как именно это будет выглядеть...
А чтобы не тормозило... э-э-э... ну короче тут просто не Билдер нужен... Если писать чисто на API там будет видимое ускорение процентов на 15! Да и потом проблем связанных с инкапсуляцией методов РичЭдита не будет - сможешь делать всё врукопашную... А значит появится возможность оптимизировать работу с этим окном учитывая специфику конкретной задачи.
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33051487
morf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем вот мое выдиление ссылок, без свойства OnClick. Прада есть маленький глюк проблемы не пойму потому незнаю как побороть, протестите у себя и поправте если сможете. страшно не рационально, потому и мерцает сильно.

int find(char* str1, char* str2, int pos)
{

bool lab=true;
for(int i=pos;i<(strlen(str1)-strlen(str2));i++)
{
lab=true;
for(int k=0;k<strlen(str2);k++)
{
if(str2[k]!=str1[k+i])
{
lab=false;
break;
}
}
if (lab) return i;
}
return -1;
}
void Ssulka(TRichEdit* RichEdit1)
{
char* findstr="www.";
int j=0;
int pos=0;
int pos2=0;
int alllen=0;
int ret=RichEdit1->SelStart;
char* str;

while(j<RichEdit1->Lines->Count)
{
str=RichEdit1->Lines->Strings[j].c_str();
if (strlen(str)>strlen(findstr))
{
while(pos!=-1)
{
pos=find(str,findstr,pos2);
RichEdit1->SelStart=pos+alllen;
pos2=pos;
while(str[pos2]!=' ')
{
if(str[pos2]!='\0')
pos2++;
else break;
}
RichEdit1->SelLength=pos2-pos;
RichEdit1->SelAttributes->Color=clBlue;
RichEdit1->SelAttributes->Style<<fsUnderline;
}
}//end if
alllen+=RichEdit1->Lines->Strings[j].Length()+2;
j++;
pos2=0;
pos=0;
}//end while
RichEdit1->SelStart=ret;
}

Незнаю как сделать OnClick. подскажите идею неважно с API или нет.
...
Рейтинг: 0 / 0
Хочу сделать прогу для выделения ССЫЛОК в RichEdit
    #33051584
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вместо RichEdit1->Lines->Strings использовать RichEdit1->Lines->Text, то будет доступ ко всему тексту в виде единой строки, где разделителями строк будут \r\n (или наоборот), тогда код упростится и глюков поуменьшится.

Здесь гиперссылка должна заканчиваться пробелом, в реальности может заканчиваться и другими символами типа ) } ] ? ! , и т.д.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Хочу сделать прогу для выделения ССЫЛОК в RichEdit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]