Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как "управлять" формой-в-режиме-таблицы? / 21 сообщений из 21, страница 1 из 1
26.07.2004, 19:06:57
    #32621962
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Какие есть наиболее изящные способы "передачи управляющего воздействия" в форму, находящуюся в режиме таблицы? В ее VBA-модуль, естественно ...

Наример, хотелось бы, чтобы клавиша R вызавала процедуру myRequery(), но при этом буква R никоим образом не лезла в поля таблицы/формы?
...
Рейтинг: 0 / 0
27.07.2004, 10:59:49
    #32622639
Unicco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Иван FXSКакие есть наиболее изящные способы "передачи управляющего воздействия" в форму, находящуюся в режиме таблицы? В ее VBA-модуль, естественно ...
По-моему, это слишком общий вопрос :)

Иван FXSНаример, хотелось бы, чтобы клавиша R вызавала процедуру myRequery(), но при этом буква R никоим образом не лезла в поля таблицы/формы?
Можно на форме выставить "Перехват нажатия клавиш" = Да и, например, обрабатывать KeyPress.
...
Рейтинг: 0 / 0
27.07.2004, 11:00:31
    #32622641
Unicco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Вот простенький примерчик:
...
Рейтинг: 0 / 0
27.07.2004, 16:35:10
    #32623806
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
а если мне понадобится букву "R" ввести в поле таблицы???
...
Рейтинг: 0 / 0
27.07.2004, 16:37:59
    #32623816
витёк-ша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Иван FXSа если мне понадобится букву "R" ввести в поле таблицы???
тогда ее нужно будет ввести так же, как обычно ты вводишь клавишу F1 в таблицу.
...
Рейтинг: 0 / 0
27.07.2004, 16:43:35
    #32623834
Unicco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Иван FXSНаример, хотелось бы, чтобы клавиша R вызавала процедуру myRequery(), но при этом буква R никоим образом не лезла в поля таблицы/формы?
Иван FXSа если мне понадобится букву "R" ввести в поле таблицы???
Противоречие? :)
Это уж ты сам думай - условия какие-то вводи, etc...
...
Рейтинг: 0 / 0
27.07.2004, 19:59:34
    #32624179
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
У меня идея такая:
Код: 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.
Private Form_MouseDown__Flag As Boolean, Form_KeyPress_KeyAscii As Integer
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . .обработчики событий:  . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'запоминаем состояние "кнопка мыши нажата":'
Form_MouseDown__Flag = True
End Sub
__________________________________________________
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'сбрасываем состояние "кнопка мыши нажата":'
Form_MouseDown__Flag = False

If Form_KeyPress_KeyAscii <>  0  Then
    'если был KeyPress - отправляем его Ascii на отработку'
    Call my__KeyPress__Command(Form_KeyPress_KeyAscii, "Form", "MouseUp")
    'сбрасываем запомненный Ascii:'
    Form_KeyPress_KeyAscii =  0 
End If
End Sub
__________________________________________________
Private Sub Form_KeyPress(KeyAscii As Integer)
If Form_MouseDown__Flag Then
    'если нажата кнопка мыши - отправляем KeyAscii на отработку'
    Call my__KeyPress__Command(KeyAscii, "Form", "KeyPress")
End If
End Sub
__________________________________________________
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . .отработка "логики":  . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
Private Sub my__KeyPress__Command(KeyAscii As Integer, ElementName As String, EventName As String)
   Form_KeyPress_KeyAscii = KeyAscii
If Form_KeyPress_KeyAscii =  0  Then
    GoTo End_SFP '===>>>===
End If

Dim ch       As String, Uch As String
    ch = Chr(KeyAscii): Uch = UCase(ch)

If EventName = "KeyPress" Then
    Select Case Uch
    Case "R":myStatusString "Rqry?"
    Case Else
        myStatusString "{" & ch & "}"
    End Select
    
