Lazy |
Отправлено: 15.06.2004, 11:26 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Собственно как просто гиперссылку вставить в RichEdit — понятно.
А вот как сделать так, чтобы текст в окне писался один, при клике на него ссылка бралась другая.
В гипертексте я бы сделал так:
<а href="http://www.myurl.ru/">Крутой сайта>
А что надо указать для Richedit'а? Кто-нибудь так делал?
Отредактировано Lazy — 15/06/2004, 12:33 |
|
Pers |
Отправлено: 17.06.2004, 09:42 |
|
Не зарегистрирован
|
Вот, вот, очень интересный вопрос. У меня аналогичная проблема. И что-то пока никто не отвечает. Неужто никто не знает? Помогите, плиз, подайте идейку какую-нибудь. |
|
AVC |
Отправлено: 18.06.2004, 16:24 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Есть тута |
|
Pers |
Отправлено: 18.06.2004, 16:35 |
|
Не зарегистрирован
|
Нет, тама рассказывается о том, как вообще вставить гиперссылку в RichEdit. Будет в тексте написано www.mysite.ru — оно распознается и при клике загрузится. Но надо чтобы был написан текст один, а сайт грузился — другой. Чего-то я не понимаю (( |
|
AVC |
Отправлено: 18.06.2004, 16:50 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
ShellExecute(Handle, "open", RichEdit1->SelText.c_str(),
0, 0, SW_SHOWNORMAL);
|
Если я что либо понимаю, то написав вместо RichEdit1->SelText.c_str() нужную вам ссылку вы таки добьётесь желаемого эффекта. |
|
Lazy |
Отправлено: 21.06.2004, 11:44 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Осталась сущая фигня — чтобы RichEdit начал показывать обычный текст как гиперссылку и реагировать на него как на гиперссылку. А вот это и не получается сделать. Только если явно писать http://mysite.com |
|
AVC |
Отправлено: 21.06.2004, 12:06 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Елки палки, я просто увидел ссылку с подходящим названием и переслал её вам, а вы меня подталкиваете на изучение формата RTF2. Ладно, разберусь — сообщу. |
|
AVC |
Отправлено: 21.06.2004, 14:17 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Вот. Небольшие эксперименты с Word'ом дают такой результат (Word использует поля для организации ссылок)
CODE |
{\rtf1\ansi\ansicpg1251\uc1
{\fonttbl
{\f0 Arial;}
}
{\colortbl
\red0\green0\blue255;
}
{\info
{\author AVC}
}
\f0\cf0
Some text
{\field
{\*\fldinst
{\f0 HYPERLINK "http://www.yandex.ru" }
}
{\fldrslt
{\f0\b\i\ul\cf1 link sample }
}
}
Other text
} |
Для получения красивого текста переводы строк надо убрать. Будет ли работать во встроеном rtf не проверял, но в Word'e работает.
Так устраивает? |
|
Lazy |
Отправлено: 21.06.2004, 14:38 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
1. И никуда мы не подталкиваем, а спрашиваем тех, кто уже знает. Однако спасибо за проявленное внимание.
2. если загрузить описанный кусок в RichEdit, то получается следующее:
Some text link sample http://www.yandex.ru Other text
Самое интересное, что WordPad выдает тоже самое. Мои изыскания в этой области наводят меня на мысль о том, что так умеет делать только Ворд, а стандартный RichEdit понимает только явно указанные гиперссылки.
Ну и фиг с ним.
Отредактировано Lazy — 21/06/2004, 15:53 |
|
AVC |
Отправлено: 21.06.2004, 15:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Возможно с полями умеет работать только Word.
Если бы мне надо было бы это делать я бы шел по пути:
Не использовать ни каких En_Link и структур _elink — приложение становится зависимым от инсталяшек на машине клиента. Вместо этого я бы написал текст, соединенный сиволами _, отформатировал бы его цвет, подчеркивание. При нажатии левой мышкой выделял бы сплошной текст, находил связанный с ним адрес и далее ShellExecute. Теряется указатель в виде пальчика и hint с адресом — здесь можно поковыряться (пути решения просматриваются).
Отредактировано AVC — 21/06/2004, 15:20 |
|
Lazy |
Отправлено: 21.06.2004, 15:36 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 12
|
Понятно, что если писать "руками" — оно всегда гарантирует поведение объекта. Но хотелось то воспользоваться стандартной функциональностью.
Ладно будем писать TURLRichEdit |
|
AVC |
Отправлено: 21.06.2004, 17:16 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Ни как не могу запустить пример Т.Сороки (из статьи). Если получится проверьте идею писать в rtf
CODE |
{\rtf2\ansi\ansicpg1251\uc1{\fonttbl {\f0 Arial;}}
{\colortbl \red0\green0\blue255;}
\f0\cf0
Some text
{\field {\*\fldinst {HYPERLINK}}
{\fldrslt {\f0\b\i\ul\cf1 link sample }}
}
Other text
} |
Если в WndProc перед ShellExecute REdit->SelectedText == "link sample" то задача решена. |
|