Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/107: Рейтинг темы: голосов - 107, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383

как сделать так, чтобы линки в Rtf открывались в текущем окне

09.10.2007, 16:46. Показов 19978. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Есть RTF-поле. В нем линки. Если пользователь жмет на один из них, документ открывается в новом окне.
А хотелось бы открывать документ в том же окошке (или хотя бы чтобы исходное закрывалось).
А как это сделать - не знаю :(

Пробовал на QueryOpen повесить @Command([CloseWindow]), но это через раз приводит к ошибке :(

Подскажите, плз, что делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2007, 16:46
Ответы с готовыми решениями:

Можно ли сделать так, чтобы линки из вставленной iframe страници открывались в другом окне?
Можно ли сделать так, чтобы линки из вставленной iframe страници открывались в другом окне?

Как Сделать, чтобы формы открывались в одном окне?
У меня в приложении есть несколько форм, класса QWidget. Как сделать, чтобы они открывались не в отдельных окнах, а сменяли друг друга в...

Как сделать так, чтобы все окна Проводника открывались не каскадом, а в одном и том же месте?
Всем привет. Есть в вин7 одна маленькая, но вредная особенность, которая лично меня мучает уже очень давно. При открытии новых окон...

9
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
09.10.2007, 16:48
Для: D!m@n
Прописать не линки, а кнопки ну в них и закрывать текущий док
0
0 / 0 / 0
Регистрация: 15.12.2006
Сообщений: 202
09.10.2007, 17:36
<!--QuoteBegin-D!m@n+10:10:2007, 16:33 -->
<span class="vbquote">(D!m@n @ 10:10:2007, 16:33 )</span><!--QuoteEBegin-->Пробовал на QueryOpen повесить @Command([CloseWindow])
[snapback]81279" rel="nofollow" target="_blank[/snapback]?[/quote]
Это куда? В открываемом доке?

С кнопкой, конечно, бронебойный вариант

Можно и чуть извратиться, чтоб без кнопок - если линки вставляются кодом, то в этом коде предусмотреть, чтоб во вкладываемом документе прописывалась ссылка (унид, например) на документ, в который вкладывается ссылка... Ну и потом уже на событие открытия окна закрывать документ по униду... Но еще раз повторюсь - кажется мне, что попахивает это извратом немного Х-)

А в чем задача-то? Откуда необходимость закрытия окна?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
09.10.2007, 17:41
<!--QuoteBegin-IsAvailable+10:10:2007, 17:23 -->
<span class="vbquote">(IsAvailable @ 10:10:2007, 17:23 )</span><!--QuoteEBegin-->Ну и потом уже на событие открытия окна закрывать документ по униду...
[snapback]81293" rel="nofollow" target="_blank[/snapback]?[/quote]
Так не получится сделать.

Если только окольными путями.
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
09.10.2007, 19:44
Цитата Сообщение от Medevic
Так не получится сделать.

Если только окольными путями.
Нефиг делать... После открытия окна получаем док по униду, говорим ему едитдокумент с параметром ньюинстанс=фалс, получаем из него уидок и говорим ему клоуз...
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
09.10.2007, 21:06
Мужики, спасибо за советы!

Попробую пояснить чуть подробнее:

В RTF-поле отображается структура ветки форума. До этого пользовались имбеднутой вьюхой, но она тоже кое-какие неудобства доставляла...
RTF-поле формируется динамически при открытии документа. Поэтому кнопки, увы, не подойдут...
Завтра приду на работу - сделаю скриншотик...

Как предложил Sandr, сделать можно... Через @InheritedDocUniqueID получать UNID изначального дока, а потом закрывать его... Но тут есть один минус: на экране будет мелькать открываемое окошко
А это как-то некрасиво... :(
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
10.10.2007, 00:03
Есть способ шоб не мигало...
Пишешь маленький класик, в котором будет функция ОупенДок (или как хочешь) так и назовешь, функия будет вызываться из документа, который тебе нужно будет закрыть. Что должна делать функция - должна открыть то новое окно (документ) которое ты открываешь, и слушать в нем событие постоупен. Как тока постоупен, так сразу же и закрыть текущий документ...

Надеюсь понятно написал... :(
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
10.10.2007, 13:57
@InheritedDocUniqueID работает немного по-другому, чем я ожидал...
Пришлось сделать через переменную окружения.


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub Postopen(Source As Notesuidocument)
Dim s As New NotesSession
Dim thysdb As NotesDatabase
Dim uiw As New NotesUIWorkspace
Dim thysdoc As NotesDocument
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
 
Set thysdb=s.CurrentDatabase
Set thysdoc=Source.Document
 
prevdocunid$=s.GetEnvironmentString("DiscussDocUNID")
 
If prevdocunid$<>"" Then
Set doc=thysdb.GetDocumentByUNID(prevdocunid$)
If thysdoc.UniversalID=prevdocunid$ Then
UNID этого документа равен prevdocunid$
Call s.SetEnvironmentVar("DiscussDocUNID", "")
Exit Sub
End If
If s.GetEnvironmentValue("DiscussSem")="" Then
Ставлю "семафор"
Call s.SetEnvironmentVar("DiscussSem", "1")
Set uidoc=uiw.EditDocument(False, doc, False, , True, False)
uidoc.Close
Call s.SetEnvironmentVar("DiscussSem", "")
End If
End If
Call s.SetEnvironmentVar("DiscussDocUNID", thysdoc.UniversalID)
Call s.SetEnvironmentVar("DiscussSem", "")
End Sub
Изврат жуткий, конечно... Но работает
0
0 / 0 / 0
Регистрация: 19.07.2007
Сообщений: 1,098
10.10.2007, 14:38
Делй не так... В документе, который тебе нужно закрыть, на кнопку, которая открывает новый документ пишешь так


Code
1
2
3
4
5
Set uidoc = ws.CurrentDocument Это тот докумет из которого ты открывашь новый и который потом нужно закрыть.
 
Set uiNewDoc = ws.EditDocument(True, newdoc) newdoc - этот notesdocument который ты собираешься открыть, как ты его получаешь - твое дело
 
On Event PostOpen From uiNewDoc Call uidocClose
Вот и все

А в документ из которого открываешь дописываешь такую процедурку



Code
1
2
3
4
Sub uidocClose(someVar as Variant)
Set uidoc = ws.CurrentDocument
uidoc.close
End Sub
И еще, это будет работать, если в собитии PostOpen нового документа будет хоть какое-то действие... Например Source.Refresh

Удачи!
0
0 / 0 / 0
Регистрация: 29.07.2007
Сообщений: 383
10.10.2007, 18:52
Спасибо, конечно :D
Но, как я сказал выше, кнопка мне не подходит! Отказаться от RTF-линков невозможно...

В-общем, теперь все работает - и ладно

Спасибо всем ответившим!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2007, 18:52
Помогаю со студенческими работами здесь

Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ?
Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ? При этом, поп-ап нужно...

Есть ли способ сделать так, чтобы ссылки на youtube открывались не в браузере а в VLC ?
https://www.youtube.com/watch?***** большинство линков начинаются на именно так, если их скопировать и вставить в проигрыватель, то он...

Как сделать так, чтобы в окне, созданом OpenGL, рисовали 2 потока?
Вот не знаю, где создать тему, с одной стороны это надо в разделе OpenGL, с другой стороны- там чисто художники, а здесь именно...

Как сделать так, чтобы средняя кнопка мыши открывала папку в новом окне?
Всем привет! Как сделать чтобы при нажатии в проводнике на папку средней кнопкой мыши папка открывалась в новом окне? Еще тоже важно чтобы...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru