银行余额生成器,e4a代码分享,仅供学习UI

源码包下载: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 ' 每秒更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值