powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Узнать наличие свойства у объекта
17 сообщений из 17, страница 1 из 1
Узнать наличие свойства у объекта
    #35795924
Хочется сделать такую функцию для формы (см. код), только свойство Enabled не у всех контролов есть (например, у надписей нет :-)

Как проверить наличие свойства у объекта?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub Form_Current()
    Dim st As Boolean
    st = True

    If Me.date_completion_actual >  0  Then
        st = False
   
    i =  1 
    While Me.Controls.Count <= i
        Me.Countrols.Item(i).Enabled = st
        Inc (i)
    Loop
   
    Me.Refresh
End Sub
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35795936
а, вписать в начеле процедуры:
On Error Resume Next
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35795942
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если на строке

Код: plaintext
Me.Countrols.Item(i).Enabled = st

будет ошибка, значит у элемента нет такого свойства.
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35796798
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
незаморачиватся,

таки можно проверять тип контрола селект кейсом. И в зависимости от -
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35796874
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы всему Enabled:=False - сразу EnableWindow Me.hwnd, 0 ;-)
Будет не достучаться 100%
зы: если что - в подформе работает
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35797033
Gluck_13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RestavraciyaЧтобы всему Enabled:=False - сразу EnableWindow Me.hwnd, 0 ;-)
Будет не достучаться 100%
зы: если что - в подформе работает

Имхо в этом случае контролы не приобретают Disable-вид (юзеру поведение окна становится не понятно). Кроме того, "сквозь" такое окно можно щелкнуть мышкой на то окно, что лежит за ним.
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35797835
aemon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно в переборе коллекции Controls узнать его тип - каждый контрол имеет свойство ControlType
И если он вас устроит, то выполнить вашу процедуру Inc (i).
разных ControlType всего 18, не так уж и трудно их просеять
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35798027
Сделал в итоге
On Error Resume Next

Контролы замораживает, только несколько штук оставляет...

Цикл стал такой
Код: plaintext
1.
2.
3.
4.
    i =  1 
    Do While i<=Me.Controls.Count
        Me.Countrols.Item(i).Enabled = st
        i = i +  1 
    Loop
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35798039
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортолько несколько штук оставляет...Среди них есть тот, на котором в момент заморозки установлен фокус
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35798040
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+
Из каких соображений цикл от 1 до Count ? Нет контрола с индексом Count, есть с индексом Count-1
Значит остался ЕЩЕ один контрол (+ к тому на котором фокус) - это контрол с индексом =0
Надо
Код: plaintext
1.
2.
3.
4.
for i= 0  to me.controls.count- 1 
  ...
  Me.Countrols.Item(i).Enabled = st
  ...
next
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35798041
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: вот до чего может довести тупое (в вашем случае) применение On Error Resume Next
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35798544
Фотография proposed amendment
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
for each control in me
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35799831
Restavraciya,

Всегда думал, что БАЗЕК не Ц и в нём всё с единицы начинается.
Впрочем, согласен: моя ошибка.

Сделал цикл в итоге

Код: plaintext
1.
2.
    For Each Control In Me.Controls
        Control.Enabled = st
   Next

Всё равно два поля оставляет, но редактировать их всё равно нельзя (ещё и формы AllowEdits = false), а серым не выделяет ну и хрен с ними!

P.S. Пришлось тут писать одну программу на flash -- тоже идиотизм ещё тот, но хотя бы не получается таких ляпов как в vb.
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35799898
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отвлеченно полюбопытствую

вам не кажется странным проверять
Код: plaintext
date_completion_actual 
на
Код: plaintext
>  0 
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35799941
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshtonЕсли на строке

Код: plaintext
Me.Countrols.Item(i).Enabled = st

будет ошибка, значит у элемента нет такого свойства.

если на этой строке будет ошибка, то, скорее потому, что неверно написано имя коллекции Controls
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35799961
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не обратил внимание, на то как написал автор.
...
Рейтинг: 0 / 0
Узнать наличие свойства у объекта
    #35803435
BULK INSERT,

Ой, подколол!
В этом форуме нихера не изменить уже написанное сообщение. В первом посте ошибся, когда набивал -- что, теперь враг?
Конечно же там должно быть Me.Controls.Item(i).Enabled = st; в программе у меня так и написано. В форум по известным соображениям живой код не выкладываю, а упрощённый пример, чтобы тебе же, милейший друг, голову лишним не забивать!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Узнать наличие свойства у объекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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