powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделение строки ... мне нуженн совет
20 сообщений из 45, страница 2 из 2
Выделение строки ... мне нуженн совет
    #32233539
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2вадя
>какие библиотеки ты используешь?

Компоненты то же стандартные - из сервпис-паков. Дело не в этом
Обычный ВинХР+СП1, правда ПК хороший - собирал на заказ :)
одной ОП - 384 Мб RIMM.

>это значит у меня какие-то настройки не те?

То же наврядли. Я над этим не изголяюсь

>всё равно есть задержка при переходе мышки с выделенного поля на другое

У меня задержки не было. Кстати, поле Товар так и должно оставаться белым? Не очень смотриться :(

>то работает по скорости нормально, но вызывет мерцание строк , что есть не гуд.

Убери мерцание с помощью Application.Echo. Да и быстрей экран перерисоваваться будет.
==
Дома еще раз посмотрю (хотя не обещаю).
У тебя главный тормоз: Private Sub Товар_Got/LastFocus() ?
===
Кстати, чем жал архив, что у тебя 200 с лишним кило получилрсь - rar'ом в в 85 кб упаковаеться :)
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32233715
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://hiprog.com/access/article.asp?idd=157
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32233729
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с конца

3 раром, видимо
mdb не был предварительно сжат файл на

делал так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Товар_GotFocus()
    On Error Resume Next
        Dim id As Long
'    Me.TA1 = id' комент

   id = Nz(Me.Товар,  0 )
        Col.Add id, CStr(id)
Application.Echo =false
Me.Recalc
Application.Echo= true
End Sub

Private Sub Товар_LostFocus()
    On Error Resume Next
        Dim id As Long
'    Me.TA1 = id' комент

   id = Nz(Me.Товар,  0 )
       Col.Remove CStr(id)

End Sub


эффект есь, но все равно экран мерцает, если сделать перемещение стрелками то будет очень противно.


тако вариант мне понравился лучше

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Sub Товар_GotFocus()
    On Error Resume Next
        Dim id As Long

   id = Nz(Me.Товар,  0 )
        Col.Add id, CStr(id)

Me.Painting = False
Me.Recalc
Me.Painting = True
End Sub

Private Sub Товар_LostFocus()
    On Error Resume Next
        Dim id As Long
'    Me.TA1 = id

   id = Nz(Me.Товар,  0 )
       Col.Remove CStr(id)

End Sub




. Кстати, поле Товар так и должно оставаться белым? Не очень смотриться :(

белый цвет(или другой) это цвет фона выбранной ячейки (поля).
если в строке несколько полей для редактирования, и при этотм еще и стобцы разного цвета - то это даже удобно
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32233733
Хам трамвайный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то что я тебе
послал это и
есть пример с
http://hiprog.com/access/article.asp?idd=157
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32234552
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это пример я смотрел.
к сожалению на моей машине (?) это работает аналогично тому варианту с сего здесь и началось.
проблема обозначается так:
при вычислении значений в поле (при автоматическом , т.е. меняем значение в одном поле , входящем в вкачестве входного параметра в функцию , вставленную в качестве данных для поля в ленточной форме -происходит вычисление значения для всех видимых на экране строк ) происходит задержка, которая проявляется в отставании выделения строки от получения фокуса новой строки(поля)
в моем топике от 12.08 в 11:16 (2 вариант) этой задержки нет.

чем обусловлена данная задержка для меня загадка.

еще замечу ,что данный вариант хорошо работает в mdb. для ADP вариант с
Me.Recalc не проходит, Me.Recalc почему-то вызывает пересчет всех данных с повторным запуском ХП формы, равносильно Requery или Refresh.
соответственно вопрос:
1) как адп заставить пересчитать поля не делая выполнения ХП
2)как избавиться от задержки
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32234847
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто может протестировать в ADP?

у меня чё-то не хочет работать. функ . который используется для вывода картинки, т.е. работает, но не выводит.
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32234883
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1) как адп заставить пересчитать поля не делая выполнения ХП

Команда синхронизации.

>2)как избавиться от задержки

Через 9 месяцев обычно оно само рассасываеться

==
а в по-шаговом режиме выполнял? где траблы - не нашел?
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32234931
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Viktor
дак мне нада не источник обновить. а перессчитать вычисляемые поля не выполняя обновление источника данных.
в пощаговом пробовал .....

для mdb можно применять смело работает красиво.

проблема ADP.
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32234969
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>дак мне нада не источник обновить. а перессчитать вычисляемые поля не выполняя обновление источника данных.

Обновил источник - обновил вычисляемые поля. Либо обновляй каждое вычисляемое поле ручками.

>в пощаговом пробовал .....

Ну и где тормоз?
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32235042
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте...
Вадя, снимай почту. Если чё не так, то направь меня... Вечером, надеюсь, будет время и смогу "посмотреть" еще разок :)
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32235094
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Senin Viktor
дык у меня поле которое надо обновить оно в области даных

с этим буду еще рабираться

в пошаговм тормозов не заметно все исполняется как и не в пошаговом.
задержка на обновление где-то в исполняющей системе акеса.
где-то заданы времена или еще что.

2НУФ-НУФ
вечером и посмотрю
вечером после ~19 MSK я в режиме "он лайн"
если есть возможность можно обсудить
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32235889
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2НУФ-НУФ
изменения мне понравились
но...
если

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Товар_GotFocus()
On Error Resume Next
  CurID = Nz(Me.Товар,  0 ) 'запомним текущий ID
'  Me.Recalc
  Me!Товар = Me!Товар 'эта строка сгенерирует перерисовку (вызов "Гришанов-метода")
  'только текущей строки (со всеми косяками, которые могут обнаружиться в многопользовательском приложении)
  DoCmd.RunCommand acCmdSaveRecord 'а эта зафиксирует изменения
