powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / My first class. вопросы
14 сообщений из 39, страница 2 из 2
My first class. вопросы
    #32531445
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
изначально, ежели вы читали, никакого
Private Sub ArcF_Close()
нихде не было
а все было в Form_Close
(Set TARC.ArcForm = NOTHING
, правда другие события не выставлялись в ""
а просто обходились в процедуре
Property Set ArcForm (см выше))

И все валилсоь

т.е. вы утверждаете, что в случае Nothing
в Property Set ArcForm (см выше)
нужен обратный обход:
сначала все
Set ArcF.OnТРАТАТА = ""
и только потом
Set ArcF= nothing

?
возможно.
Пасиб за растолковку.
проверю на досуге (сейчас запарка временная)
завтра. Все завтра.


вот только что же он, падла, валится, а не ругается :(
...
Рейтинг: 0 / 0
My first class. вопросы
    #32531451
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет сначала ТРАТАТА="", а потом Nothing - это определенно.
Но.

НО

Переменные типа формы (и прочие "внешние объекты автоматизации") требуют ОЧЕННО БОЛЬШОЙ акууратности.
При всем том, что Nothing - это всего лишь лонг равный нулю, я сам ПРОСТО ПОБОЯЛСЯ БЫ писать

Set myVar.MySetMethod= Nothing

применительно к переменным формы. В этом месте ЛЕД ТОНКИЙ. И лыж походящих может не оказаться. В 10 случаях из 10 я бы написал внутреннюю очистку для данного случая.
...
Рейтинг: 0 / 0
My first class. вопросы
    #32531474
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне хотелось бы, чтобы класс работал "похоже" на собственные объекты Аксес
Если есть паблик св-во (пропертя сет), чтобы можно (не токмо мне) "не задумываясь" влудить
Set ЭтаСамяПропертя = Nothing
в том же модуле класса (формы), где ей сначала делали не Nothing
(чтобы и не надо было лазить в реализацию, и убеждаться, что оно там само умрет).
...
Рейтинг: 0 / 0
My first class. вопросы
    #32531627
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автормне хотелось бы, чтобы класс работал "похоже" на собственные
объекты Аксес
Если есть паблик св-во (пропертя сет), чтобы можно (не токмо мне) "не задумываясь" влудить
Set ЭтаСамяПропертя = Nothing


а зачем вообще нужен такой класс, умеющий слушать РАЗНЫЕ формы - какие прикажут? Ведь модуль класса КАЖДОЙ формы обладает таким волшебным умением - слушать СВОЮ форму. Видимо, для "экономной" реализации однотипного поведения. Не знаю какого, например, той самой пресловутой "регистрации действий пользователя с базой". Будучи однажды написанным (неважно в данном контексте) он способен подключаться/его можно подключить (КРИТИЧЕСКИ ВАЖНО- собственно определяет отношение к такому классу) к любой форме, работающей с набором данных (вновь не важно). Что здесь "похожего" на собственные объекты акцесс? И где вообще проперти Сет?
Тут вовсе НЕ проперсти Сет
а

Public Sub AttachForm( byval uForm as Form)

и
Public Sub Detach|Destroy|ClearClass|Terminate просматриваются, а никак не проперти Сет, которое никого не делает ни на кого похожим.


автор(чтобы и не надо было лазить в реализацию, и убеждаться, что оно там само умрет).

-)))
а вот с этого места пожалуйста поподробней. Кого Вы собираетесь туда послать?
И чем дисциплина Set|Set лучше чем дисциплина Attach|Detach ?
По мне так второй вариант гораздЕЕ лучше именно тем, что собственное имя для всякого случая имеет.

