
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.05.2005, 14:47
|
|||
|---|---|---|---|
|
|||
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Хочу сделать прогу для выделения ССЫЛОК в RichEdit и потом сделать для них OnClick что бы CreateProcess'ом вызывать Explorer. Подскажите хотя бы алгоритм и или источник где можно прочиатать. Вобщем напишите все что вы можете сказать по этому поводу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.05.2005, 04:16
|
|||
|---|---|---|---|
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Builder или Visual? MFC (OWL) или API? Много подходов! Зависит от конкретных предпочтений в реализации... Но судя по всему, раз было употреблено выражение "RICHEDIT", то речь идёт именно про OWL... Тогда тама чёрным по серому написано: Events -> OnChange, OnSelectionChange или на худой конец OnKeyPress (но этот худой конц будет сильно тормозить!); после проверять посимвольно любой ввод/изменение в окне RICHEDIT... Как тока встретится что-нить похожее на ссылку, это дело стоит выделить (тама естmь property SelAttributes, котором тебе и шрифт и колор и чего тока нет!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.05.2005, 08:16
|
|||
|---|---|---|---|
|
|||
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Спасибо, до этого я и сам додумался. Мне бы какой-нибудь рациональный способ, чтобы не проверять весь текст, один раз выделить а потом только следить за изменениями. И если можеш то подскажи как потом выделеный текст превратить в кнопку. А пишу я в Билдере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2005, 02:23
|
|||
|---|---|---|---|
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Слухай, а я так подозреваю, что придётся это дело посимвольно оформлять... по ходу набора текста... Ну при event`е OnChange... Кстати он очевидно сработает и если какой-нить текст загрузить или вставить в окно. Но ты прав в вот в каком месте: как сделать кнопкой? Изменить внешний вид этой байды не сложно, а вот как сделать её полноценной ссылкой - не знаю. Пока не знаю. Могу только предположить что необходимо будет как то отслеживать перемещение выделенного текста по экрану, запоминать и постоянно следить за координатами этого куска текста... а при наведении уже и курсор мыхи менять и всё остальное... Пока других идей нет... Но я ещё кое что посмотрю... (а вдруг получится!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2005, 09:58
|
|||
|---|---|---|---|
|
|||
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Всем спасибо! в onChange у меня все получилось, тока мерцает немного а так все ок. А что касается клика так есть идея, правда пока не реализовал, как сделаю размещю на форуме. Идея заключается в том что когда я нахожу "www." то перемещаю курсор на начало этой ссылки и с помощю CaretPos у RichEdit'а можна получить координатыначала верхнего угла начала надписи, потом с этими координатами разместить какой-нибуть Image и обрабатывать его onClick. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2005, 16:11
|
|||
|---|---|---|---|
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
про CaretPos совсем забыл... Но даже так не совсем представляю себе пока как именно это будет выглядеть... А чтобы не тормозило... э-э-э... ну короче тут просто не Билдер нужен... Если писать чисто на API там будет видимое ускорение процентов на 15! Да и потом проблем связанных с инкапсуляцией методов РичЭдита не будет - сможешь делать всё врукопашную... А значит появится возможность оптимизировать работу с этим окном учитывая специфику конкретной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2005, 19:18
|
|||
|---|---|---|---|
|
|||
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Вобщем вот мое выдиление ссылок, без свойства 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 или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.05.2005, 20:48
|
|||
|---|---|---|---|
Хочу сделать прогу для выделения ССЫЛОК в RichEdit |
|||
|
#18+
Если вместо RichEdit1->Lines->Strings использовать RichEdit1->Lines->Text, то будет доступ ко всему тексту в виде единой строки, где разделителями строк будут \r\n (или наоборот), тогда код упростится и глюков поуменьшится. Здесь гиперссылка должна заканчиваться пробелом, в реальности может заканчиваться и другими символами типа ) } ] ? ! , и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=Cpp+primer&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 472ms |
| total: | 745ms |

| 0 / 0 |