End Sub


вместо
Me!Товар = Me!Товар
поставить
Me.Recalc

будет быстрее, но мерцает
вопрос: где задается время "автоматического " обновления?

при Me.Recalc происходит вычисление без пауз.
а при Me!Товар = Me!Товар каждая строка обновляется с какой-то паузой.

эта пауза и есть тормазззз - время "автоматического " обновления
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32235897
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function ppic(ByVal id As Long, VAR1 As Variant) As Variant
Dim dd As Long
  'проверяем, не текущая ли позиция курсора
  If CurID = id Then
    ppic = rst!pic 'здесь может быть одна картинка (цвет текущего курсора)
  Else
    'проверяем, не выбранная ли запись
    If InCol(id) Then
      ppic = rst!pic  'здесь может быть другая картинка (цвет выделения выбранных записей)
    Else
      ppic = Nothing
    End If
  End If
End Function



вот это функция в ADP не хочет работать выполняется правильно. если в дебугере посмотреть то ppic имеет кучу значений когда надо, а на фоме всегда пусто.

может что не правильно?
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32235898
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function ppic(ByVal id As Long, VAR1 As Variant) As Variant
Dim dd As Long
  'проверяем, не текущая ли позиция курсора
  If CurID = id Then
    ppic = rst!pic 'здесь может быть одна картинка (цвет текущего курсора)
  Else
    'проверяем, не выбранная ли запись
    If InCol(id) Then
      ppic = rst!pic  'здесь может быть другая картинка (цвет выделения выбранных записей)
    Else
      ppic = Nothing
    End If
  End If
End Function



вот это функция в ADP не хочет работать выполняется правильно. если в дебугере посмотреть то ppic имеет кучу значений когда надо, а на фоме всегда пусто.

может что не правильно?
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32236425
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
далее вопрос

что делает акес когда пишет в строке состояния "выполнение команды..."?

это и организует задержку.
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32237197
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте!
Вадя, лично у меня (А2000) именно так как я и сделал работает быстрей. Т.е. Recalc генерирует перерисовку всех строк, отображенных на экране (в контексте Гришанов-метода), а изменение значения внутри записи - только перерисовку данной текущей строки. Если менять значение свободного контрола, то у меня эффект такой же, как если бы я выполнил Recalc. Т.е. при изменении свободного контрола Акс не знает, какую конкретно запись "перерисовать" и перерисовывает весь экран. Кстати... Ты попробовал выделить десяток строк, а только затем покликать мышкой? Мой вариант так и показывает себя более тормознутым? Странно... Ну тогда не знаю...
Хотя, как ты понимаешь, технология, которая используется Гришанов-методом (фактически механизм поддержания актуальных данных на экране) не документирована и алгоритм ее выполнения может меняться от версии к версии (что, возможно, и наблюдается в нашем случае). Например, у меня акс хранит значения двух "экранов" и если я попеременно их открываю, то функция вообще не вызывается - значения вставляются аксом "по памяти" и всё.
По АДП ничего пока сказать не могу.
И вообще, лично я поэксперементировал некоторое время с данной технологией и пришел к выводу, что она пригодна только для использования во вспомогательном интерфейсе или вообще вне его. Нашел ее ОЧЕНЬ полезной (практически незаменимой) в некоторых ситуациях. Но, это уже ОФФТОП, да и не хочется, чего-та, давать риал-профи дополнительный повод для насмешек :)
Если получится "добить" идею, то не забудь поделиться :)
Удачев в онном!
Дсиданья... //пшёл писать "самоописания"...
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32238306
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаю биться как рыба об лед...

провел временные исследования
при передвижении спомощью стрелок
само предвижение

Код: plaintext
1.
2.
3.
4.
5.
            Case vbKeyDown
                KeyCode =  0 
                ti = timeGetTime
                Debug.Print  "1   " & ti
                Call MoveMe(False)
                Debug.Print  "10   " & timeGetTime - ti

между точками 1и 10 время ~100 милисекунд

дальше происходит обновление строк

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function ppic(ByVal id As Long, ss As Long) As Variant
Dim dd As Long
On Error GoTo s1
Debug.Print  "8   " & timeGetTime - ti

If InCol(id) Then
ppic = rst!pic
Else
ppic = Null
End If
Debug.Print  "9   " & timeGetTime - ti
Exit Function
s1:
MsgBox Err.Description
End Function



так вот между точками 10 и 8 ~ 360 милисекунд = 0.3 секунды!!!!
это Р3 740/fsb140/512M
что делает акес это время???

ppic -функ в поле данных для картинки
(идентификация через свободное поле )
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32238310
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Вадя

Что делает Акес? Работает :)
Было (и осталось :( ) у меня такое на одной дурной форме - между комадой Открытие формы и попадания в Form_Load терялись 1-2-3 секунды. Пи%дец полной - на форуме где-то лежит мой топик по этому поводу. Правда мне хотя бы удалось выйти из этого положения, открывая эту форму в момент загрузки и более не выгружая, как быть тебе? Не знаю, менять технологию, перейти на коммерческий грид либо еще что-нибудь. Юзера тормозов не простят...
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32238312
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Victor
если не влом тут
http://hiprog.com/access/article.asp?idd=157
проверь у себя есть ли такая задержка
мне кажется у меня каие-то установки сбились
не могут же люди предлагать с таким тормазом вариант...
...
Рейтинг: 0 / 0
Выделение строки ... мне нуженн совет
    #32238316
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На моей машине этот (http://am.rusimport.ru/MsAccess/f2.aspx?id=8326) вариант работает эффективнее (http://hiprog.com/access/article.asp?idd=157)
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выделение строки ... мне нуженн совет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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