|
|
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Написал следующий код в moduleclass MyTextbox Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В чем ошибка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 13:46 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 13:58 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Теперь внутри класса ловиться GotFocus, но событие z2_GotFocus не возбуждаеться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:10 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
И что это дает Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:11 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Если в OnGotFocus не написано "[Event Procedure]", то обработчик не будет вызываться. Насчет z2_GotFocus - интересно поставить брейкпойнт на m_TextBox.BackColor = 16776960 и посмотреть, куда оно идет дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:13 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Так все нормально. Я в ручную написал все, а вот когда поставил его объявление, то получилось , что они разные . Система посавил параметр Код: plaintext Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:16 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Совет: Проверь, чтобы наступало событие Private Sub Class_Terminate() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:27 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
А как можно не использовать дополнительную процедуру для установки а инициализировать их как бы в конструкторе ( как в С++ ) Может здесь тоже есть что то похожее ? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:34 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Имел ввиду members. За совет спасибо. Работает. Объект уничтожаеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 14:36 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
авторРаботает. (не видел этого топика, потому про конструктор ответил в соседнем) И что работает? неужто z2_GotFocus заработал? Мнится мне, что вретес. Малость там шпиндель не довернут. ЗЫ Похоже Вам не совсем ЭТО надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 15:28 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Пардон - довернут - глазки еще не залиты, а уже не смотрют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 15:29 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
еще пару замечаний. 1) Если MyTextBox нужет ТОЛЬКО для того, чтобы менять цвет фона, ТО ему не нужен RaseEvent. Уведомление о наступлении события GotFocus получат все слушатели, подписавшиеся на него, в порядке подписки. Строка m_TextBox.OnGotFocus = "[Event Procedure]" ПОДПИСЫВАЕТ класс MyTextBox на получение соответствующих уведомлений. ОНА ОБЯЗАТЕЛЬНА в данном месте. В формах механизм подписки к событиям своих контролах скрыт и приближен к VB синтаксису. В форме (и прочих интересных) местах достаточно перехватывать GotFocus самого контрола. Поставьте MsgBox "ggg" в zz_GotFocus и в Text2_GotFocus - получите его дважды 2) Про деструктор. Гетс расказывает, что выполнение операций типа Set SomeThing=Nothing в деструкторе, вообще говоря ненадежно и может не освобождать ссылок в действительности. Зависит от версии/сервис пака. Почему-то надежнее в деструкторе вызывать метод (типа ) Terminate в котором собственно и производятся такие действия. Т.Е. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2004, 15:47 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
2 Victosha В аксесс97 создал модуль класса (давно не брал я в руки фишек) (для наглядности): Код: 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. так (без явного вызова деструктора) вроде работает, но без Set TARC = Nothing события Class_Terminate по выходу из формы не происходят. (смотрел в отладчике) (хотя ссылка должна умирать ?) Чем это чревато? Что говорит наука? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 12:48 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Чем это чревато? Что говорит наука? чреватость покажет Диспечер задач - используемая Акесом память будет постоянно рости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 12:57 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Да , Вы правы. Но в ссылке где то стояла .dll и я ее взял просто :-) Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 13:03 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Вроде память жрет. Но и без класса тоже жрет. Закрывается нормально. ватсон выдает: Код: plaintext 1. 2. 3. 4. в итоге выяснил, что проблема в попытке "Порвать связь" между классами оставил только те операции, которые не вызывают сбоя: Код: plaintext 1. 2. 3. находим еще одну интересность: Код: plaintext 1. 2. 3. 4. 5. 6. ...побег я, потом посмотрю (если накидаете советов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 15:03 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
2 фыыв автордополнив Property Set ArcForm строкой .OnClose = []) на бегу именно это ключём выглядит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 15:18 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Вроде память жрет. Но и без класса тоже жрет. Закрывается нормально. VBA всегда жрет память. Да же если открывать/закрывать пустую форму (без модуля), такова, видимо, его ущербная природа. Но при работе с классами, по моему опыту (и моему примеру), корректное убиение объектов в классе позволяло вместо 100-150 кб роста памяти, ограничится 5-10-30кб роста. Класс уничтожается (и ссылка на frm) по следующему примерному алгоритму (это обсуждение было на сайте Андрея Митина) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 15:26 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Спасибо. я посмотрел, у меня действительно Код: plaintext 1. 2. 3. (сразу не посмотрел - у меня там 6-7 подформочек к классу прикручены) (почему, кстати, предпочитаете юзать OnUnload? Close вроде позже?) просто при непосредственном вызове в форме Код: plaintext 1. 2. Set ArcF = Nothing деструктор запускался, но после отработки ВСЕГО кода (т.е. после прохождения End Sub процедуры Form_Close()) Аксесс валился "в ватсона". ( то же и при Set TARC = Nothing в Form_Close) ЗЫ: при этом нет нужды делать Public Sub Destroy() (у меня - Terminate к примеру) Достаточно Private т.к. ArcF_Close ее найдет и так (приватно), а вызванная снаружи (из Form_Close) она валит Аксесс после отработки Class_Terminate и выхода из Form_Close в Ватсона влет (на ArcF_Close поток ес-сно уже не попадает). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 18:32 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
2 фыыв Сударь, интересно - Вы специально такие примерчики составляете, дабы на вшивость людей проверять, или НА САМОМ ДЕЛЕ ТАКОЙ код пишите-) Вам надо отвечать или Вы просто шутите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 18:41 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
отвечу через 10 мин - труба зовет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 18:43 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
и хде это просветленное мнение? или великого гуру токо на наезд и хватило? ждемс :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:09 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
1) раз у Вас есть Private Sub ArcF_Close() значит, где-то есть ArcF.OnClose="[Event Procedure]" - то есть явная подписка на это событие, иначе ArcF_Close() просто не будет его получать. 2) не событие Close есть по крайней мере два подпсичика. из них ближайший (первый по списку вызвова) модуль класса самой формы. Второй - экземляр T_ArcF. Оповещение о наступлении события будет пытаться отдаваться обоим, пока каждый из них явно не откажется от подписки. Первый отписывается методом изничтожения процедуры Form_Close, второй - установлением ArcF.OnClose="" . 3) При наступлении события сначала о нем извещается ближайший подписчик. В нем, Вы уничтожаете ссылку на подпысываемый объект НЕ ОТПИСЫВАЯ его от очереди событий. То Есть, Если бы Вы завели метод в классе T_ArcF типа Peperty Set ClearForm(nothingForm as Form) ArcF.OnClose="" ... ArcF.OnПрочиеПодписанныеСобытия="" ... Set ArcF=nothingForm End Sub И вызывали ли бы в Private Sub Form_Close() set TARC.ClearForm = nothing End Sub То у Вас все (скорее всего) нормально работало. В приведенном же варианте кода по завершении Form_Close() ПЫТАЕТСЯ ПРОИЗВЕСТИСЬ вызов Private Sub ArcF_Close() КОГДА УЖЕ никакого ArcF И В ПОМИНЕ НЕТ (внутри класса) Как же на это реагировать - видно, ШУТИТЬ ИЗВОЛИТЕ. -))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:19 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
хуру, наезд все бы Вам обижаться. Нет пива, а он наезд. эхь Вот упьюся один и будет Вам ФормСлозе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:20 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
2 фыыф - Ты есче тута, или уже спишь и мне можно пиво пить начинать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:38 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
изначально, ежели вы читали, никакого Private Sub ArcF_Close() нихде не было а все было в Form_Close (Set TARC.ArcForm = NOTHING , правда другие события не выставлялись в "" а просто обходились в процедуре Property Set ArcForm (см выше)) И все валилсоь т.е. вы утверждаете, что в случае Nothing в Property Set ArcForm (см выше) нужен обратный обход: сначала все Set ArcF.OnТРАТАТА = "" и только потом Set ArcF= nothing ? возможно. Пасиб за растолковку. проверю на досуге (сейчас запарка временная) завтра. Все завтра. вот только что же он, падла, валится, а не ругается :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:41 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Насчет сначала ТРАТАТА="", а потом Nothing - это определенно. Но. НО Переменные типа формы (и прочие "внешние объекты автоматизации") требуют ОЧЕННО БОЛЬШОЙ акууратности. При всем том, что Nothing - это всего лишь лонг равный нулю, я сам ПРОСТО ПОБОЯЛСЯ БЫ писать Set myVar.MySetMethod= Nothing применительно к переменным формы. В этом месте ЛЕД ТОНКИЙ. И лыж походящих может не оказаться. В 10 случаях из 10 я бы написал внутреннюю очистку для данного случая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 19:49 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
мне хотелось бы, чтобы класс работал "похоже" на собственные объекты Аксес Если есть паблик св-во (пропертя сет), чтобы можно (не токмо мне) "не задумываясь" влудить Set ЭтаСамяПропертя = Nothing в том же модуле класса (формы), где ей сначала делали не Nothing (чтобы и не надо было лазить в реализацию, и убеждаться, что оно там само умрет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2004, 20:16 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
автормне хотелось бы, чтобы класс работал "похоже" на собственные объекты Аксес Если есть паблик св-во (пропертя сет), чтобы можно (не токмо мне) "не задумываясь" влудить Set ЭтаСамяПропертя = Nothing а зачем вообще нужен такой класс, умеющий слушать РАЗНЫЕ формы - какие прикажут? Ведь модуль класса КАЖДОЙ формы обладает таким волшебным умением - слушать СВОЮ форму. Видимо, для "экономной" реализации однотипного поведения. Не знаю какого, например, той самой пресловутой "регистрации действий пользователя с базой". Будучи однажды написанным (неважно в данном контексте) он способен подключаться/его можно подключить (КРИТИЧЕСКИ ВАЖНО- собственно определяет отношение к такому классу) к любой форме, работающей с набором данных (вновь не важно). Что здесь "похожего" на собственные объекты акцесс? И где вообще проперти Сет? Тут вовсе НЕ проперсти Сет а Public Sub AttachForm( byval uForm as Form) и Public Sub Detach|Destroy|ClearClass|Terminate просматриваются, а никак не проперти Сет, которое никого не делает ни на кого похожим. автор(чтобы и не надо было лазить в реализацию, и убеждаться, что оно там само умрет). -))) а вот с этого места пожалуйста поподробней. Кого Вы собираетесь туда послать? И чем дисциплина Set|Set лучше чем дисциплина Attach|Detach ? По мне так второй вариант гораздЕЕ лучше именно тем, что собственное имя для всякого случая имеет. ЗЫ1 пока пиво пилось подумал - неа, не убелили, что все это не провокация ))) Ps2 сегодня "меня не будет". Так что, "вероятные продолжения" - завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2004, 04:46 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
проверил вчера эээ "теорию отключения подписчиков" (хотя и так было ясно, что она тут не причем - Arc_Close не отписывал никого, а крахом не кончался, но я спорить не стал - а вдруг действительно чо вумное скажете :0) так вот, фиха. (пока все об акс 97) т.е. сермяга не в подписке/отписке и не в письках ваапше, а в том, что в а97(по меньшей мере в моих версиях) надо вызывать деструктор ТОЛЬКО в событии (еще посмотреть, где можно, а вдрух не везде) форменной переменной класса, объявленной WithEvents стало быть продолжим думать о том, на что вы вчера не подумавши накинулись: а именно как убрать торчащие из класса свойства и методы, приводящие к краху. (Или сделать так (если невозможно убрать что-то совсем), чтобы поюзав их, внешнеий пользователь класса не приводил систему к краху.) то, что метод Destroy (Terminate) придется запретить к публикации уже ясно. Остаются 2 ручки, валящие аксесс (именно Access.exe валится из-зм анхендлед ексепшн, а не "ТАКОЙ КОД", прошу заметить, т.ч. хуру тут обшибся адресом). 1. попытка "обнулить" свойство Set TARC.Arc_Form = Null (что, поскольку оно торчит из класса, никто формально не отменял) это лечится просто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. (видимо флаг вообще необходим, дабы предотвратить попытку переключить форму после первого подключения - надо подумать...) Второе - попытка запустить деструктор извне - Set TARC = Nothing (или объявить переменную TARC на уровне процедуры, а не класса, что по выходу из процедуры очистит ссылку и тем самым вызовет его деструктор). Это можно сделать в инициализации, но поскоку класс можно юзать и не из форм (гипотетически) (скажем какие-то методы), то лучше: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: plaintext 1. 2. 3. 4. 5. далее можно и так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Итак, убрать ручки можно. Но всегда ли удобно то, что я не имею право дестройнуть класс снаружи (не вызвав требуемого события в ЕГО форменной переменной)? Ведь я могу захотеть написать ветвящиеся алгоритмы, некоторые ветви которого мне УДОБНО бы было реализовывать как ОТДЕЛЬНЫЙ класс и отключать его полностью (деструтором) по мере необходимости (подключая, в случае нужды, новый), а не ввязываться в бодягу полного перенаполнения контекста (событий, методов вызываемых в событиях, и т.п.) одного и того же класса по условию. Я не утверждаю, но полагаю такой случай возможным. ___ Да, проверил на 2к. То же самое (сначала показалось не-а, но "пригляделся - "t,encz"). Т.что делать паблик методы дестрой/терминейт и т.п. нет нужды и в нем. насчет чиканья всех ручек надо подумать, мож какую бациллу с этим делом протащу. (Можно и попытаться запомнить, чо и когда можно а чо нельзя). Но и писать публичные методы, которые нельзя публично юзать - тоже моветон-с. ___ Насчет Public Sub AttachForm и т.п. - поподробней, если не лома. Ибо в моем классе русским по белому накарябано ... Property Set ... Property Get и никаких Attach-ей- и прочачей нет. Где подмена (засада)? Кто осуществлял. Какая падла это криво реализовала? Кого piPrevent-ить будем? ____________ нет, я вполне допускаю, что именно у меня руки криво прикручены. Т.е. что я нахожу штучки, которые не работают. Но мне кажется, что они должны работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2004, 13:49 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Опс. Упустил: имелось в виду, что разблокировка терминейта теперь у нас в наших событиях форменной переменной класса . И токо там. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2004, 13:55 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
хуру, значит хуру. тема закрыта. По крайней мере до замены огрызков на куски кода пригодные к анализу. (модуль формы+ модуль класса-обвязки в "исходном виде") Гадать на Ваших гущах мне весьма затруднительно. А в том, что мне Ваши "методы" не подошли - виноват я сам. PS Не знаю, что там у Вас A2K "также" как в 97, а про 97 "знаю" примерно следующее - там неэтично начинать подобные "обвязки" без установленного 3-го сервис пака. На всякий случай - проверьте. (не знаю, были ли более поздние) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 00:45 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
тесtовая база (2k==97) форма Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: 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. 97 -SP2, но ACCESS2000 - SP3 (а тут с какого SP ?) оба падают уже после исполнения предложения {End Sub} процедуры {Private Sub Form_Close()} вот и думаю, шо я не так поняв за классы (шо даже обработку эксепшенов на такой случай делать не нада)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 12:15 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Соврал я в своих изложениях только в одном - в порядке подписки. Далее про письки. письки в приведенном Вами Terminate должны жить следующим образом: Private Sub Terminate() 'все равно все не чистим ArcF.AfterUpdate = "" ' - это письки ' ArcF.OnClose = "" ' это тоже ' Set ArcF = Nothing 'Без ArcF_Close валит Access - враки - с письками никто никого не валит, если письки стоят. End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 12:45 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
тупо вставил. тупо валится. тупо в 97 SP2 тупо в 2000 SP3 А в каком у вас не валится? (И вообще, что он делает без "отписки") _ ЗЫ. "Отписку" я не воспроизводил в пердлагаемой модели, поскоку все одно валится. Что и подтвердилося. :( нет в жисти щастя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 16:12 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Код: 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. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 16:14 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
у меня никак не валится ни так не эдак. Офис xp Замечание по поводу последнего приведенного "полного" текста от 12:15 - почему Private TARC As New T_ArcF - NEW тут для кого? - не вполне честно "подписываться" не предоставив собственно интерфейса для получения уведомлений. По поводу версий - про 97 свое мнение об этичности оставляю в силе. в 2000 должно бы работать в любой вариации. Теперь по поводу валится. Исключительно для очистки совести, я бы в такой ситуации провел два эксперимента. 1) в классе-обвязке, применив последний указанный мной Terminate завел бы ПУСТУЮ процедуру Private Sub ArcF_Close() End Sub и посмотрел бы на результат 2) Не заводя вышуказанной процедуры, снял бы Private ограничение на Terminate, вставил бы в него в качестве первой строки ON ERROR RESUME NEXT И, в событии закрытия формы написал TARC.Terminate Set TARC = Nothing (и посмотрел бы на результат) ---------------------------- Из изложенного Вами, эксперименты эти - всего лишь припарки на теле мертвого, который перед смертью сильно потел, но как знатный некрофил, я бы их все-таки провел. Возможно, правильнее, сразу лезть на саппорт microsoft по теме совместного использования 97 и 2000 и шарит затем по реестру в соответствии с вычитанными рекомендациями. ЗЫ А не была ли у Вас установлена какая-нибудь особо полезная програмь, подменившая при своей установке Ole32.Dll ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 16:47 |
|
||
|
My first class. вопросы
|
|||
|---|---|---|---|
|
#18+
Не, не выходит каменный цветок. Если честна, я уже давно написал не падающий код (даже загородился от случайного написания "неправильного" - "автоподхватом" класса), но хотел бы разобраться в чем дело при таком подходе. ____________ замечание: В событии Close формы "отписку" от OnClose производить поздно. Я уже писал ПРЯМО в него (в Form_Close) так: Me.OnClose = "" или TARC.ArcForm.OnClose = "" и наблюдал (если я в Form_Close НЕ удаляю TARC) по крайней мере в последнем случае (т.к. это я помню точно) что: ArcForm.OnClose = "" ArcF.OnClose = "" но дебуггер на ArcF_Close приходит все равно сразу после Form_Close мы уже получив событие Close пытаемся отменить его обработку, думается это можно до (до наступления события) - т.е в обработчиках других событий, чего нам даром не надь. :) можно ж и не (пере)объявлять ArcF.OnClose = "[Event Procedure]" и не создавать ArcF_Close (я ж не обязан дублировать все обработчики своими? а только те, которые я хочу дополнить) а просто выполнить Form_Close, уж коль уже сохранено св-во (и не переопределялось в коде) как: Form.OnClose = "[Event Procedure]" все упадает в лучшем виде. __ по поводу DLL - могабыть. Только я на 2-х компах это имел. (дома и на работе). Осталось посмотреть на "чистом" а2000. Ole32.Dll 5.00.2195.6810 Операционная система Microsoft (R) Windows (R) 2000 923 КБ (945 936 байт) суббота 23 августа 2003 г., 14:48:40 язык - русськи __ NEW - у меня форма, на ней 4 подформы юзают класс на 2-х из них - свои подформы, из них класс юзают - на 1- одна на 2-й - 2 (могут быть и больше, но я архивирую только важные для юзеров таблицы - по поводу авторства записей в которых они спорят). Т.ч. мне в каждой форме нужны свои архиваторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 18:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1674343]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 512ms |

| 0 / 0 |
