pb中如何制作闪烁字?

pb中如何制作闪烁字?,第1张

可以使用数据库窗口来做。

1、设置timer interval 属性,调整闪烁的速度

2、添加静态文本,在字体颜色的表达式中编写代码。通过判断秒钟的基偶性来设置字体颜色。

本文介绍的方法和技巧都是笔者在实践中的一点积累 在此拿出来与大家一起分享 希望在阅读本文后会对您有所帮助或启发 文中如有任何不足之处还望同行们给予指教 在此 我先道声谢

一 实现运行窗口居中

众所周知 PowerBuilder 在以前的版本中提供了图形化的预览工具 可以很方便的在设计阶段实现窗口居中 但是 到了 似乎该项工具被取消了 也没有什么属性来设置 至少我没有找到 每当我们需要将窗口居中的时候只有一点一点地调整它的X Y值 这一点十分让人头痛 出于无奈 只好通过编程实现 我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中

要实现窗口的自动居中 我们可以用函数Move()来实现 但是 由于我们开发出来的应用程序往往会在不同的设置环境中运行 虽然一般情况下是由我们为用户配置好的 但我们总不能保证用户显示器的设置模式不会改变 所幸的是 PB为我们提供了环境对象Environment 该对象其实是一个系统结构 其中保存了PB应用程序的运行平台信息 例如 代码集 CPU类型等 其中当然会有我们需要的屏幕宽和高 为了得到该结构我们可以用函数GetEnvironment() 该函数的作用是得到关于 *** 作系统 处理器和屏幕的系统信息 具体用法如下

Environment my_systemInteger li_ScreenWidth li_ScreenHeightGetEnvironment(my_system)// 得到屏幕的总宽度和长度li_ScreenWidth = PixelsToUnits(my_system ScreenWidth XPixelsToUnits!)li_ScreenHeight = PixelsToUnits(my_system ScreenHeight XPixelsToUnits!)// 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位 因为像数通常不用于方形中 具体用法请参见函数手册 然后就可以用Move()来实现窗口居中

This Move((li_ScreenWidth this Width)/ &

(li_ScreenHeight this Height)/ )

二 数据窗口中实现字段的组合

你有没有碰到这样的情况 我们输入了客户的详细地址资料 包括省份 城市 地址 邮编 当我们要给客户们邮寄信函时需要将他们的省份 城市 地址 邮编连成在一起打印出来 然而 这些信息是分开存储的 即存在不同的字段 这时我们就可以利用PowerBuiler提供的在数据窗口添加计算域(Compute Field)来实现字符字段的组合显示

现在假设客户的省份 城市 地址 邮编分别存放在不同的字段中 它们是Province City Address PC 我们要得到 邮编+省份+城市+地址 的格式 如 ( )江苏省无锡市人民路 号 具体实现如下

在需要显示的位置添加一个计算域(Compute Field)

在它的表达式栏中写上 ( + PC + ) + Province + City + Address

单击确定完成

很容易是不是 需要提醒大家的是 计算域只能用来显示 不能对它进行修改 因为它没有TAB属性 不能得到焦点

三 数据窗口中的条码显示

在数据窗口中显示条码是不是很神秘?这对于没有接触过条码的人来说也许是这样 其实 它简单的不能再简单了 别忘了我们在写文稿时是如何使文稿看上去更有艺术化 没错我们会给它用上各种字体 问题不就解决了吗?条码也是种字体 只不过我们看不懂罢了 我们只要将需要用条码显示的字段的字体换上相应的条码字体就行了 比如 常用的 of 条码字库等 这些字体大多数是免费的 可以到网上去下载 然后安装就行了

四 数据窗口的自动刷新技术

在我们编写诸如像库存 销售等应用系统时 总希望程序能动态的自动刷新库存量或销售量 比如说每隔 秒刷新一次 要实现这样的功能只要我们利用数据窗口的时间间隔属性(Timer Interval) 当该值为 时数据窗口不进行刷新 如果要使数据窗口以每一秒钟的频率刷新的话 只要将该值设为 即 毫秒

我们还可以为应用程序添加闪烁报警的功能 就拿库存量来说吧 最常用的是当某货物的库存量达到一个最低库存量时程序应能自动判别 并用警告色显示 通常是红色 此时 我们只要在运用了上述的方法后再在需要闪烁的字段上 比如 库存量 在它的颜色属性中写上相应的语句 下面这段代码实现 当某一物品的库存量小于 的时候 程序以红色闪烁显示警告

lishixinzhi/Article/program/SQL/201311/16246

你用的库版本是多少的?如果是比3.5早的版本的话,是不会自动添加 初始化函数到启动文件的,所以你自己要打开启动文件看看main函数那里有没有添加。具体方法:

1、打开startup_stm32f10x_md.s,当然启动文件不尽相同,你的也许不是这个名字。

2、找到

Reset handler

Reset_HandlerPROC

EXPORT Reset_Handler [WEAK]

IMPORT __main

IMPORT SystemInit

LDR R0, =SystemInit

BLX R0

LDR R0, =__main

BX R0

ENDP

中间那个SystemInit不是所有的库函数版本都有的。所以你得在main函数开始的地方

int main(void)

{

SystemInit()//添加这个

..

..

..

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12006239.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存