|
|
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Выдаёт ошибку: Run-time error '2585': This action can't be carried out while processing a form or report event как бы мне закрыть её, просто на Activate проверяються некоторые условия и в определённом случае надо прикрыть формочку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 12:10:53 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
При выходе из Activate включаем таймер, в таймере закрываем форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 12:21:32 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Извени никогда с таймером не работал, не покажешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 12:24:36 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 12:31:45 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Пасибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2003, 12:36:56 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Кстати, в каком событии, кроме таймера, форма может закрывать саму себя? Что-то у меня получается, что ни в каких готфокусах и афтерапдейтах нельзя и идет та же ошибка 2585. Неужели путь с таймером - единственный, чтобы разорвать эти дурацкие транзакции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:40:38 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:58:31 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
ЛифчикКстати, в каком событии, кроме таймера, форма может закрывать саму себя? Что-то у меня получается, что ни в каких готфокусах и афтерапдейтах нельзя и идет та же ошибка 2585. Неужели путь с таймером - единственный, чтобы разорвать эти дурацкие транзакции? KeySend ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:59:40 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
АлексейК Код: plaintext 1. 2. PS Понятно, альтернативы нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:09:29 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Почему это на афтерапдейтах нельзя закрывать? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:13:21 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорный2 Лифчик Почему это на афтерапдейтах нельзя закрывать? Код: plaintext 1. 2. Вот такой комплект событий не работает с ошибкой 2585 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:01:11 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
А зачем тебе Me.Refresh на афтерапдейте контрола? Может это такой модный способ запись сохранить? Замени эту строчку на Me.Dirty = False и радуйся жизни :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:07:46 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйА зачем тебе Me.Refresh на афтерапдейте контрола? Может это такой модный способ запись сохранить? Замени эту строчку на Me.Dirty = False и радуйся жизни :)Это такой новомодный способ инициировать событие формы автерапдейт, в котором магическое действие закрытия осуществляется. Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :( ЗЫ Могу закрыть только таймером, блин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:26:53 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Это такой новомодный способ инициировать событие формы автерапдейт Это весьма странный способ инициировать событие формы афтерапдейт. Через жопу автогеном. Событие само инициируется - когда запись сохранится. Вот и сохраняй запись. Хоть через DoCmd.RunCommand acCmdSaveRecord, хоть через Dirty. Делать Refresh и перепрочитывать все данные - не нужно, хоть оно и запись сохранит тоже. Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :( у меня работает. аксес 97 и XP чего-то ты не договариваешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:34:25 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лифчик Вот такой комплект событий не работает с ошибкой 2585 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код, который ты привел - страноватенький, конечно. То, о чем говорил ЛП - работает: Private Sub HyperLinkControl_AfterUpdate() DoCmd.Close acForm, FormName, acSaveNo End Sub Видимо, ты пытаешьсяя сказать о ситуации, при которой код, размещенный в afterUpdate контрола формы приводит к возникновению событий на другом контроле... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:39:34 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Кстати, после вызова DoCmd.RunCommand acCmdEditHyperlink - и у меня перестало работать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:40:43 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Это такой новомодный способ инициировать событие формы автерапдейт Делать Refresh и перепрочитывать все данные - не нужно, хоть оно и запись сохранит тоже. Но я заменил на твое грязное дёти - и радуюсь жизни с тем же самым кодом 2585 :( у меня работает. аксес 97 и XP чего-то ты не договариваешь.СанСаныч(?), принимаю все обвинения. Есть только одна отмаза - форма с одним контролом, контрол источник берет из таблы, состоящей из одной строки. И вообще, все что здесь делается - делается через ж.пу, потому что комбо не наследует нужных свойств. ЗЫ Я все сказал и чист перед тобой. Тока может вот эта строка подло клинит - DoCmd.RunCommand acCmdEditHyperlink? Я этот диалог САМ не закрываю, только ОК ему нажимаю. Он запоминает то что надо где надо, но может не закрывается сразу и клинит транзакцию апдейта моего поля и формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:48:13 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
за что я и не люблю объект DoCmd уж слишком он асинхронный :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:51:43 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Да, точно. Помнишь, в прошлом году я тебе базу высылал? Там на форме в событии OnDelete пытался путем DoCmd просто запустить другую форму, и эта пакость ставила на запись какую-то лишнюю блокировку. Может это как-то для Фака сформулировать, типа "Поменьше используйте DoCmd в событиях апдейта и делита, и вообще поменьше ее используйте ":) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:01:10 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорныйза что я и не люблю объект DoCmd уж слишком он асинхронный :( 2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ???????? ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО, КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ... ажно комментарии в глотке застряли... 2 Лифчик блин, я уже потерялся - в какой поток тебе отвечать... Я понял кажется наконец, о чем ты так долго спрашива. САМОЕ ИНТЕРЕСНОЕ, ЧТО ТЫ ЭТО СДЕЛАЛ!!! Осталась одна запятая... Кадется, её можно поставить... (Я бы не додумался до твоей идеи) Скажы - ты имитируешь вызов контрола ред. гиперлинк "по требованию"? То есть, твоя форма нужна только для того, чтобы достучаться до контрола редактирования гиперлинка - так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:56:39 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Victosha2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ???????? ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО, КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ... Это к чему? Ну не люблю я DoCmd, чтож теперь поделать. Иногда им все-таки приходится пользоваться (ну не умею я по другому формы закрывать), менее асинхронным он от этого не становится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:00:24 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Victosha2 ЛП - !!!!!!! ЧТО ТЫ СКАЗАЛ ТЫ САМ ТО ПОНЯЛ???????? ЭТОЖЕ И ЕСТЬ ТО ЛЕКАРСТВО, КОТОРОЕ ТЫ В СВОЕМ ПЕРВОМ ОТВЕТЕ ПРОПИСЫВАЛ... Это к чему? Ну не люблю я DoCmd, чтож теперь поделать. Иногда им все-таки приходится пользоваться (ну не умею я по другому формы закрывать), менее асинхронным он от этого не становится. Это к тому - что форма - она вся асинхронная. И иногда пребывает в режимах, когда "синхронная" попытка подергать за некое действие не проходит - в силу незавершенности текущего действия и их "режимной" несовместности. DoCmd - он в такой ситуации ОБЯЗАН и не может не быть асинхронный -синхронный он на х";ен никому не нужен. А такое впечатление - что он не полностью следует своей желательной и необходимой программисту асинхронности. Не любить его легко - заменить непросто. Подозреваю, что не любишь ты его именно в тех местах, где он твои АСИНХРОННЫЕ ожидания не оправдывает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:08:28 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Victosha Ты знаешь, вот когда я форму закрываю с помощью DoCmd.Close (снаружи, а не из самой же формы), то я ожидаю, что после отработки этой команды - форма будет закрыта. События там всякие отработают, из коллекции Forms она пропадет. Вот такое вот у меня скромное желание. А аксесу с его DoCmd на мои желания плевать. Сколько раз сталкивался, что DoCmd.Close отрабатывает, причем без ошибок, а форма еще не закрыта, обработчик события закрытия не отработал, из коллекции не пропало. Свинство. Когда оно отработает целиком и полностью - одному DoCmd известно. Вот и кажись подобное свинство. DoCmd.RunCommand acCmdEditHyperlink непонятно когда запись/форму освобождает, а без этого хрен закроешь. Так что не люблю я DoCmd именно в тех местах, где он мои СИНХРОННЫЕ ожидания не оправдывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:19:54 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Кстати, COM-овские объекты по определению синхронны Внутри своих методов они могут вызывать ассинхронные куски кода на выполнения, но сами методы - синхронны. Вот зачем DoCmd асинхронностью балуется - я понять не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:22:21 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Victosha Скажы - ты имитируешь вызов контрола ред. гиперлинк "по требованию"? То есть, твоя форма нужна только для того, чтобы достучаться до контрола редактирования гиперлинка - так?Иес. Раз контрол в подчиненной форме потерял нужные мне гиперлинковые свойства (в т.ч. - возможность вызова диалога), то я и хочу передать фокус на другой, подходящий контрол. Но самое интересное, что некто "бывает" в другой ветке подсказал, как подходящий контрол на главной форме устроить. Щас буду делать. Или есть еще какие-нить соображения? Всегда рад... Блин, я на форуме в основном в роли просителя выступаю, стыдно, пора уже начать самому советы давать. Тока я не успеваю чаще всего :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:26:32 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорный2 Victosha Ты знаешь, вот когда я форму закрываю с помощью DoCmd.Close (снаружи, а не из самой же формы), то я ожидаю, что после отработки этой команды - форма будет закрыта. События там всякие отработают, из коллекции Forms она пропадет. Вот такое вот у меня скромное желание. А аксесу с его DoCmd на мои желания плевать. Сколько раз сталкивался, что DoCmd.Close отрабатывает, причем без ошибок, а форма еще не закрыта, обработчик события закрытия не отработал, из коллекции не пропало. Свинство. Когда оно отработает целиком и полностью - одному DoCmd известно. Вот и кажись подобное свинство. DoCmd.RunCommand acCmdEditHyperlink непонятно когда запись/форму освобождает, а без этого хрен закроешь. Так что не люблю я DoCmd именно в тех местах, где он мои СИНХРОННЫЕ ожидания не оправдывает. Твое "снаружи" - скорее всего - из "другой" формы и при этом в ответ на событие этой "другой" формы или афтерапдейт ее контрола. В обычном модуле - маловероятно и в ответ на онКлик на кнопке - маловероятно. Про синхронность и асинхронность КОМ-объектов. ВО-ВО!!!! ЭТО И ЕСТЬ ОНО - ДЕРЕВО! Когда ты подвязал СВОЮ функцию (Control_UfterUpdate) к исходящему интерфейсу ком - объекта в качестве получателя Ком-события, то управление из точки подвязки (процедуры, по списку вызывающуей адреса всех "слушающих" функций) не может быть возвращено, пока не отработают ВСЕ слушатели по списку. Теперь, в своей подвязанной функции ты пытаешься дерныть за метод того же ком-объекта, который должен вызвать собственное событие. Возникает цепочка событий. Некоторые из таких цепочек "режимно совместимы" , некоторые нет. И наступление вызываемого из твоей подвязанной функции события допустимо, когда другие события отработали. Что очевидно не выполняется при дергании за некотроые методы внутри процедуры обработки события. Применительно к ДАННОМУ случаю, похоже на то, что afterUpdate текстбокса - не его собственный, а происходящий в составе события, исходно-порожленного диалогом редактирования гиперлинка. Чо приводит вызову цепочки событий на форме фактически ВНУТРИ события по завершению работы диалога. Режимно это несовместимо с немедленным закрытием формы. И не оправдываются именно АСИНХРОННЫЕ ожидания. Если бы в этом месте DoCmd работал асинхнронно, он Сам бы "поставил в очередь" событие закрытия. Вот только видно, нет ее (очереди) и работает он СИНХРОННО, то есть в момент, когда управление достигает соответствующей строки кода. 2 Лифчик Без таймера пока не обошелся. Возможно, есть вариант не заканчивать им, а начинать - надо бы проверить. Сейчас не смогу - может быть вечером. По некторому размышлению - вариант с таймером мне нравится. Патамушта форма такая - это своего рода "акцессный актив-икс", и там он никому не мешает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:00:43 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Виктоша: и Dlookup у меня обломился. Так что видно придется форму отдельную вызывать и таймером ее закрывать. Занесем эту специфику в свое серое хранилище глюков Зы вот только бы научиться еще управлять этим гиперлинковым диалогом. А то он всегда начальный путь к базе выдает. Может ChDir сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:13:13 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лифчик2 Виктоша: и Dlookup у меня обломился. Так что видно придется форму отдельную вызывать и таймером ее закрывать. Занесем эту специфику в свое серое хранилище глюков Зы вот только бы научиться еще управлять этим гиперлинковым диалогом. А то он всегда начальный путь к базе выдает. Может ChDir сделать? Можно попробовать заменить таймер на KeySend - это тоже "чисто асинхронный вариант" - щаз может и попробую. ChDir обязан помочь... Отдельная форма в твоей подкрутке - это как раз и есть, то, что меня так восхитило - всё-таки нашел винт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:22:37 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
1) KeySend - работает 2) Пришла такая мысль- Своей формой (назовем ее Ф) ты все равно будеш пользоваться как вызывателем диалога внутри другой формы. Поэтому тебе как раз не нужно (не обязательно) закрывать Ф, пока "родительская" жива, а достаточно просто скрыть ее. Если Ф будет объявлена в модуле вызывающей ее формы как Private (withevents) xForm as New Form_Ф то при закрытии формы-хозяина Ф закроется сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 17:13:38 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Виктоша: я понял мысль. К таким конструкциям как описание формы на основе имеющейся для внутреннего потребления я только подхожу и пока это не прочувствовано. Но в данном случае ситуация такая - все ДблКлики по бывшим гиперлинковым полям у меня вынесены в функцию в глобальном модуле проэкта. Такое вот упрощение. Потому как могу в разных местах из разных подформ вызывать. И везде понатыканы Application.Screen.ActiveControl. Так что пусть пока формочка открывается и закрывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 17:35:06 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лифчик2 Виктоша: я понял мысль. К таким конструкциям как описание формы на основе имеющейся для внутреннего потребления я только подхожу и пока это не прочувствовано. Но в данном случае ситуация такая - все ДблКлики по бывшим гиперлинковым полям у меня вынесены в функцию в глобальном модуле проэкта. Такое вот упрощение. Потому как могу в разных местах из разных подформ вызывать. И везде понатыканы Application.Screen.ActiveControl. Так что пусть пока формочка открывается и закрывается. для реализации "мысли" есть два варианта 1) (Плохой) в этом же модуле держать форму как переменную Плохость в том, что, вообще говоря, надо заботится об итоговой очистке при завершении приложения - усложнение логики. Хотя реальные потери памяти небольшие и без "заботы" должно выдержать "много запусков". Предполагается, что компьютер рано или поздно выключат... 2) ввести в своей функции входной параметр - типа твоей формы. Появится возможность рабоать с конкретным экземпляром, время жизни которого определяется формой-хозяином. потенциальный минус - возможно, придется пересмотреть подход к источнику формы, индивидуализировав источник (то есть связанная табла не об одной записи окажется) в любом случае на скорости отображения "диалога" выиграешь так заметно, что отказываться не захочется, а захочется "причесывать"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 17:55:38 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Занес в список "Надо сделать в проге". Растет быстрее, чем "Уже сделано" :) ЗЫ ChDir не помогает:( Этот гипердиалог, зараза, какими-то другими путями управляется. Как бы докопаться? Хотя это конечно уже совсем не по сабжу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 18:15:43 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
авторв этом же модуле держать форму как переменную Думается, что вся процедурина крутится внутри одной глобально функции, присвоенной свойствам типа он-клик (т.е. кликушникам -или даблкликлушникам). И если унутре ее что и вызывается, то вызовы отрабатывают "в одном потоке" (в вызовах этих процедур можно форму передавать как параметр). Т ч. форму надо держать не в форме,как переменную, а в функции, как переменную, по выходу из функции она (переменная) благополучно сдохнет (когда отработают последние события в ей). И явного закрытия не потребуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 18:36:10 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
ЛифчикЗанес в список "Надо сделать в проге". Растет быстрее, чем "Уже сделано" :) ЗЫ ChDir не помогает:( Этот гипердиалог, зараза, какими-то другими путями управляется. Как бы докопаться? Хотя это конечно уже совсем не по сабжу With WizHook .Key = 51488399 Call .AccessWizFilePath("d:\Victosha") End With 2 assa твое предложение не экономит время загрузки формы в момент вызова функции... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 18:49:54 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Виктоша: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 2 Assa: Сделал, спасибо! Таймер убрал - само все закрывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 19:10:19 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Действительно - проврался... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 19:19:21 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Victosha2 Лифчик Действительно - проврался... (с выражением лица)Хрен с ним, в том поле, где мне нужен гиперлинковый диалог, запоминать не обязательно ибо тулз используется достаточно редко. А на остальных полях FileDialog стоит. Со временем может замена какая этому гипердиалогу подыщется. Я и так беск.благодарен и при случае волью в вас во всех пива немеряно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 19:25:19 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лифчик Victosha2 Лифчик Действительно - проврался... (с выражением лица)Хрен с ним, в том поле, где мне нужен гиперлинковый диалог, запоминать не обязательно ибо тулз используется достаточно редко. А на остальных полях FileDialog стоит. Со временем может замена какая этому гипердиалогу подыщется. Я и так беск.благодарен и при случае волью в вас во всех пива немеряно :) Ну, блин, ты даешь. Ты же сам все это придумал!!!!!!!!!!!... Мне понравилось очень.... Все просто, а у меня все загогулины давно выпрямились. И я бы просто не смог такую мыслю споймать. А пиво - уже скоро... Велосипедный сезон я вчера начал заново. Скоро и пиво... По планам - 31 декабря :) Пока устравиваю периодические глотковые разминки, чтобы вкус не забыть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 19:49:51 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
2 Лифчик И все-таки 1) призадумавшись, не сумел себе представить, каким таким волшебным образом «настоящие» гиперрсылки у тебя заменились черт знает на что – кажется, это уже в тему «Проектирование БД»… Ну, уж ладно… 2) Вот прочитал еще раз все написанное и загрустил. Это же надо было весь день ахинею за хвост подергивать. Вместо того, чтобы оправиться и покурить… Все вежливо промолчали, я, пожалуй тоже…. Вот твоя функция в «исходном виде» Код: plaintext 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. 32. 33. 34. Надо ли комментировать? … PS 1 2 ЛП Любопытно, что наговоренная мною ахинея (чичас я другими словами на тему от 16:00 думаю) не меняет главного – DoCMD.Close обманывает в исходном варианте Лифчика именно асинхронные ожидания :)) ЗЫ 2 прикладываю "обзазец" (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 00:26:46 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
VictoshaЛюбопытно, что наговоренная мною ахинея (чичас я другими словами на тему от 16:00 думаю) не меняет главного – DoCMD.Close обманывает в исходном варианте Лифчика именно асинхронные ожидания :)) А DoCmd.RunCommand acCmdEditHyperlink - синхронные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 00:54:09 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Лох Позорный VictoshaЛюбопытно, что наговоренная мною ахинея (чичас я другими словами на тему от 16:00 думаю) не меняет главного – DoCMD.Close обманывает в исходном варианте Лифчика именно асинхронные ожидания :)) А DoCmd.RunCommand acCmdEditHyperlink - синхронные :)) в моей голове эта история как-то связалась вот с этой темой http://www.sql.ru/forum/actualthread.aspx?tid=115316&hl=close и вот с этой http://www.sql.ru/forum/actualthread.aspx?tid=117681&hl=winsock В общем, с такой формулировкой ( авторА DoCmd.RunCommand acCmdEditHyperlink - синхронные) я соглашусь... А именно - DoCmd.RunCommand acCmdEditHyperlink производит на свет свой поток "событий" - назовем его вложенным, в том числе завязанных на системную очередь оконных сообщений. Некоторые (закрытие окна) из "вложенных" событий не могут быть завершены раньше, чем завершатся события "вызывающего объекта". Это сильно характерная для модальных, живущих в dll "связанных подформ" проблема. DoCmd.RunCommand acCmdEditHyperlink вызывает модальную форму, сидячую в какой-то Dll. Управление возвращается в конце концов в строку следующую за строкой вызова модального диалога. Вызывая по дороге "побочные" события типа афтерапдейт контрола. (В варианте Лифчика совсем занятная штука - после отработки афтерапдейт управление обязано вернуться в готфокус) В момент возврата закрытие формы диалога уже назначено, но, судя по всему - не завершено. Запрет на Docmd.Close для текущей формы в этом состоянии виден невооруженным глазом. Точную природу запрета я не возьмусь определять. Роль же таймера и/или SendKeys как раз заключается в предоставлении возможности свободного завершения текущих потоков событий и асинхронной инициализации событий, вызывающих переходы в новые состояния (формы) из текущего достигнутого. В любом случае пример хорош тем, что показывает 1) как НЕ НАДО рулить событиями 2) логика "асинхронного автоматного" программирования прилично отличается от логики "последовательных алгоритмов". А специфика "асинхронности" Com-объектов придает случаю особую прелесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 01:50:12 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Читал. Много думал. Ввел на вызываемой форме-имитаторе гиперлинкдиалога еще одно поле, в которое передаю фокус после апдейта первого (чтобы диалог не циклился). Полностью осознал ущербность пути, по которому рулил событиями. Но почему папаша Билл не дает мне открыть гиперлинкдиалог в модальном виде? Я был бы ему бесконечно благодарен. Прикладываю картинку и коды, а то я в посторонних с трудом разбираюсь (свое иногда не могу разобрать). Суть поведения обновленных псевдогиперлинковых полей (на картинке At1, 2 итд+AnswerRef, которого не видно) такова: по Дблклику вызывается функция, которая смотрит, что за контрол. 1.Если контрол - комбобокс и в нем есть текст, то отправляемся по ссылке Application.FollowHyperlink Path 2.Если это комбобокс и нет ссылки, то смотрим, как зовут контрол 2а - зовут НЕ "IDAnswer" - запускаем обычный FileDialog 2б - если так, то запускаем форму-имитатор PID (не буду расшифровывать, почему такое название) Поведение в поле IDAnswer отличается именно тем, что аттачменты всегда файлы, а в поле IDAnswer могут заноситься ссылки на директории с перепиской. 3. Если контрол - текстбокс, то выполняется файл-диалог с решетками, т.к. все такие текстбоксы у меня - гиперлинки (осталось немного в других таблицах) В всех случаях если выбраный файл/папка - новый, то функция DestFileID вставляет строку в таблицу-справочник. Щас ошибок найдем и раскритикуем. Велькам Код: plaintext 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:43:55 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
1) Лучше сделать отдельную функцию, по работе с твоей формой-диалогом. Вот вариант, встроенный в твой код – Убери код из своей формы СОВСЕМ. Оставь пустой модуль формы HasModule у формы д.б. = Истина Код: plaintext 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:13:26 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Victosha‘следующие 3 строки мне осознать тяжело, особенно последнюю. ‘Осторожнее с нею – это, не то, чтобы АХТУНГ, а просто АФТЕРАПДЕЙТ. Подформа Child6 - это и есть подчиненная табличная форма, изображенная на слипе (3 записи) Forms!MailLists.Child6.Form.IDAnswer = DestFileID(str) Текст из гипердиалога передаю в функцию, которая возвращает ID файла, при необходимости добавляет новый путь в таблицу-справочник Forms!MailLists.Child6.Form.IDAnswer.Requery Рекверит комбобокс ‘без специальной надобности – лучше Value Forms!MailLists.Child6.Form.IDAnswer.Text = str Заносит в текстовый столбец комбо путь, который выбран в диалоге (соответствующий ID файла гарантированно есть в присоединенном столбце ‘Me.Refresh – это я не знаю, зачем , было Этим событие афтерапдейт вызывал ‘Me.Vspom.SetFocus – это тоже Это - ответ на Victosha(В варианте Лифчика совсем занятная штука - после отработки афтерапдейт управление обязано вернуться в готфокус) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:35:48 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
:)) в общем, дело к пиву продвигается... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:45:45 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Victosha:)) в общем, дело к пиву продвигается... (с выражением лица)Определенно...Вот тока с письмами Биллу разберусь, которые меня в другом месте зафакали :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:56:09 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
Не подскажете ли. а есть ли WizHook в 97 Аксесе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 10:20:48 |
|
||
|
Закрытие формы на Activate
|
|||
|---|---|---|---|
|
#18+
natalitvinenkoНе подскажете ли. а есть ли WizHook в 97 Аксесе? нет. там используют экспорт функций. кое-что есть здесь http://www.trigeminal.com/codes.asp?1033 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 10:50:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1671480]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
105ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 410ms |

| 0 / 0 |
