源码包下载:http://www.lanzou.vip/i31cd907a

e4a完整UI源码部分:
' 银行余额生成器 - 完整E4A源码
' 界面风格仿照之前HTML的E4A风格:深色标题栏+分组框+立体按钮+交易记录
' 包含多个趣味功能:随机余额、富豪模式、平民模式、重置/切换账户、余额微调等
' 全局变量定义
Dim 当前余额 As Double
Dim 历史记录列表 作为 String
Dim 当前账户索引 As Int = 1
Dim 账户名称(4) As String = Array("张 三", "李 四", "王 五", "赵 六")
Dim 卡号(4) As String = Array("**** **** **** 8888", "**** **** **** 1234", "**** **** **** 5678", "**** **** **** 9999")
Dim 开户行(4) As String = Array("E4A模拟银行(总行)", "E4A科技分行", "E4A开发区支行", "E4A数码广场分行")
' 主窗口
事件 主窗口.创建完毕()
' 初始化界面
主窗口.标题 = "银行余额生成器 E4A"
主窗口.背景颜色 = &HFFD4D9E3
主窗口.显示软键盘 = 假
主窗口.全屏 = 假
主窗口.状态栏颜色 = &HFF2B3A4A
' 初始化控件位置和样式(所有尺寸按比例适配)
初始化布局()
' 设置默认余额
当前余额 = 12345.67
更新余额显示()
' 初始化历史记录
历史记录列表 = ""
添加历史记录("程序启动", 当前余额)
刷新历史记录显示()
结束 事件
' 定义控件变量(在布局编辑器中手动创建,这里用代码创建以便移植)
子 初始化布局()
' 使用相对布局,手动设置所有控件的位置和大小
' 由于E4A设计器不同,此处用代码创建核心控件(假设已经存在控件则直接设置属性)
' 建议先在可视化界面拖放控件,然后在这里设置属性,这里给出属性设置范例
' 标题栏模拟(实际上用面板+标签实现)
标题面板.背景颜色 = &HFF2B3A4A
标题面板.顶边 = 0
标题面板.左边 = 0
标题面板.宽度 = 100%x
标题面板.高度 = 15%y
标签标题.标题 = "📱 银行余额生成器"
标签标题.文本颜色 = 白色
标签标题.字体大小 = 20
标签标题.左边 = 20
标签标题.顶边 = 25
标签版本.标题 = "E4A v2.0"
标签版本.文本颜色 = &HFFFFC107
标签版本.字体大小 = 14
标签版本.顶边 = 28
标签版本.左边 = 标签标题.左边 + 标签标题.取文本宽度() + 20
标签日期.标题 = "2025-04-02 周三"
标签日期.文本颜色 = &HFFBDD0E6
标签日期.字体大小 = 12
标签日期.顶边 = 55
标签日期.左边 = 20
' 账户分组框
账户面板.背景颜色 = &HFFF5F7FA
账户面板.顶边 = 标题面板.顶边 + 标题面板.高度 + 10
账户面板.左边 = 20
账户面板.宽度 = 100%x - 40
账户面板.高度 = 120
账户面板.边框 = 2
账户面板.边框颜色 = &HFF7C8A9C
标签户名.标题 = "户名"
标签户名.顶边 = 10
标签户名.左边 = 15
标签户名.文本颜色 = &HFF1E2B3A
标签户名.字体大小 = 16
文本框户名.内容 = 账户名称(当前账户索引)
文本框户名.顶边 = 标签户名.顶边
文本框户名.左边 = 标签户名.左边 + 70
文本框户名.宽度 = 账户面板.宽度 - 100
文本框户名.高度 = 35
文本框户名.背景颜色 = &HFFE5ECF3
文本框户名.边框 = 1
文本框户名.边框颜色 = &HFF8F9EB0
文本框户名.只读 = 真
标签卡号.标题 = "卡号"
标签卡号.顶边 = 标签户名.顶边 + 40
标签卡号.左边 = 15
标签卡号.文本颜色 = &HFF1E2B3A
标签卡号.字体大小 = 16
文本框卡号.内容 = 卡号(当前账户索引)
文本框卡号.顶边 = 标签卡号.顶边
文本框卡号.左边 = 标签卡号.左边 + 70
文本框卡号.宽度 = 账户面板.宽度 - 100
文本框卡号.高度 = 35
文本框卡号.背景颜色 = &HFFE5ECF3
文本框卡号.边框 = 1
文本框卡号.边框颜色 = &HFF8F9EB0
文本框卡号.只读 = 真
' 余额显示大框
余额面板.背景颜色 = &HFFDDE3ED
余额面板.顶边 = 账户面板.顶边 + 账户面板.高度 + 15
余额面板.左边 = 20
余额面板.宽度 = 100%x - 40
余额面板.高度 = 120
余额面板.边框 = 3
余额面板.边框颜色 = &HFF2F3F51
标签余额标题.标题 = "💰 当前可用余额 (RMB)"
标签余额标题.文本颜色 = &HFF1F3447
标签余额标题.字体大小 = 16
标签余额标题.顶边 = 12
标签余额标题.左边 = 15
标签时间戳.标题 = "最新"
标签时间戳.文本颜色 = &HFF1F3447
标签时间戳.字体大小 = 14
标签时间戳.顶边 = 12
标签时间戳.左边 = 余额面板.宽度 - 80
标签余额数字.标题 = "12345.67"
标签余额数字.文本颜色 = &HFF0A1A2B
标签余额数字.字体大小 = 42
标签余额数字.字体 = 0 ' 默认字体,实际用等宽更好
标签余额数字.顶边 = 50
标签余额数字.右边对齐 = 真
标签余额数字.左边 = 20
标签余额数字.宽度 = 余额面板.宽度 - 40
' 按钮区域(4个按钮)
按钮随机.标题 = "🎲 随机余额"
按钮随机.顶边 = 余额面板.顶边 + 余额面板.高度 + 20
按钮随机.左边 = 20
按钮随机.宽度 = (100%x - 50) / 2
按钮随机.高度 = 50
按钮随机.背景颜色 = &HFFE0E5ED
按钮随机.边框 = 2
按钮随机.边框颜色 = &HFF3D4D5E
按钮随机.字体大小 = 18
按钮富豪.标题 = "💎 富豪模式"
按钮富豪.顶边 = 按钮随机.顶边
按钮富豪.左边 = 按钮随机.左边 + 按钮随机.宽度 + 10
按钮富豪.宽度 = 按钮随机.宽度
按钮富豪.高度 = 50
按钮富豪.背景颜色 = &HFFE0E5ED
按钮富豪.边框 = 2
按钮富豪.边框颜色 = &HFF3D4D5E
按钮富豪.字体大小 = 18
按钮平民.标题 = "🍞 平民模式"
按钮平民.顶边 = 按钮随机.顶边 + 按钮随机.高度 + 15
按钮平民.左边 = 20
按钮平民.宽度 = 按钮随机.宽度
按钮平民.高度 = 50
按钮平民.背景颜色 = &HFFE0E5ED
按钮平民.边框 = 2
按钮平民.边框颜色 = &HFF3D4D5E
按钮平民.字体大小 = 18
按钮重置.标题 = "🔄 切换账户"
按钮重置.顶边 = 按钮平民.顶边
按钮重置.左边 = 按钮平民.左边 + 按钮平民.宽度 + 10
按钮重置.宽度 = 按钮平民.宽度
按钮重置.高度 = 50
按钮重置.背景颜色 = &HFFE0E5ED
按钮重置.边框 = 2
按钮重置.边框颜色 = &HFF3D4D5E
按钮重置.字体大小 = 18
' 历史记录列表框
标签历史标题.标题 = "📋 最近交易 / 生成记录"
标签历史标题.顶边 = 按钮平民.顶边 + 按钮平民.高度 + 20
标签历史标题.左边 = 20
标签历史标题.字体大小 = 16
标签历史标题.文本颜色 = &HFF1F2B36
历史列表框.顶边 = 标签历史标题.顶边 + 30
历史列表框.左边 = 20
历史列表框.宽度 = 100%x - 40
历史列表框.高度 = 180
历史列表框.背景颜色 = &HFFF0F4FA
历史列表框.边框 = 2
历史列表框.边框颜色 = &HFF536473
历史列表框.显示边框 = 真
' 底部状态栏
状态面板.背景颜色 = &HFFCFD9E6
状态面板.顶边 = 历史列表框.顶边 + 历史列表框.高度 + 15
状态面板.左边 = 0
状态面板.宽度 = 100%x
状态面板.高度 = 40
标签状态.标题 = "● 在线 · 生成器待命"
标签状态.文本颜色 = &HFF0A1C2C
标签状态.字体大小 = 14
标签状态.顶边 = 10
标签状态.左边 = 20
标签底部版本.标题 = "⚙️ E4A 风格界面"
标签底部版本.文本颜色 = &HFF0A1C2C
标签底部版本.字体大小 = 14
标签底部版本.顶边 = 10
标签底部版本.左边 = 状态面板.宽度 - 130
结束 子
' 更新余额数字和时间戳
子 更新余额显示()
标签余额数字.标题 = 格式化金额(当前余额)
标签时间戳.标题 = "⏱️ " & 取当前时间()
结束 子
' 格式化金额为 #,###.00 格式
函数 格式化金额(金额 As Double) As String
返回 格式化(金额, "###,###,###,##0.00")
结束 函数
' 取当前时间字符串 HH:MM:SS
函数 取当前时间() As String
返回 时钟.时 & ":" & 时钟.分 & ":" & 时钟.秒
结束 函数
' 添加一条历史记录
子 添加历史记录(动作 As String, 余额数值 As Double)
历史记录列表 = 历史记录列表 & 动作 & " | " & 格式化金额(余额数值) & vbCrLf
如果 取文本行数(历史记录列表) > 8 Then
历史记录列表 = 取文本右边(历史记录列表, 从第几行开始=2) ' 简单移除第一行
End If
刷新历史记录显示()
结束 子
' 刷新历史列表框
子 刷新历史记录显示()
历史列表框.清空项目()
Dim 行数组() As String = 分割文本(历史记录列表, vbCrLf)
对于 i = 0 到 数组大小(行数组) - 1
如果 行数组(i) <> "" Then
历史列表框.添加项目(行数组(i))
结束 如果
结束 循环
结束 子
' 生成随机余额(范围min~max)
函数 生成随机余额(最小值 As Double, 最大值 As Double) As Double
Dim 随机值 As Double = 最小值 + (最大值 - 最小值) * Rnd()
返回 取整(随机值 * 100) / 100
结束 函数
' 按钮事件:随机余额 (100~50000)
事件 按钮随机.被单击()
当前余额 = 生成随机余额(100, 50000)
更新余额显示()
添加历史记录("随机余额", 当前余额)
结束 事件
' 按钮事件:富豪模式 (20万~2000万)
事件 按钮富豪.被单击()
当前余额 = 生成随机余额(200000, 20000000)
更新余额显示()
添加历史记录("💰 富豪模式", 当前余额)
结束 事件
' 按钮事件:平民模式 (0.01~8000)
事件 按钮平民.被单击()
当前余额 = 生成随机余额(0.01, 8000)
更新余额显示()
添加历史记录("🍞 平民模式", 当前余额)
结束 事件
' 按钮事件:重置/切换账户 (原重置按钮改为切换账户,更有趣)
事件 按钮重置.被单击()
' 切换到下一个账户
当前账户索引 = 当前账户索引 + 1
如果 当前账户索引 > 4 Then 当前账户索引 = 1
文本框户名.内容 = 账户名称(当前账户索引)
文本框卡号.内容 = 卡号(当前账户索引)
' 随机余额不变,但可以微调一下增加趣味
当前余额 = 当前余额 + (Rnd()*200 - 100) ' 微调
如果 当前余额 < 0 Then 当前余额 = 0.01
当前余额 = 取整(当前余额 * 100) / 100
更新余额显示()
添加历史记录("🔄 切换账户", 当前余额)
结束 事件
' 双击余额数字微调(彩蛋)
事件 标签余额数字.被双击()
Dim 微调量 As Double = (Rnd() * 400) - 200 ' -200 ~ +200
当前余额 = 当前余额 + 微调量
如果 当前余额 < 0 Then 当前余额 = 0.01
当前余额 = 取整(当前余额 * 100) / 100
更新余额显示()
添加历史记录("双击微调", 当前余额)
提示框显示("💰 余额微调: " & 格式化(微调量, "0.00"))
结束 事件
' 长按余额数字显示提示(也是彩蛋)
事件 标签余额数字.被长按()
提示框显示("双击余额数字可微调 ±200")
结束 事件
' 单击历史记录项可查看详情(E4A风格)
事件 历史列表框.被单击(项目索引 As Int)
Dim 选中项 As String = 历史列表框.获取项目(项目索引)
提示框显示("记录详情: " & 选中项)
结束 事件
' 窗口调整大小时重新布局(适配不同屏幕)
事件 主窗口.被改变尺寸()
' 简单重新设置一些关键位置(实际可调用初始化布局,但为避免闪烁可以只调整部分)
' 这里为了简洁,略。实际E4A项目中多用相对布局或锚点。
结束 事件
' 时钟(用于更新时间戳,可选)
事件 时钟1.周期事件()
标签时间戳.标题 = "⏱️ " & 取当前时间()
结束 事件
' 程序启动时开启时钟
时钟1.启用周期 = 真
时钟1.周期时间 = 1000 ' 每秒更新

3万+

被折叠的 条评论
为什么被折叠?