ElseIf EventName = "MouseUp" Then
    Select Case Uch
    Case "R":   Call myRequery: myStatusString "Rqry"
    Case Else
    End Select
    
Else: Stop
End If
End_SFP: End Sub
...
Рейтинг: 0 / 0
27.07.2004, 20:44:21
    #32624221
шёпотом
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
будет лапидарней , полиморфичней , прозрачней ,наблюдаемей и гигееничней
Код: plaintext
1.
2.
3.
4.
Exit Sub 
нежели 
GoTo End_SFP '===>>>===
End_SFP: End Sub
наличие оператора STOP является вопиющим нарушением RFC1329-17.9b
...
Рейтинг: 0 / 0
27.07.2004, 21:49:03
    #32624242
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Иван, Вы для кого этот "код" выложили и с какой целью?

Допустим, Вы ТАК ДУМАЕТЕ. Это же Был ВАШ вопрос. Может быть логично было ТАК СДЕЛАТЬ?
И уж по результату, отписать что-то подходящее случаю.

Сомнительно, чтобы Вам кто-то что-либо внятное сказал. Идея мертва без реализации. Является пустым вместилищем слов.

Иван, Вы Некрасова любите? Говорят он любил, "чтоб словам было тесно, а мыслям просторно".

Некоторые считают, что у РЕМЕСЛЕННИКОВ другой подход, когда "уже исчерпаны слова, а мысль осталась."

Догадываетесь ли Вы, что разница мировосприятия определяется ПРАКТИКОЙ (жизни)?
...
Рейтинг: 0 / 0
28.07.2004, 00:41:44
    #32624277
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
VictoshaДопустим, Вы ТАК ДУМАЕТЕ. Это же Был ВАШ вопрос. Может быть логично было ТАК СДЕЛАТЬ?
- дык, я ТАК и делаю ...

А цель вопроса была - попытаться получить что-либо БОЛЕЕ ИЗЯЩНОЕ. ОК?

Что Вы хотели донести до меня нравоучением, содержащемся далее в Вашем постере, - я не понял ...
...
Рейтинг: 0 / 0
28.07.2004, 02:38:48
    #32624310
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
автор
Что Вы хотели донести до меня нравоучением, содержащемся далее в Вашем постере, - я не понял ...

Показалось, что код Вы как Зевс выложили - родив из головы, не утруждаясь низкими вопросами реализации. Поскольку объявлено, что это не так - приношу извинения.

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

Раз Вы ТАК И ДЕЛАЕТЕ и оно РАБОТАЕТ - еще раз - СНИМАЮ ШЛЯПУ и ПРИНОШУ ИЗВИНЕНИЯ. Самые искренние.
Хочу пару вопросов на понимание задать.

на понимание:

1) А что Вам "неизящным" в "решении" представляется?

2) есть ли возможность термин "изящное решение" в более техническую плоскость перевести?
"Более изящное" - это какое
- то, которое работает
- более быстрое
- более короткое
- пригодное к переносу на другие формы без дублирования кода
-...

В чем выражается Ваше чувство "изящного"?


ЗЫ
Вот подзавели меня вчера на лифтературную плоскость. Второй день словами пилюваюсь. Видно это с радости - выписали меня.
При чтении об изящном выплюнулось.

Поэт - как альпинист.
На гору взгромоздясь, он флаг поставил:
- Я здесь был.
А программист?
...
Рейтинг: 0 / 0
28.07.2004, 02:41:56
    #32624311
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Млин, fuzzy logic.
Victosha, откуда выписали-то?
...
Рейтинг: 0 / 0
28.07.2004, 02:44:48
    #32624312
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
ТемныйМлин, fuzzy logic.
Victosha, откуда выписали-то?
это про что?
...
Рейтинг: 0 / 0
28.07.2004, 02:53:29
    #32624314
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Victosha...Второй день словами пилюваюсь. Видно это с радости - выписали меня.
...
Рейтинг: 0 / 0
28.07.2004, 10:08:06
    #32624548
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
VictoshaА показалось по глупости моей - не понял я (и сейчас не понимаю) какую роль вообще играет мышь в продемонстрированной идее, и почему собственно "R" перестает/начинает "лезть в поля". (если действительно перестает)- если мы находимся "в поле", то "R будет лезть в поле", КАК ЕМУ И ПОЛОЖЕНО. Form_KeyPress - это ведь СОБЫТИЕ ФОРМЫ, а не полей, - правда? Также, как и Form_MouseDown, и Form_MouseUp ...

