Как отменить выбор ранее выбранной кнопки при повторном включении - PullRequest
1 голос
/ 08 апреля 2019

У меня есть опыт программирования старой школы, но я новичок в Ruby: для игры Hangman у меня есть кнопки A..Z, подключенные через FXDataTarget (установлен в -1, чтобы первая кнопка не выбиралась автоматически).Во время воспроизведения при нажатии каждой кнопки она отключается.Для инициализации новой игры я снова включаю каждую кнопкуВсе хорошо, за исключением того, что последняя кнопка из предыдущей игры подсвечивается и, таким образом, недоступна (пока не будет нажата другая кнопка).Я, очевидно, хотел бы, чтобы все кнопки были установлены во время загрузки.

Я попытался изменить атрибуты (buttonStyle и State);Я пробовал killFocus;Я даже пытался воссоздать FXDataTarget.Ни один из них не имеет никакого эффекта.

@letterSel =FXDataTarget.new(-1)

letterBtns = {}
("A".."Z").each_with_index do |ltr, x|
   letterBtns[x] = FXButton.new(matrix, ltr, opts:FRAME_RAISED, target:@letterSel, selector:FXDataTarget::ID_OPTION+(x))
end

@letterSel.connect(SEL_COMMAND) do |sender, sel, data|
   ltr = letterBtns[data].text
   letterBtns[data].disable
end

newGameBtn.connect(SEL_COMMAND) do |sender, sel, data|
   matrix.each_child do |btn|
      btn.enable
      # And here is where I try manipulating the button's appearance/functionality
   end
end

1 Ответ

0 голосов
/ 11 апреля 2019

ОК, я немного глуп, ответ был очевиден! Все, что мне нужно было сделать, это установить значение FXDataTarget обратно на -1: @ letterSel.value = -1

(я не знаю, как пометить это как разрешенное)

...