|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 16:45 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
читай хелп по On Error там все написано ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 16:48 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Вот выдрал кусок из своей проги, возможно наведет на решение: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 16:55 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Лох Позорныйчитай хелп по On Error там все написано - из песни, как грится, слова не выкинешь: На диване я, как древней грек на травке, Разбавляю, как Сократ, водой портвейн, Генри Миллера читаю, Джойса, Кафку, И снобизм свой, занюханный, лелею. (http://www.bard.ru/cgi-bin/listprint.cgi?id=42.16) Вы в самом деле думаете, что я не читал "хелп по On Error"? Нельзя ли по-конкретней?? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:03 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Вы в самом деле думаете, что я не читал "хелп по On Error"? по крайней мере читали его не внимательно ф1An "enabled" error handler is one that is turned on by an On Error statement; an "active" error handler is an enabled handler that is in the process of handling an error. If an error occurs while an error handler is active (between the occurrence of the error and a Resume, Exit Sub, Exit Function, or Exit Property statement), the current procedure's error handler can't handle the error. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:05 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:27 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
хоть лежачего и не бьют, однако поглумиться над трупом можно :) проще было один раз написать On Error Resume Next, а потом проверять Err.Number в нужных местах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:30 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
И всё же, я как-то не уловил, почему не годится очевидное решение вроде нижеприведённого? Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:46 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:47 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
а вот так: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:47 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Коллеги, процедура должна отрабатывать также и ситуацию, когда на скрине нет ничего ... моего. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:52 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Тимур РахимовИ всё же, я как-то не уловил, почему не годится очевидное решение вроде нижеприведённого? Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Потому что, как я понял, нужно выяснить не тип активного контрола, а тип активного объекта (форма, таблица, отчет, страница доступа к данным). Тип активного контрола - выясняется с помощью TypeOf Screen.ActiveControl Тип активного объекта можно определить только (может и не только, но наиболее просто) перебором методов Screen.ActiveForm и т.д. с обработкой ошибок. Проверка TypeOf Screen.ActiveControl.Parent не годится (на активном объекте может не быть активного контрола). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:54 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#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.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:00 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Ударим автопробегом по бездорожью и разгильдяйству: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:14 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Лох ПозорныйПотому что, как я понял, нужно выяснить не тип активного контрола, а тип активного объекта (форма, таблица, отчет, страница доступа к данным). Тип активного объекта можно определить только (может и не только, но наиболее просто) перебором методов Screen.ActiveForm и т.д. с обработкой ошибок. Ага, спасибо, я понял это, как только внимательно перечитал ранее написанное здесь. В таком случае, как я понимаю, речь может идти только о наиболее экономно написанном коде. Применение On Error Resume Next мне кажется наиболее удобным подходом. Воспользовавшись идеей, предложенной "Программист-Любитель", рискну предложить такой вариант кода: Код: plaintext
Вместо strTypeName , разумеется, в зависимости от задачи, можно использовать и целочисленную переменную (перечислимый тип). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:26 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Мда, а ошибочку я таки у себя нашёл. В случае, если никакой объект из перечисленных не является активным, приведённый код вернёт DataAccessPage вместо ожидаемого Unknown . Торопиться вредно :). Подумаю, как код модифицировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:40 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
модифицировать оч просто: убрать строчку Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:42 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Тимур Рахимов Код: plaintext 1. 2. 3. 4.
У меня вопросик - форма, открытая как Datasheet, будет давать strTypeName = "Form", хотя не будет давать ошибки и на Set obj = Screen.ActiveForm И вообще, что Иван FXS понимал под типом объекта? Datasheet - это тип объекта? Для более точного знания типа открытого объекта надо добавить свойство Application.CurrentObjectType которое возвращает AcObjectType ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:49 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
[quot Serge GavrilovУ меня вопросик - форма, открытая как Datasheet, будет давать strTypeName = "Form", хотя не будет давать ошибки и на Set obj = Screen.ActiveForm[/quot] Опечатался, хотел сказать, что форма, открытая как Datasheet, будет и Screen.ActiveDatasheet и Screen.ActiveForm ... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 18:56 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Serge Gavrilov , что касается Datasheet - совершенно верно. В "раздумьях" о том, как наилучшим образом модифицировать код, я тоже задумался об этом. Видимо, с практической точки зрения будет достаточно изменить порядок проверки: проверять сначала на наличие Screen.ActiveDatasheet, и лишь затем на Screen.ActiveForm. Лох Позорный: Благодарю :). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 19:01 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Тимур Рахимов Видимо, с практической точки зрения будет достаточно изменить порядок проверки: проверять сначала на наличие Screen.ActiveDatasheet, и лишь затем на Screen.ActiveForm. С практической точки зрения я бы, наверное, проверил наличие активного объекта, а потом получил бы его тип через Application.CurrentObjectType ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 19:09 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
MsgBox TypeName(Application.Screen.ActiveControl) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 19:16 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Владимир СанычMsgBox TypeName(Application.Screen.ActiveControl) Саныч, читай топик с самого начала ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 19:19 |
|
Q: как утнать ТИП объекта, котрый актив на скрине?
|
|||
---|---|---|---|
#18+
Лох ПозорныйСаныч, читай топик с самого начала И чё? Там этого варианта нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 19:23 |
|
|
start [/forum/topic.php?fid=45&tid=1669868]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 397ms |
0 / 0 |