Если мы нажали кнопку мыши НА ФОРМЕ, например, в квадратике, который в верхнем-левом углу грида, то - пока мы ее держим нажатой - нажимания клавиш будут восприниматься как "управлящие воздействия" ... Такая вот логика ... Это решение работает, и даже - готов с вами согласиться ;-) - оно относительно изящно, но ... нет предела стремлению к совершенству! ;-)
...
Рейтинг: 0 / 0
28.07.2004, 11:12:12
    #32624677
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Мда - на поле держим нажатой кнопку мыши и у нас обрабатывается R - все нормальный программы (если вы ещё не заметили) включают в обработчик функциональные клавиши (f1 etc) или комбинации.
По крайней мере, как пользователь, я бы офигел от такой логики:)
...
Рейтинг: 0 / 0
28.07.2004, 11:34:38
    #32624746
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Hummer все нормальный программы (если вы ещё не заметили) включают в обработчик функциональные клавиши (f1 etc) или комбинации. - все нормальные программы ... это, конечно, хорошо, только ... событие KeyPress
1. не реагирует на "функциональные клавиши (f1 etc)"
2. не позволяет сделать "отмену", чтобы символ нажатой клавиши не "пролезал" в активный элемент
...
Рейтинг: 0 / 0
28.07.2004, 11:42:37
    #32624779
витёкша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Иван FXS Hummer все нормальный программы (если вы ещё не заметили) включают в обработчик функциональные клавиши (f1 etc) или комбинации. - все нормальные программы ... это, конечно, хорошо, только ... событие KeyPress
1. не реагирует на "функциональные клавиши (f1 etc)"
2. не позволяет сделать "отмену", чтобы символ нажатой клавиши не "пролезал" в активный элемент


хм...
а КейДаун?
а там присвоить значение коду?
...
Рейтинг: 0 / 0
28.07.2004, 14:19:31
    #32625289
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
витёкшаа КейДаун?- признаю свою ошибку: КейДаун воспринимает функциональные клавиши (f1 etc) ...
витёкшаа там присвоить значение коду?- а этого не понял: какому коду "там присвоить значение"? И - какое значение?
...
Рейтинг: 0 / 0
28.07.2004, 15:37:44
    #32625571
витёкша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
автор- а этого не понял: какому коду "там присвоить значение"? И - какое значение?

значение нового кода, подменяющего переданный

Код: 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.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
 'в этои варианте (мною) не заводится глабальная переменная для хранения режима ввода
 

Static pMode As Boolean

  
   'хотим повесить смену режима на комбинацию Ctrl-F5
 
   'проверяем - не нажата ли комбинация клавиш смены режима
 

  If KeyCode = vbKeyF5 And Shift =  2  Then
    pMode = Not pMode
    Exit Sub
  End If
  
   'здесь проверяем режим ввода
 
  
  If pMode Then
   'если режим усановлен, подавляем трансляцию буквы R
 
    If KeyCode = Asc("R") Or KeyCode = Asc("r") Then
      KeyCode =  0   'подавили дальнейшую передачу буквы R
 
       'на замом деле здесь можно подменить на любой код, например на русскую Р
 
    End If
  End If
  
  
  
End Sub
...
Рейтинг: 0 / 0
28.07.2004, 16:46:10
    #32625794
Иван FXS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как "управлять" формой-в-режиме-таблицы?
Спасибо, это очень интересно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как "управлять" формой-в-режиме-таблицы? / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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