ЗЫ1 пока пиво пилось подумал - неа, не убелили, что все это не провокация )))
Ps2 сегодня "меня не будет". Так что, "вероятные продолжения" - завтра.
...
Рейтинг: 0 / 0
My first class. вопросы
    #32532391
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверил вчера эээ "теорию отключения подписчиков" (хотя и так было ясно, что она тут не причем - 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.
Public Property Set ArcForm(ByVal ArcFvNewValue As Form)
    If ArcFvNewValue Is Nothing Then Exit Property
    'блокируем пи при попытке явно убрать св-во
    'можно еще установить флаг, т.,чтобы Property Get ArcForm()
    'возвращал после этого "вовне" Nothing
    Set ArcF = ArcFvNewValue
    ArcF.AfterUpdate = "[Event Procedure]"
    If With_T Then ArcF.BeforeUpdate = "[Event Procedure]"
    
    ArcF.OnDelete = "[Event Procedure]"
    If With_T Then ArcF.BeforeDelConfirm = "[Event Procedure]"
    ArcF.AfterDelConfirm = "[Event Procedure]"
    ArcF.OnClose = "[Event Procedure]"
    'не "[Event Procedure]" перекрываются, "[Event Procedure]" дополняются !!!
End Property
а при юзании флага еще и "обнулит" св-во нафих (внешний юсер класса получит Nothing что кульно).
(видимо флаг вообще необходим, дабы предотвратить попытку переключить форму после первого подключения - надо подумать...)
Второе - попытка запустить деструктор извне -
Set TARC = Nothing
(или объявить переменную TARC на уровне процедуры, а не класса, что по выходу из процедуры очистит ссылку и тем самым вызовет его деструктор). Это можно сделать в инициализации, но поскоку класс можно юзать и не из форм (гипотетически) (скажем какие-то методы), то лучше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private piPreventer As Object 'самоподхват
...
Public Property Set ArcForm(ByVal ArcFvNewValue As Form)
    Set piPreventer = Me 'ставим блокировку пи при
                'внешних попытках вызвать деструктор класса
    If ArcFvNewValue Is Nothing Then Exit Property
    'блокируем пи при попытке явно убрать св-во
    'можно еще установить флаг, т.,чтобы Property Get ArcForm()
    'возвращал после этого "вовне" Nothing
    Set ArcF = ArcFvNewValue
    ArcF.AfterUpdate = "[Event Procedure]"
    If With_T Then ArcF.BeforeUpdate = "[Event Procedure]"
    
    ArcF.OnDelete = "[Event Procedure]"
    If With_T Then ArcF.BeforeDelConfirm = "[Event Procedure]"
    ArcF.AfterDelConfirm = "[Event Procedure]"
    ArcF.OnClose = "[Event Procedure]"
    'не "[Event Procedure]" перекрываются, "[Event Procedure]" дополняются !!!
End Property
далее проверяем:
Код: plaintext
1.
2.
3.
4.
5.
Private TARC As New T_ArcF

Private Sub Form_Close()
    Set TARC.ArcForm = Nothing
    Set TARC = Nothing 'проверим нашу блокировку
End Sub
"все путем" (отключаем Form_Close() - нормально, т.е. ссылку бить руками не надь)
далее можно и так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
'Private TARC As New T_ArcF
Private Sub Form_Open(Cancel As Integer)
Dim TARC As New T_ArcF
    'TARC.With_T = True 'фиксировать в шапке - чревато глюками
    Set TARC.ArcForm = Me
    TARC.sTable = "Facturno"
    vKey(0) = "Code": vKey(1) = "Code" 'vKey( 0 ) - в таблице, vKey( 1 ) - в форме
    TARC.fKeys.Add (vKey) 
End Sub
т.е. ваабще забываем о TARC в форме (все равно подействовать на него в смысле вызова деструктора нам запрещено (падением акеса опосля), а для другого он нам не нужен.

Итак, убрать ручки можно. Но всегда ли удобно то, что я не имею право дестройнуть класс снаружи (не вызвав требуемого события в ЕГО форменной переменной)? Ведь я могу захотеть написать ветвящиеся алгоритмы, некоторые ветви которого мне УДОБНО бы было реализовывать как ОТДЕЛЬНЫЙ класс и отключать его полностью (деструтором) по мере необходимости (подключая, в случае нужды, новый), а не ввязываться в бодягу полного перенаполнения контекста (событий, методов вызываемых в событиях, и т.п.) одного и того же класса по условию. Я не утверждаю, но полагаю такой случай возможным.

___
Да, проверил на 2к. То же самое (сначала показалось не-а, но "пригляделся - "t,encz"). Т.что делать паблик методы дестрой/терминейт и т.п. нет нужды и в нем.

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

___
Насчет
Public Sub AttachForm
и т.п. - поподробней, если не лома.
Ибо в моем классе русским по белому накарябано
... Property Set
... Property Get
и никаких Attach-ей- и прочачей нет. Где подмена (засада)? Кто осуществлял. Какая падла это криво реализовала? Кого piPrevent-ить будем?

____________
нет, я вполне допускаю, что именно у меня руки криво прикручены. Т.е. что я нахожу штучки, которые не работают. Но мне кажется, что они должны работать.
...
Рейтинг: 0 / 0
My first class. вопросы
    #32532408
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опс. Упустил:

имелось в виду, что разблокировка терминейта теперь у нас в наших событиях форменной переменной класса . И токо там.
Код: plaintext
1.
2.
3.
4.
Private Sub ArcF_Close()
    Set piPreventer = Nothing 'только тут снимаем блокировку пи
    ClearMem
    Set ArcF = Nothing 'работает только тут ! (иначе вываливает аксес)
End Sub
...
Рейтинг: 0 / 0
My first class. вопросы
    #32533615
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хуру, значит хуру.
тема закрыта. По крайней мере до замены огрызков на куски кода пригодные к анализу. (модуль формы+ модуль класса-обвязки в "исходном виде")
Гадать на Ваших гущах мне весьма затруднительно. А в том, что мне Ваши "методы" не подошли - виноват я сам.

PS
Не знаю, что там у Вас A2K "также" как в 97, а про 97 "знаю" примерно следующее - там неэтично начинать подобные "обвязки" без установленного 3-го сервис пака. На всякий случай - проверьте. (не знаю, были ли более поздние)
...
Рейтинг: 0 / 0
My first class. вопросы
    #32534195
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тесtовая база (2k==97)
форма
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Option Compare Database
Option Explicit
Private TARC As New T_ArcF

Private Sub Form_Close()
    Set TARC = Nothing
End Sub

Private Sub Form_Open(Cancel As Integer)
    Set TARC.ArcForm = Me
End Sub
класс T_ArcF:
Код: 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.
Option Compare Database
Option Explicit

Private piPreventer As Object 'самоподхват
Private WithEvents ArcF As Form

Public Property Get ArcForm() As Form
    Set ArcForm = ArcF
End Property

Public Property Set ArcForm(ByVal ArcFvNewValue As Form)
    'Set piPreventer = Me 'ставим блокировку пи при
                'внешних попытках вызвать деструктор класса
    'If ArcFvNewValue Is Nothing Then Exit Property
    Set ArcF = ArcFvNewValue
    ArcF.AfterUpdate = "[Event Procedure]"
    ArcF.OnClose = "[Event Procedure]"
End Property

' При удалении экземпляра
Private Sub Class_Terminate()
    Terminate
'!не писать в формах:
'Private Sub Form_Close()
    'Set TARC = Nothing 'или
    'Set TARC.ArcForm = Nothing
    'TARC.Terminate
    'и то и другое и третье вызывает системную ошибку акеса
    'уже ПО выходу из процедуры Form_Close
    'т.е. не в деструкторах, а в механизмах аксесса
'End Sub
End Sub

Private Sub Terminate() 'все равно все не чистим
    Set ArcF = Nothing      'Без ArcF_Close валит Access
End Sub

Private Sub ArcF_AfterUpdate()
On Error GoTo err

ex:
    Exit Sub
err:
    MsgBox err.Description
    Resume ex
End Sub

'Private Sub ArcF_Close()
'    Set piPreventer = Nothing 'только тут снимаем блокировку пи
'    Set ArcF = Nothing 'работает только тут ! (иначе вываливает аксес)
'End Sub

97 -SP2, но ACCESS2000 - SP3 (а тут с какого SP ?)
оба падают уже после исполнения предложения {End Sub} процедуры {Private Sub Form_Close()}



вот и думаю, шо я не так поняв за классы (шо даже обработку эксепшенов на такой случай делать не нада)?
...
Рейтинг: 0 / 0
My first class. вопросы
    #32534321
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соврал я в своих изложениях только в одном - в порядке подписки.
Далее про письки.
письки в приведенном Вами Terminate должны жить следующим образом:

Private Sub Terminate() 'все равно все не чистим
ArcF.AfterUpdate = "" ' - это письки '
ArcF.OnClose = "" ' это тоже '
Set ArcF = Nothing 'Без ArcF_Close валит Access - враки - с письками никто никого не валит, если письки стоят.
End Sub
...
Рейтинг: 0 / 0
My first class. вопросы
    #32535026
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тупо вставил.

тупо валится.

тупо в 97 SP2

тупо в 2000 SP3


А в каком у вас не валится? (И вообще, что он делает без "отписки")

_
ЗЫ. "Отписку" я не воспроизводил в пердлагаемой модели, поскоку все одно валится. Что и подтвердилося.

:( нет в жисти щастя
...
Рейтинг: 0 / 0
My first class. вопросы
    #32535036
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
Исключение в приложении:
        Прил.:  (pid= 1308 )
        Время:  26 . 05 . 2004  @  16 : 01 : 59 . 062 
        Номер: c0000005 (нарушение прав доступа)

* ----> Сведения о системе <----*
 

* ----> Список задач <----*
 
    0  Idle.exe
    8  System.exe
  140  SMSS.exe
  164  CSRSS.exe
  184  WINLOGON.exe
  212  SERVICES.exe
  224  LSASS.exe
  376  svchost.exe
  420  svchost.exe
  468  spoolsv.exe
  500  cusrvc.exe
  568  regsvc.exe
  584  mstask.exe
  720  wm.exe
  744  svchost.exe
  880  explorer.exe
  972  dpmw32.exe
  988  nwtray.exe
 1024  drwebscd.exe
  356  spiderml.exe
 1040  internat.exe
 1060  LvAgent.exe
 1068  thebat.exe
  604  IEXPLORE.exe
  596  svchost.exe
  388  TASKMGR.exe
  920  MSOHELP.exe
 1256  msaccess.exe
  540  winhlp32.exe
 1308  MSACCESS.exe
 1260  DRWTSN32.exe
    0  _Total.exe

( 30000000  -  30491000 ) 
(77F80000 - 77FFC000) 
(77F40000 - 77F7C000) 
(793A0000 - 7945A000) 
(77E10000 - 77E75000) 
( 10000000  -  10019000 ) 
( 79060000  - 790C2000) 
(770F0000 - 7715E000) 
(308C0000 - 30E1D000) 
(77A50000 - 77B3C000) 
( 37020000  - 3713B000) 
(00F80000 -  01184000 ) 
(779B0000 - 77A4B000) 
(6E380000 - 6E386000) 
(75E00000 - 75E1A000) 
(68C10000 - 68C96000) 
( 78000000  -  78045000 ) 
( 71780000  - 7180A000) 
(1B000000 - 1B170000) 
(1B5D0000 - 1B665000) 
(1B270000 - 1B2BC000) 
( 20000000  - 2000C000) 
( 65000000  -  65263000 ) 
( 65300000  -  65327000 ) 
(1B810000 - 1B84A000) 
( 77260000  - 772CC000) 
(0D310000 - 0D458000) 
(70BD0000 - 70C34000) 

Копия памяти для потока 0x1a8

eax= 00000000  ebx= 00000000  ecx= 00000000  edx= 00000000  esi=779d93d0 edi= 00000000 
eip= 30058326  esp=0012ef44 ebp=0012f010 iopl= 0          nv up ei pl zr na po nc
cs=001b  ss= 0023   ds= 0023   es= 0023   fs=003b  gs= 0000              efl= 00000246 


функция: <nosymbols>
        300582f5  50                push    eax
        300582f6 895dd8           mov     [ebp+0xd8],ebx         ss:00bb8ef6=????????
        300582f9 ff158cff3f30     call    dword ptr [303fff8c]   ds:303fff8c=779db790
        300582ff 8b4d14           mov     ecx,[ebp+0x14]         ss:00bb8ef6=????????
         30058302  e83353ffff       call    CreateIExprSrvObj+0x2121e (3004d63a)
         30058307  3bc3             cmp     eax,ebx
         30058309  8945e0           mov     [ebp+0xe0],eax         ss:00bb8ef6=????????
        3005830c 895d08           mov     [ebp+0x8],ebx          ss:00bb8ef6=????????
        3005830f 0f86ac000000     jbe     CreateIExprSrvObj+0x2bfa5 (300583c1)
         30058315  8b3598ff3f30     mov     esi,[303fff98]         ds:303fff98=779d93d0
        3005831b ff7508           push    dword ptr [ebp+0x8]    ss:00bb8ef6=????????
        3005831e 8b4d14           mov     ecx,[ebp+0x14]         ss:00bb8ef6=????????
         30058321  e839020000       call    CreateIExprSrvObj+0x2c143 (3005855f)
СБОЙ ->  30058326  8b4004           mov     eax,[eax+0x4]          ds:00a89ee6=????????
         30058329  8d55f0           lea     edx,[ebp+0xf0]         ss:00bb8ef6=????????
        3005832c  52                push    edx
        3005832d ff7510           push    dword ptr [ebp+0x10]   ss:00bb8ef6=????????
         30058330  8b08             mov     ecx,[eax]              ds: 00000000 =????????
         30058332   50                push    eax
         30058333  ff11             call    dword ptr [ecx]        ds: 00000000 =????????
         30058335  8bf8             mov     edi,eax
         30058337  3bfb             cmp     edi,ebx
         30058339  0f8c82000000     jl      CreateIExprSrvObj+0x2bfa5 (300583c1)
        3005833f 8b45e4           mov     eax,[ebp+0xe4]         ss:00bb8ef6=????????
         30058342  8b4df0           mov     ecx,[ebp+0xf0]         ss:00bb8ef6=????????
         30058345  0fbf401c         movsx   eax,word ptr [eax+0x1c]    ds:00a89ee7=????
         30058349  8b09             mov     ecx,[ecx]              ds: 00000000 =????????
        3005834b 391c08           cmp     [eax+ecx],ebx          ds: 00000000 =????????
...
Рейтинг: 0 / 0
My first class. вопросы
    #32535108
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня никак не валится ни так не эдак. Офис 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 ?
...
Рейтинг: 0 / 0
My first class. вопросы
    #32535334
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, не выходит каменный цветок.

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

____________
замечание: В событии 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
(могут быть и больше, но я архивирую только важные для юзеров таблицы - по поводу авторства записей в которых они спорят). Т.ч. мне в каждой форме нужны свои архиваторы.
...
Рейтинг: 0 / 0
My first class. вопросы
    #32535351
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / My first class. вопросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]