2016-12-27 6 views

ответ

1

Этот фрагмент кода делает «ключ1» вашего фрейма чувствительным. Чтобы быть чувствительным, ему нужно всплывать ...

Итак, почему именно этот блок кода выполняется? Вы говорите: «Я не знаю, почему этот код вызывается снова». Ни один другой, потому что вы разделили такой крошечный бит общего кода. По-видимому, поток контроля ведет вас через этот блок, поэтому вы должны работать над пониманием, почему это так. Вы можете попробовать использовать отладчик для выполнения кода, или вы можете вставить некоторые устаревшие инструкции MESSAGE, чтобы добраться до сути.

Если вы хотите избавиться от проблемы, вы можете перенести этот бит кода в условную логику. Определить и установить переменную, которая определяет желаемое состояние кадра F-отбора и использовать, чтобы контролировать логику чувствительности:

define variable f-shouldBeVisible as logical no-undo. 

if .... then 
    f-shouldBeVisible = yes. 
else 
    f-shouldBeVisible = no. 

... 

else 
    do: 
    if f-shouldBeVisible then 
     assign ll-lgst-key1:SENSITIVE in frame f-selection = TRUE 
      ll-lgst-key2:SENSITIVE in frame f-selection = FALSE 
     . 
    end. 

Конечно, это выглядит вроде глупо - но это просто пример с грубо над упрощенная логика.

OTOH, если вы знаете достаточно, чтобы установить переменную, вы должны выяснить, почему выполняется ветвь ELSE. Но, возможно, это полезный первый шаг.

+0

Спасибо за ответ, я поделился небольшим блоком кода, потому что это действительно большой проект (с работы), и все файлы подключены, также есть так много включений и других типов файлов. Также мы используем Ultra редактировать, чтобы разработать и отредактировать код. Эта часть кода также является частью строковой переменной, которую я отправляю в файл. Я думал о добавлении if-else, но коды огромны, поэтому я не могу быть уверен в том, что я буду влиять или где именно добавить его .. Спасибо в любом случае! – hbc