インストール ウィザードをセットアップしようとしていますが、これには 3 つの手順しかありません。ただし、パネル間を移動することに行き詰まっています。setCurrentPanel を使用して現在のパネルを変更できることは理解していますが、パネルを 0 から 1 に移動しようとすると、IndexOutOfBound が発生します。私はインターネットのいたるところにいましたが、FXWizard の例はどこにも見つかりません。ドキュメントだけです。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです.
class InstallationWizard < FXWizard
def initialize(app)
super(app, "Install Sync", nil, :width => 500, :height => 500)
if self.currentPanel == 0
hFrame1 = FXHorizontalFrame.new(self.getContainer())
servLabel = FXLabel.new(hFrame1, "Server IP:")
servTextField = FXTextField.new(hFrame1, 10)
servButton = FXButton.new(hFrame1, "Connect!")
servButton.connect(SEL_COMMAND) do
serv = servTextField.text
servTextField.text = nil
getApp().reg().writeStringEntry("USER_DATA", "server", serv)
message = FXMessageBox.information(self, MBOX_OK, "Sync", "Server: #{serv} on #{Mac.addr}")
end
elsif self.currentPanel == 1
hFrame1 = FXHorizontalFrame.new(self.getContainer())
usrLabel = FXLabel.new(hFrame1, "Username:")
usrTextField = FXTextField.new(hFrame1, 4)
pwdLabel = FXLabel.new(hFrame1, "Password:")
pwdTextField = FXTextField.new(hFrame1, 4)
pwdTextField.textStyle = FXTextField::TEXTFIELD_PASSWD
pwdTextField.tipText = "Enter your password!"
vFrame1 = FXVerticalFrame.new(self.getContainer())
hFrame3 = FXHorizontalFrame.new(vFrame1)
loginButton = FXButton.new(hFrame3, "Login!")
loginButton.connect(SEL_COMMAND) do
username = usrTextField.text
password = pwdTextField.text
usrTextField.text = nil
pwdTextField.text = nil
getApp().reg().writeStringEntry("USER_DATA", "username", username)
getApp().reg().writeStringEntry("USER_DATA", "password", password)
message = FXMessageBox.information(self, MBOX_OK, "Sync", "Username: #{username}, Password: #{password}")
end
elsif self.currentPanel == 2
hFrame2 = FXHorizontalFrame.new(self.getContainer())
showButton = FXButton.new(hFrame2, "Show!")
showButton.connect(SEL_COMMAND) do
puts getApp().reg().readStringEntry("USER_SELECTION", "home")
puts getApp().reg().readStringEntry("USER_DATA", "username")
puts getApp().reg().readStringEntry("USER_DATA", "password")
puts getApp().reg().readStringEntry("USER_DATA", "server")
end
end
self.advanceButton.connect(SEL_COMMAND) do
self.currentPanel = self.currentPanel + 1
end
self.cancelButton.connect(SEL_COMMAND) do
getApp().exit(0)
end
self.finishButton.connect(SEL_COMMAND) do
getApp().exit(0)
end
end
def create
super
show(PLACEMENT_SCREEN)
end
end