Опять непонятка с Dlg. Когда происходит синхронизация?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
buniak_a_h
Posts: 4475
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 668 times
Contact:

Опять непонятка с Dlg. Когда происходит синхронизация?

Post by buniak_a_h »

Пытаюсь в ивенте найти кнопку по умолчанию, используя Dlg.GetValue(i,9) - для всех i эта функция возвращает 0. Это я что-то делаю не так, или ошибочка/недочёт? Вот скрипт, иллюстрирующий сказанное:

Как повторить:
скрипт «заточен» под диалог подтверждения переписывания R/O файлов. Соответственно:
  1. делаете в приёмной папке файл,
    2.выставляете ему флаг ReadOnly,
  2. делаете файл с таким же именем в исходной папке,
  3. пытаетесь скопировать его в приёмную папку (на вопрос о «переписывать ли» отвечаете "Да").
В отладочном выводе для всех i=1..14 Dlg.GetValue возвращает 0 (для i=10 должно быть 1! ). Это как-то победимо?
Last edited by buniak_a_h on Tue 13 Feb, 2024 13:24, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14236
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 80 times
Been thanked: 466 times
Contact:

Опять непонятка с Dlg. Когда происходит синхронизация?

Post by John Doe »

Macro API изначально не рассчитано на использование в ивенте, поэтому неудивительно.
Победить можно использованием апи плагинов.

Наверняка можно было бы допилить и Macro API, но...
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4475
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 240 times
Been thanked: 668 times
Contact:

Опять непонятка с Dlg. Когда происходит синхронизация?

Post by buniak_a_h »

John Doe, спасибо :(
Shmuel
Posts: 7001
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 42 times
Been thanked: 569 times

Опять непонятка с Dlg. Когда происходит синхронизация?

Post by Shmuel »

Сейчас попробовал повторить данный эксперимент.
Выяснилось, что Dlg.GetValue() в данном скрипте на самом деле возвращает параметры не диалога CopyReadOnlyId, а диалога, который под ним (у которого есть прогресс-бар). Это можно увидеть, если вместо Dlg.GetValue(i,9) вызывать Dlg.GetValue(i,10).
Post Reply

Return to “Нужна помощь”