我们的文档,示例项目,教程,视频库和教科书将帮助您实现目标。
使用帮助
一、运行应用程序
您的用户界面布局现已完成,因此是时候尝试了。但在你走得更远之前,你应该先保存你的工作。
选择文件-保存以保存项目。
将项目命名为“TutorialDesktop”,然后单击“保存”。
现在您可以测试您的应用:
单击工具栏中的“运行”按钮以运行项目。
显示任务管理器时,您可以通过单击按钮与按钮进行交互,您可以键入TextField,然后您可以调整窗口大小以查看按钮自行重新定位。
从应用程序菜单中选择退出以返回到布局编辑器。
当然,任务管理器还没有做任何事情!为此你需要添加一些代码,这是你接下来要做的。
二、添加代码
1、添加按钮
“添加”按钮可将任务添加到列表中。您添加到按钮的代码需要获取在TaskField中键入的内容,并将其作为新行添加到列表中。
请按照以下步骤添加代码:
在窗口中,双击AddButton控件,标记为“添加”。将出现“添加事件处理程序”窗口。当用户单击PushButton时,将调用Action事件处理程序。这意味着您要将代码添加到Action事件处理程序,因此从“事件处理程序”列表中选择“操作”,然后单击“确定”。这将显示代码编辑器。另请注意Navigator更新以在AddButton控件下显示Action事件。
现在,您需要获取在“任务”字段中键入的任务。您可能认为只需引用字段名称TaskField即可完成任务。这很接近,但不是你想要的。你需要的是TaskField的属性。当您需要引用对象的属性时,可以使用对象的名称,后跟一个点,后跟属性的名称。换句话说,您使用以下语法:ObjectName.PropertyName。这是一种称为“点”符号的东西,通常用于面向对象的编程。在这种情况下,对象是TaskField,您想要的属性是Text(使用语言参考来查找TextFields可用的所有属性)。语法如下所示:
TaskField.Text
若要实际向Listbox添加行,请使用AddRow方法。您已经知道如何从步骤2的“任务”字段中获取文本。如前所述,对象可以具有属性。正如您现在看到的TaskList,对象也可以有方法。AddRow是Listboxes可用的众多方法之一,它将值添加到TaskList中的两列。第一列包含已完成的状态,因此最初设置为空白。第二列包含任务的名称。这是代码:
TaskList.AddRow("", TaskField.Text)
选择文件-保存以保存项目。
运行该应用程序以测试它。在任务字段中键入任务,然后单击“添加”按钮以查看它们出现在任务列表中。关闭浏览器选项卡或窗口以返回到代码编辑器
2、完整按钮
当用户单击“完成”按钮时,列表框中的所选任务应标记为已完成。通过在“已完成”列中显示复选标记(✓)来指示此情况。
请按照以下步骤添加代码:
在窗口中,双击标记为“完成”的CompleteButton控件。将出现“添加事件处理程序”窗口。当用户单击Button时,将调用其Action事件处理程序。这意味着您要将代码添加到Action事件处理程序,因此从“事件处理程序”列表中选择“操作”,然后单击“确定”。请注意,Navigator更新以在CompleteButton控件下显示Action事件,并显示代码编辑器。
要更改行,首先需要知道选择了哪一行。在列表框中,当前选定的行包含在ListIndex属性中。
要在Listbox的特定单元格中设置值,请使用Cell属性,指定行和列。此代码将复选标记字符放在当前所选行的第0列(已完成列)中:
TaskList.Cell(TaskList.ListIndex, 0) = "✓"
运行应用程序并添加一些示例任务。现在单击任务,然后单击“完成”按钮。选中标记将显示在“已完成”列中。从菜单中选择退出以返回代码编辑器。
3、删除按钮
“删除”按钮用于从列表中删除任务。您添加到按钮的代码需要确定列表中的选定行并将其从列表中删除。
请按照以下步骤添加代码:
在窗口中,双击DeleteButton控件,标记为“删除”。将出现“添加事件处理程序”窗口。在学习其他按钮时,您希望使用Action事件处理程序在用户单击按钮时运行代码。从Event Handler列表中选择Action,然后单击OK。注意Navigator更新以显示DeleteButton控件下面的Action事件,并显示代码编辑器。
由于将删除所选行,因此您再次要使用ListIndex属性。
使用Listbox方法RemoveRow从列表框中删除一行。您将RemoveRow行号作为参数传递给remove。所以你的代码看起来像这样:
TaskList.RemoveRow(TaskList.ListIndex)
选择文件-保存以保存项目。
运行应用程序并添加一些示例任务。现在单击任务列表中的任务,然后单击删除按钮。该任务将从列表中删除。
三、调试
查找错误是创建应用程序的一部分。当您的代码或应用程序执行意外操作时,通常会导致崩溃。虽然你的应用程序工作得很好,但还有一些需要解决的漏洞。你弄清楚问题是什么吗?
这是一个提示:如果您单击“完成”或“删除”按钮但未选择任务,会发生什么?试试吧。
运行应用程序并单击“完成”按钮,而不执行任何其他操作。您的应用程序将切换到调试器,并突出显示一行代码。您的代码生成了OutOfBoundsException,您现在处于调试器中。发生错误是因为您试图删除(或完成)不存在的行。如果在列表框中未选择任何行,则ListIndex属性返回-1。由于这不是Listbox中的有效行,因此Cell方法会引发OutOfBoundsException。
单击调试器工具栏中的“继续”按钮,以查看实际的错误消息。
单击对话框中的按钮退出应用程序以返回编辑器。
没有人想要错误的代码。幸运的是,很容易防止这种错误发生。实际上,您希望在尝试删除或完成任务之前确保选择了一行。
执行此操作的代码使用您已学习的内容。这是DeleteButton的Action事件处理程序的代码:
If TaskList.ListIndex >= 0 Then
TaskList.RemoveRow(TaskList.ListIndex)
End If
如果在任务列表中未选择任何行,则您之前已添加代码以防止“删除”和“完成”按钮执行任何操作。现在,您还可以在选择行时启用这些按钮,并在未选择任何行时禁用。这是通过Listbox的ListIndex属性完成的。
双击TaskList控件。将出现“添加事件处理程序”窗口。在这里,您将看到ListBox的事件处理程序列表。每当TaskList控件中的选择发生更改时,都会调用Changed事件。从Event Handler列表中选择Changed,然后单击OK。
添加此代码:
If TaskList.ListIndex >= 0 Then
TaskList.Cell(TaskList.ListIndex, 0) = "✓"
End If
选择文件保存以保存项目。
运行该应用程序以测试它。请注意,最初禁用“添加”按钮。但请尝试在“任务”字段中键入一些文本。“添加”按钮立即启用。如果从“任务”字段中删除文本,则按钮将再次被禁用。同样,当您单击“任务列表”中的某一行时,“删除”和“完成”按钮也会启用。
四、部署/构建
现在您已经创建了这个优秀的应用程序,您可能希望与世界分享它。为此,您需要构建一个独立的应用程序。Xojo允许您为MacOS,Windows和Linux(包括Raspberry Pi)创建桌面应用程序。您要做的第一件事是决定您希望构建哪些平台。您可以使用导航器的BUILD部分执行此操作。
首先,选中要构建的平台旁边的框。默认情况下,会选中“此计算机”,以便您至少为当前使用的平台创建构建。要查看特定于每个平台的设置,请单击平台名称。共享构建设置包含版本信息和其他设置。
您可以单击这些不同的构建设置来查看它们,但您无需更改任何内容即可构建此应用程序。
要构建应用程序,请单击工具栏中的“构建”按钮(或从菜单中选择“项目”→“构建应用程序”)。Xojo为每个选定的平台创建一个独立的应用程序。
在包含项目的文件夹中,您将看到一个名为“Builds - TaskManager.xojo_binary_project”的文件夹,该文件夹中将包含每个平台的构建文件夹。导航到当前平台的构建文件夹,然后双击应用程序文件以运行它。
下一步
恭喜,您已成功完成桌面教程,现在拥有功能齐全的应用程序。要继续学习Xojo,您应该继续阅读 用户指南,该指南完整地介绍了Xojo。您还需要参考 语言参考,其中包含语言元素,类和Xojo的其他详细信息。