• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Как получить выделенный в Embedded View документ по кнопке на форме?

  • Автор темы susinmn
  • Дата начала
S

susinmn

Ну и кнопка в документе:
unid:= @Environment( "testUNID" ) ;
@Command( [OpenDocument] ; UNID )

_________________________

unid=""((
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
уже и ключевое слово произнес...

скажу и больше - очереди можно формировать динамически и чекать состояние (причем нужна не одна, но это для "мастеров" :rolleyes: )
 
T

turumbay

-таргет-фрэйм может и для др. сгодится
лишняя строчка там никакого вреда не принесет.

-"пачкать" ини переменными - не особо хорошо (уж для такого случ - тем-паче)
согласен. но по большому счету - тоже фигня. можно профайл пользовать. а можно инишник после себя чистить периодически.

-что будет в случ. массового применения или хотябы двух форм с использ. одного вью?
а что будет? хоть сто форм. хранить связку "юнид контейнера - юнид документа из вьюхи". вопщем-то не самый сложный аккорд на бубне. задача решаема. причем малой кровью. стандартными документированными средствами. для кучи еще про кроссплатформенность можно упомянуть.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
turumbay
я говорю о том - что всего этого вообще не нужно (именно в этот бубен бить и изворачиваться)!
и можно обойтись очередями
это штатные объекты, с временем жизни = запущенному апликейшену
надо тока LS заюзать и СиАПИ бридж (и не забыть про др. платформы - кэсов налепить или пометку сделать)
это тоже кроссплатформенно (а ини может быть и залочен к-л)
 
T

turumbay

turumbay
я говорю о том - что всего этого вообще не нужно (именно в этот бубен бить и изворачиваться)!
и можно обойтись очередями
это штатные объекты, с временем жизни = запущенному апликейшену
надо тока LS заюзать и СиАПИ бридж (и не забыть про др. платформы - кэсов налепить или пометку сделать)
это тоже кроссплатформенно (а ини может быть и залочен к-л)
"Обойтись очередями" наверняка можно. Есть небольшое количество гуру, которым доступно это тайное знание. Остальные ( и я в их числе ) полезут в эти дебри только когда совсем прижмет. Ведь проще тупо сделать без очередей. И "тупо сделать" в данном случае не синоним граблехождения.
P/S/ Усложнять - просто. Упрощать - сложно. (с) Мейер
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
по ссылке - уже всё написано
нужно тока заюзать...
дать в очередь UNID из карет, забрать юнид в кнопке и открыть док
UI класс - не нужен

вот не удивлюсь, ежели теже усеры будут открывать док по дабл-клику или по Энтер
потому как - зачем к кнопке тянуться (надо быть извращенцем) :rolleyes: ?
 
O

Omh

lmike
Я этот код про очереди ещё несколько лет назад видел, всё руки не доходили попробовать.
Вот решил попробовать, наверно туплю по страшному, но чёт у меня не срослось.

На форме 2 кнопки:

Кнопка "Set":
Код:
Dim MQ As New NotesMessageQueue("ID")
MQ.Message = "Test"
Кнопка "Get":
Код:
Dim MQ As New NotesMessageQueue("ID")
Messagebox(MQ.Message)
На get'е выкидывает ошибку
MQGet:ID::Message Queue is empty.
Вай?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
дак тыж её обнулил в New :rolleyes:

инициализируй в форме
 
O

Omh

Хм, я полагал, что при одинаковом ID очереди конструктор не обнулит её, а откроет...
Как, например, мне тогда передать данные между двумя совершенно разными формами?

При необходимости очередь инициализировать на уровне формы чем она тогда отличается от обычной глобальной переменной?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
Хм, я полагал, что при одинаковом ID очереди конструктор не обнулит её, а откроет...
Как, например, мне тогда передать данные между двумя совершенно разными формами?

При необходимости очередь инициализировать на уровне формы чем она тогда отличается от обычной глобальной переменной?
"сними ручник" :rolleyes:
ты можешь её где угодно инициализировать, но не дваже раза ;)
ты два раза New делаешь - зачем?
New не убивает сущ. очередь - он её сбрасывает (вру - не сбрасывает, просто ругаецо), и автоклозе - отмени (объект дестроится - очедедь убивается)
класс маленький - тыб посмотрел его чтоль ;)
 
O

Omh

Туплю наверно.
Попробую показать на пальцах, что хочу:

Есть 2 формы, на одной кнопка "set", на другой кнопка "get".
Где мне инициализировать очередь, что бы это чудо работало.
Если только под кнопкой "set", то как потом получить её под кнопкой "get"?
Я что-то не вижу метода "получть очередь по id".
 
K

K-Fire

NotesMessageQueue это кастомный класс? И где он собственно очередь хранит?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
Туплю наверно.
Попробую показать на пальцах, что хочу:

Есть 2 формы, на одной кнопка "set", на другой кнопка "get".
Где мне инициализировать очередь, что бы это чудо работало.
Если только под кнопкой "set", то как потом получить её под кнопкой "get"?
Я что-то не вижу метода "получть очередь по id".
где хошь
тока AutoClose=False после New сделай у объекта

NotesMessageQueue это кастомный класс? И где он собственно очередь хранит?
ну прочитайте же внимательно по ссылке :rolleyes:
 
O

Omh

lmike
Ну вот, с автоклосом всё заработало.
Сенк.
Подумаю, куда можно эту штуку приспособить.

Вообще, конечно, похоже на передачу параметров через env/профили, тока без засирания.
И можно передавать сразу столько данных, сколько надо.

Забавная штука!
Зачёт!
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
нельзя передавать скока хошь - 240 байт

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


тока ему финализацию надо "зарубить" (иначе он очередь закрывает)
 
O

Omh

Да, да, я знаю что там ограницение на длину сообщения.
Но сообщений-то можно передавать сколько влезет.
 
S

susinmn

Ребята, что то не догоняю...
Забил 2 класса в библиотеку "General", во вью и в форме(Use "General")
1. Как из вью мне по Target Frame (single click) передать форму+unid?
2. Как в форме мне прочитать эту информацию по кнопке+по закрытию документа (который с Embedded View) обнулять информацию?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
217
ну сказал же - как действовать:
-во вью получать карет-ид (читать девел. хэлп типа caretID)

но вытаить надо UIND (из дока) - хотя вру, можно и так (из БД можно по ИД вытащить)
-сувать в очередь (AutoClose=False), соотв. юнид
-в кнопке - брать из очереди
-воркспейс - EditDocument(...uid)

2 - по выходу открыть кью (классом, без AutoClose=True), при дестрое оно само очередь удалит
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!