golang开发的二级保密学习小软件

admin 2023年1月10日01:51:21评论80 views字数 2440阅读8分8秒阅读模式

通过golang+vcl组合进行开发使用Lazarus IDE界面窗口绘画,通过go做业务逻辑开发。

关注公众账号,在公众账号输入关键词"bmstudy"自动回复下载地址连接。连接中含有源代码及windows下的可执行文件包

01
安装Lazarus IDE及res2go插件包

https://gitee.com/ying32/govcl/wikis

关注Lazarus IDE和res2go插件安装章节,安装lazarus软件


02
实战开发过程

保密学习背诵试题都是纸质的,对于我这种什么都喜欢在电脑上学习的人来说感觉不习惯,基于此开发一个保密学习的小软件。能够按照题型、试卷类型分组学习,同时学习时能够隐藏、显示答案对照背诵结果


窗口界面开发

打开Lazarus软件,并拖拽组件,构建窗口

golang开发的二级保密学习小软件

两个窗口,一个主窗口,选择题型或试卷,点击后进入试题学习窗口,能够查看所有类型的试题。上一题、下一题、查看隐藏答案、重新选题,回到主窗口。

调整窗口中各组件的布局,设置好组件的属性


设置插件导出转化的go代码

project菜单-> Project Options设置项目,设置res2go

golang开发的二级保密学习小软件

  • Enabled Convert确定转化go代码勾选

  • Output Path设置go项目代码地址  

  • Package Name 包名称 

  • OutputLang选择go语言 

  • 勾选Use Tempdll

  • Build mode 选择可执行exe文件  

  • GOROOT 和环境变量设置的GOROOT相同


设置完上面内容选择全部保存,点击运行编译,自动生成go代码,生成代码如下:

golang开发的二级保密学习小软件


自动生成main.go入口文件、syso文件及gui下的窗口go代码

如果没有syso文件执行文件拷贝其它人机器上不能运行,自动生成syso文件避免自己写复杂的main.manifest文件。

主要代码说明

通过网盘下载后,找到【源代码】目录,在自己的go项目地址src目录下创建bm目录,拷贝源代码到bm目录运行


主窗口组件绑定事件

func (f *TMainForm) OnFormCreate(sender vcl.IObject) {  f.FillBtn.SetOnClick(f.OnFillBtnClick)  f.ShortAnswerBtn.SetOnClick(f.OnShortAnswerBtnClick)  f.QuestionAnswerBtn.SetOnClick(f.OnQuestionAnswerBtnClick)  f.ExamBaseBtn.SetOnClick(f.OnExamBaseBtnClick)  f.ExamCertBtn.SetOnClick(f.OnExamCertBtnClick)  f.ExamStandBtn.SetOnClick(f.OnExamStandBtnClick)  f.ExamUserBtn.SetOnClick(f.OnExamUserBtnClick)}


学习窗口组件属性设置和事件绑定

func (f *TStudyForm) OnFormCreate(sender vcl.IObject) {  f.PrevBtn.SetEnabled(false)  f.NextBtn.SetEnabled(true)  f.ViewAnswerBtn.SetChecked(true)  f.ViewAnswerBtn.SetCaption(VIEW_HIDE_TITLE)  f.CurrentLblVal.SetCaption("1")
f.SetOnClose(f.OnFormClose) f.ResetBtn.SetOnClick(f.OnResetBtnClick) f.PrevBtn.SetOnClick(f.OnPrevBtnClick) f.NextBtn.SetOnClick(f.OnNextBtnClick) f.ViewAnswerBtn.SetOnChange(f.OnViewAnswerBtnChange)
f.SetOnShow(f.OnFormShow)}


入口文件main.go

package main
import ( "bm/gui" "github.com/ying32/govcl/vcl")
func main() { defer func() { err := recover() if err != nil { vcl.ShowMessage(err.(error).Error()) } }()
vcl.Application.SetScaled(true) vcl.Application.SetTitle("保密学习") vcl.Application.Initialize() vcl.Application.SetMainFormOnTaskBar(true) vcl.Application.CreateForm(&gui.MainForm) vcl.Application.CreateForm(&gui.StudyForm) gui.MainForm.SetDoubleBuffered(true) vcl.Application.Run()}


运行或调试

// 出现控制台能够查看标准输出作为调试使用go build  -buildmode=exe -tags="tempdll" -o "debug.exe"// 隐藏控制,执行运行窗口程序go build  -buildmode=exe -ldflags="-H windowsgui" -tags="tempdll" -o "保密学习.exe"


03
演示效果

通过网盘下载后,找到【执行文件】目录,双击【保密学习.exe】文件

golang开发的二级保密学习小软件


打开保密学习软件

golang开发的二级保密学习小软件

选择不同题型,不同试卷类型,点击按钮,进入学习窗口自动隐藏主窗口

golang开发的二级保密学习小软件

学习窗口,现在该类型题目总数,当前学习的题数、题型等信息。同时点击上一题、下一题查看该组的其它题。点击【隐藏答案】,隐藏下面答案,按钮变成【查看答案】。点击【重新选题】回到主窗口,重新选择。

原文始发于微信公众号(数据安全治理技术):golang开发的二级保密学习小软件

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月10日01:51:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   golang开发的二级保密学习小软件https://cn-sec.com/archives/1506058.html

发表评论

匿名网友 填写信息