自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaox的专栏

powerbuilder&python&uniapp

  • 博客(73)
  • 资源 (9)
  • 收藏
  • 关注

原创 python中 “__name__“的实际应用

在py文件中经常看到图中这句代码,初学者,特别是学习过其他语言,非系统的学习python基础语法的,看到它都会有些懵,它是做啥的?为什么要这样做?一、__name__的作用:__name__是python的一个内置类属性,它存储模块的名称。python的模块既可以被调用,也可以独立运行。而被调用时__name__存储的是py文件名(模块名称),独立运行时存储的是"__main__"。......

2019-06-01 13:09:55 47742 14

原创 PB powerbuilder 升级版字符串切割函数

为了适应更多的应用情境,对之前的版本做了返回值的自适应处理,源码如下/*as_reference_str: 切割参照的字符或字符串as_original_str: 目标字符串index: 返回参照索引----------------------------------------------------------------------调用示例:ls_ta...

2019-06-01 10:50:50 1737

原创 PB(powerbuilder)编写的图片布局助手

程序大量使用datawindow的各种操作,想深入学习dw的朋友,可以参考一下程序源码下载:程序开发要点:1、使用modify函数动态添加、修改、删除 dw控件,如图片、line、text等等。2、缩略图信息同步更新,使用表达式来做3、图片层次的切换动态添加dw控件,没有属性可以直接设置,是由添加的顺序决定层次。所以这里,用表格保存所以图片当前位置信息,层次调整时把控件...

2019-05-31 09:12:19 985

原创 pygame飞机大战开发实录12

上一 篇讲解了 showText EnemyPlane EnemyBullet HeroPlane四个类的修改,本篇继续讲解其他类的修改。一、Bullet玩家飞机子弹,和敌机子弹差不多,添加了花式子弹class Bullet(BaseBullet): #玩家飞机子弹 group = [] def __init__(self, pygame_screen,postion,m...

2019-05-28 23:34:50 186 4

原创 pygame飞机大战开发实录11

上一篇将主要的函数封装到了一个对象中,还把列表变量,替换成类属性,本篇着重讲解类的完善过程一、showText类:A,新增字体大小 B,调整显示文本更新方法,更改为:display方法中,更新显示文本,取消创建对象是传入显示文本。二、EnemyPlane类:`添加:ismove(True/False) postion 两个参数,这样创建普通敌机可以选择移动、不移动,固定刷新位置,随机...

2019-05-28 23:34:32 132

原创 pygame飞机大战开发实录10

通过前面9篇的讲解,已经可以运行一个完整的飞机大战游戏。不过还可以补充一些流程,细节也可以更加完善。首先观察之前的脚本,Main()函数586-696共110行,阅读起来还是比较费劲。经过完善,压缩到了26行,结构也非常清晰,而且本次修改,还添加了大量的流程,比如敌机BOSS花式子弹、更完善的状态显示、敌机刷新机制……。之前的音效、背景音乐默认音量太大了,先给PlaySound函数...

2019-05-28 23:10:54 180

原创 pygame飞机大战开发实录9

上一篇讲解了背景和音效的操作,本篇继续添加游戏暂停节目、游戏信息展示、游戏开始确认画面,以及敌机刷新控制。添加游戏暂停 #暂停游戏 exp9添加def Paused(screen): pygame.image.save(screen, Image_Pausedbg) #保存当前游戏图像作为背景 pygame.mixer.music.pause() #暂...

2019-05-21 11:43:04 182

原创 pygame飞机大战开发实录8

上一篇已经完成了游戏主体部分,本篇开始逐步完善游戏,首先是增加背景和音效。背景音乐背景音乐控制操作比较少:1、游戏开始循环播放2、游戏中点击"音乐开关"按钮停止播放,再次点击重新循环播放。我们直接写进 Main()函数exp8 添加pygame.mixer.music.load(Music_backgroud) #加载音频文件,背景音乐一般用mp3pygame.mixer.m...

2019-05-21 11:41:08 188

原创 pygame飞机大战开发实录7

上一篇讲解敌机、补给包、Boss的生成及控制。本篇就重点讲解碰撞检测原理和实现。碰撞检测原理图片在程序中都是矩形,我们看到的不规则形状,只是透明效果。所以碰撞实际就是两个矩形重叠。以图中5种重叠为例,重叠部分的矩形坐标都会满足minX = max(minX1, minX2)minY = max(minY1, minY2)maxX = min(maxX1, maxX2)max...

2019-05-21 11:39:12 180

原创 pygame飞机大战开发实录6

上一篇讲解玩家飞机控制方法,以及子弹越界判断。本篇继续讲解敌机、补给包、Boss的生成及控制。和玩家飞机一样,继承BasePlane创建几个敌机相关类。普通敌机EnemyPlane:move控制移动敌机BOSSBossPlane:血量大,不移动携带补给包的敌机 RewardPlane:类似 BOSS,多了一个self.reward属性,保存补给类型,飞机被摧毁可以通过这个属性,来刷新...

2019-05-21 11:37:29 140

原创 pygame飞机大战开发实录5

上一篇讲解了动态背景,并创建了飞机的基类。本篇继续讲解玩家飞机类的创建及其控制方法。class HeroPlane(BasePlane): def __init__(self, pygame_screen, bullets): BasePlane.__init__(self, pygame_screen, (210, 700), Image_HeroPlane, 5...

2019-05-21 11:35:24 159

原创 pygame飞机大战开发实录4

上一篇已经创建了基类,接下来继承基类创建动态背景、飞机的基础类。创建背景基类class BackGround(Base): def __init__(self, pygame_screen, image_name,type): Base.__init__(self,pygame_screen, (0, 0), image_name) self.mo...

2019-05-21 11:33:20 208

原创 pygame飞机大战开发实录3

通过之前的讲解,了解了一些相关原理和基本的控制方法。接下来就可以开始编写“飞机大战”了。开始之前,先说一说,为什么要以对象化编程,之前的例子里的脚本,都是以过程化编写,而实际开发则以对象化为主。这里把飞机移动的脚本,按对象化重新编写,右边是原来的脚本。乍一看,对象化好像要复杂一些。进一步观察脚本会发现:1、A和B部分是实际的流程控制,A要更易于阅读,逻辑也更清晰。2、C部分信息可复...

2019-05-20 22:40:00 177

原创 pygame飞机大战开发实录2

上一篇我们已经可以显示静态的图像,接下来就要让它们动起来。一、飞机的移动通过观察发现,飞机向上移动,只是图片的Y坐标发生了变化。那我们先尝试改变图片坐标。import pygame# 创建一个窗口screen = pygame.display.set_mode((480, 852), 0, 32)# 读取背景图片Image_background = pygame.image...

2019-05-20 22:36:28 211

原创 pygame飞机大战开发实录1

飞机大战,算是面向对象的程序语言入门必修程序,但大多教程只是点到为止,跳过了很多实际开发会遇到的问题,自然也错过了很多不错的经验。该系列文章针对python的pygame包,详细讲解了飞机大战的开发。目录提纲:一. 游戏动画基本原理,图片加载和显示的方法二. 控制图像的移动三. 对象化编程特点介绍,基类创建四. 背景类及飞机基类五. 玩家飞机类的创建及其控制方法六. 敌机、补给...

2019-05-20 22:33:18 428 5

原创 PB powerbuilder 仿EXCEL筛选V3 for PB12.6

之前做的一个仿EXCEL筛选在PB12下做了升级更新内容:1、整体界面扁平化,自定义时间也进行了扁平化设计2、对DW表格自动格式化,DW设计过程无需调整字段和标题字体高度、字体、高度、颜色等等属性, 格式化细节,详见gf_format_grid全局函数。也支持建表源码导出3、新增鼠标和CTRL、SHIFT组合键的多选操作,4、主要的过滤组件算法重做,效率及拓展能力更强...

2019-05-03 13:03:34 1040 24

原创 windows远程访问mysql报错 Can't connect to MySQL server on '' (10061)

情景如题,主要原因有两个方面:1、登录用户没有权限2、连接配置不允许外部IP访问针对上述两个方面进行检查:一、添加修改登录用户权限1、如图,root用户是没有外部IP访问权限的,2、使用下列SQL语句,给用户添加权限二、检查配置文件1、配置文件具体路径,不同版本可能有些出入,可以自行查找一下这里以unbutu+mysql5.7版本为例2、找到:b...

2019-03-28 22:02:17 601

原创 PowerBuilder使用python程序导入excel文件

应用场景:PB主要应用于数据库管理系统,经常需要数据的导入导出的操作,而PB提供的importfile函数,仅支持Text! 、CSV!、XML!、DBase2!、DBase3!的文格式。没错,不支持excel文件。当然可以通过DDE,OLE等方法对excel进行操作,不过确实不够友好。本文介绍python编写一个“excel文件另存为带制表符的txt的小程序’,并在PB中调用它。源码...

2019-03-09 10:30:00 2211

原创 PowerBuilder编程环境的一些设置三:添加系统工具按钮

程序开发过程中,会频繁用的PB系统的一些快捷工具按钮。同样,自定义的控件也经常使用。使用的时候:需要打开PBL库,找到需要的user object,拖动到设计界面。如果是一些使用频率较高的自定义的控件,操作就显得比较繁琐,这样就可以添加到系统工具按钮中。一、把鼠标移动到想添加的按钮组上面,鼠标右键弹出菜单选择 "customize.."二、找一个要显示的按钮图标,拖动到...

2019-02-28 08:48:56 773

原创 PowerBuilder编程环境的一些设置二:设计视窗调整

 一、PB程序设计过程中,设计视窗的tab窗口很多,需要频繁的切换,或者关闭一些。 这样时不时会发现,少了一些窗口,那么可以通过菜单:view > layouts > default ,来恢复默认设计视窗布局。二、layouts菜单中还有一个manage按钮,可以将视窗按照自己的习惯布局,然后保存,就像图中的“style1”,需要的时候,可以像 default一样快速恢复。...

2019-02-17 12:40:53 1523

原创 PowerBuilder编程环境的一些设置一:脚本字体

编程界面的合理调整,是会让平常的编写要舒服很多的,以下部分内容主要针对新手,老手已经形成自己的习惯。一、脚本字体设置。 1、字体的选择       脚本字体会用到等宽字体,就是每个字符的宽度,如图1,"l"和“o”的宽度是不一样的,那么脚本看上去就不那么整齐,面对大量的脚本确实不太舒服。这里推荐图2的Consolas字体。 图1  2、脚本字体颜色及背景色     ...

2019-02-17 12:20:57 2569 1

原创 nginx代理连接mssql

最近有个用户,无法连接我的mssql服务器,其他用户正常,暂时没有找到原因,为了保证该用户可以先使用系统,决定先使用nginx设置一个代理。即,A用户无法连接C服务器,B可以连接C服务器。以下内容:B设置nginx反向代理,A通过B来访问C服务器。B服务器为ubuntu安装好nginx,编辑nginx安装目录下的nginx.conf文件添加内容这样A用户就可以通过B服务...

2019-01-12 14:54:52 2143 1

原创 PB powerbuilder中使用datastore替代游标

 先看一个实验,相同的效果,游标和datastore的处理效率对比,datastore有明显优势。A:游标方式: B:datastore方式  两段代码都是从表格 base_area中抓取area_name字段内容,相比之下,datastore方式的脚本更易于阅读。另外,datastore还可以完成一些更复杂的逻辑,以及更自由的数据读取,所以PB开发中是可以使用da...

2018-11-06 13:20:35 1202 2

原创 PB powerbuilder程序设计中的尺度单位PBU

在PowerBuilder中除了DataWindow画扳网格尺寸(可以选择像素、厘米等等),其他都是用PowerBuilder单位(PBU)计量的。而这个PBU单位是有区分X、Y坐标的,也就是垂直方向和水平方向。比如我们添加一个矩形,满心欢喜的输入width:500,height:500,却发现它不是一个正方形那么在程序设计中,需要参照不同方向的宽度来控制尺度,就要用到函数UnitsT...

2018-10-22 13:16:13 2063

原创 PB powerbuilder 仿EXCEL筛选V2

仿excel的表格筛选方式,效果如下设计的关键思路:一、 弹出框,下拉列表的生成1、使用OpenUserObjectWithParm,将DW传送给封装的对象2、通过RowsCopy,将Primary!和filter!两个区的信息合并,实现历史选中的记录恢复3、通过DESTROY COLUMN ,将非选中字段的信息删除,构造出列表选项二、filter参数的拼...

2018-10-20 16:19:47 1504

原创 PB powerbuilder 数据库窗口的 scrolltorow 无效的说明

PB 数据库窗口设计时,会常用到scrolltorow ,即跳转到指定的行。而经常有人抱怨,该函数无效。其罪魁祸首就是setrow这个函数,如果在scrolltorow函数前面使用了setrow,并且参数row值相同,那么scrolltorow是看不到效果的。因为当scrolltorow跳转的行是当前行,数据库窗口不会scroll,而setrow恰好是把指定行设置为当前行。另外,scr...

2018-10-08 21:13:08 3743

原创 PB powerbuilder 数据库窗口DW中下拉窗口、子数据窗口响应事件

数据库窗口中相应鼠标点击、键盘移动等操作都有全面的事件进行支持,但是下拉数据库窗口的相关事件就不太明朗。比如图中,下拉窗口“新增用途”如何相应鼠标点击操作,很多PB新手可能就一时找不到头绪了。  数据库窗口DW中下拉窗口、子数据窗口响应事件的方法。1、需要使用到自定义事件“pbm_command”2、事件脚本如下:string ls_objectinteger ii_...

2018-10-08 20:58:55 4338

原创 PB powerbuilder 去除response类型窗口的3D边框

PB程序开发中,response类型窗口的边框默认是无法取消的。使用MFC的SetWindowLongA函数去除response类型窗口的3D边框函数声明: Function ULong SetWindowLongA(Long hwnd, Long nIndex, Long dwNewLong) Library 'user32.dll'Function ULong GetWin...

2018-10-08 15:53:45 1322

原创 PB powerbuilder 类浏览器的窗口切换

效果如果图,即类似浏览器的页面切换,来切换窗口这里使用动态的DW来实现切换的控制。主要思路如下:1、创建一个空白的DW,动态添加列,比如是uo_select主要的字段保存窗口编号,名称,显示标题,关闭按钮保存 选择,移过的按钮不同状态2、然后创建一个标准的child窗口,添加几个关键的事件A、open 事件,窗口打开 触发uo_select 的对应打开新窗口...

2018-10-08 15:37:07 2319

原创 pb powerbuilder 把特定分割符字符串转换成字符串列表

进阶版链接:https://blog.csdn.net/wosind/article/details/90726769程序开发中会需要把一些特定分割符字符串,转换乘字符串列表。比如A|B|CD转换成ABCD1、创建函数2、函数主体string ls_list[] //接收返回的字符串列表string ls_tempinteger i = 1long...

2018-07-23 16:23:22 3039

原创 PB powerbuilder 的rand函数生成随机数的机制

PB每次调用rand函数获取的随机数,实际上是从固定的数组(即随机数种子)中读取的,而非真正意义上的随机数。比如函数rand(100),在程序中:第一次调用,函数返回42。第二次调用,函数返回68。第三次调用,函数返回35。...也就是:42、68、35、1、70、25、79、59...这样一个固定的数组。程序关闭后重新运行,会按照相同的顺序返回相同的值。获取真正意...

2018-07-23 14:56:12 5528

原创 PB powerbuiler通过 edit source 方式直接修改数据库窗口风格

powerbuiler 的数据库窗口设计,DW风格只能在新增的时候进行选择,无法在设计过程中进行切换。比如一个grid风格的DW,各元素已经调整完成,只是想切换到tabular风格,那么正常情况只能重新创建一个DW。通过"edit source"方式编辑源码是可以直接切换DW风格1、右键DW对象,打开“edit source”设计窗口2、找到processing属性,设置为0和1可...

2018-07-23 14:30:48 2259

原创 pb powerbuiler 无标题栏窗口的移动

在使用 response! 或 popup! 窗口 的时候,经常会希望关闭标题栏(例图1),但关闭了标题栏,这个窗口就无法移动了。 (图1)让无标题栏窗口的移动的设置方法:1、在窗口中新建一个自定义事件(例图2,事件名 ue_cnhit),event id 选择pbm_cnhittest2、添加脚本: return 2 3、鼠标点击窗口没有控件的位置,长按左键,就可以移动窗...

2018-07-23 11:59:22 1422 3

【pb9源码】powerbuilder 从pbl中批量导出源码文件.srd/.srw/.srf 等等

pb9环境下的源代码。 主要功能: 1、从pbl中批量导出源码文件,.srd/.srw/.srf 等等 2、导出文件以pbl名称作为文件夹,组织导出文件。 3、支持所有对象导出。

2020-09-14

pb9从书配套源码.txt

清华大学出版社2004出版的powerbuilder9系列从书,随书光盘。 大量的小实例,对于初学者还是非常有用的。 《PowerBuilder 9.0 案例开发篇》配书光盘使用说明 1.概述 作 者:于洪文 蔡毅 杨鸿雁 发布时间:2004年4月30日 光盘源程序开发环境:PowerBuilder 9.0 Build 5507、Windows 2000 Pro SP4、IE 6.0 版权声明:本光盘内容著作权为作者所有;作者授权清华大学出版社独家出版该光盘;清华大学出版社享有该光盘的专有出版权。编辑部电话:010-62791977-220 2.光盘内容简介与使用方法 2.1 第6章 图书馆管理系统 源码所在目录:chap6 使用方法: Chap6文件夹下有两个文件夹Tsgl_client(图书管理客户端)和Tsgl_server(图书管理服务器端),用的是同一个ASA8数据库,数据库文件在Tsgl_server中。利用PowerBuilder 9.0打开相应文件夹下的PBW文件,然后按照应用程序入口配置数据源连接即可。ODBC ASA8数据源配置清单如下: 数据源名(data source name)为 tsgl 数据库名(database name)为libmis.db 数据库文件(database file)路径选择为…chap6\Tsgl_server\libmis.db文件 数据库登录用户名(user id)为dba 数据库登录口令(password)为sql 2.2 第7章 家庭理财系统 源码所在目录:chap7 使用方法: 其中有一个Moneyhome文件夹,利用PowerBuilder 9.0打开Moneyhome下的PBW文件即可,然后按照应用程序入口配置数据源即可,也可以参考书中的讲解。数据源配置成功后运行案例程序即可。ODBC ASA8数据源配置清单如下: 数据源名(data source name)为 moneyhome 数据库名(database name)为moneyhome 数据库文件(database file)路径选择为…chap7\Moneyhome\moneyhome.db文件 数据库登录用户名(user id)为dba 数据库登录口令(password)为sql 2.3 第8章 先进人事管理系统 源码所在目录:chap8 使用方法: 其中,person是先进人事管理系统。采取的数据库是PB自带的ASA8。ODBC数据源配置如下: 数据源名(data source name)为 newlaomo 数据库名(database name)为newlaomo 数据库文件(database file)路径选择为…chap8\person\newlaomo.db文件 数据库登录用户名(user id)为dba 数据库登录口令(password)为sql

2019-06-14

powerbuilder12(PB)仿excel筛选第3版

2.0版本为PB9环境编写,3.0 适用于PB12 ------------------------------------------------------------------------------------------- 3.0新增特性: 1、整体界面扁平化,自定义时间也进行了扁平化设计 2、对DW表格自动格式化,DW设计过程无需调整字段和标题字体高度、字体、高度、颜色等等属性, 格式化细节,详见gf_format_grid全局函数。也支持建表源码导出 3、新增鼠标和CTRL、SHIFT组合键的多选操作, 4、主要的过滤组件算法重做,效率及拓展能力更强

2019-05-03

powerbuilder使用python程序导入excel文件

python编写的excel文件转带制表符的txt文本。 在PB中调用,python程序执行结束会自动通知PB应用,收到通知即可使用importfile导入数据库。

2019-03-09

powerbuilder9(PB)仿EXCEL筛选第二版

对第一版做了内容的升级,以及若干BUG修正,powerbuilder9.0环境的仿excel筛选,已封装对象。 仿excel 点击列标题,进行自定义筛选,支持下拉列表、时间快捷选择、模糊筛选输入、排序等。

2018-10-20

powerbuilder9 扁平化界面开发源码

原创powerbuilder开发小工具,扁平化窗口设计(包括按钮、当行文本编辑、滚动条),使用PB9开发,包含源码。

2018-10-19

powerbuilder9(PB)仿excel筛选

powerbuilder9.0环境的仿excel筛选,已封装对象。 仿excel 点击列标题,进行自定义筛选,支持下拉列表、时间快捷选择、模糊筛选输入、排序等。

2018-07-25

2018全国行政区划(含乡镇,excel文件,数据库表格级联格式,记录数47497)

数据是从数据库导出到excel文件,包含级联结构,包含乡镇一级数据,记录总数47497,部分数据如下 230205001 新兴街道 230205 4 1 230205002 新建街道 230205 4 1 230205005 林机街道 230205 4 1 230205006 道北街道 230205 4 1 230205100 水师营满族镇 230205 4 1 230205102 三间房镇 230205 4 1 230206001 红岸街道 230206 4 1 230206003 沿江街道 230206 4 1 230206004 电力街道 230206 4 1 230206005 幸福街道 230206 4 1 230206006 红宝石街道 230206 4 1 230206007 北兴街道 230206 4 1 230206008 铁北街道 230206 4 1 230206200 长青乡 230206 4 1 230206202 杜尔门沁达翰尔族乡 230206 4 1 230207001 东安街道 230207 4 1 230207002 富强街道 230207 4 1 230207003 跃进街道 230207 4 1 230207004 繁荣街道 230207 4 1 230207198 碾子山区直辖地域 230207 4 1 230208001 梅里斯街道 230208 4 1 230208101 雅尔塞镇 230208 4 1 230208102 卧牛吐镇 230208 4 1 230208103 达呼店镇 230208 4 1

2018-07-22

PowerBuilder9.0快速入门篇,随书CD

PowerBuilder9.0快速入门篇,随书CD 一、运行环境 操作系统:Windows 98/NT/2000/XP 硬盘空间:剩余100MB以上 系统内存:64MB以上 开发工具:PowerBuilder 9.0 二、使用方法 1. 把本光盘的内容复制到硬盘的任意目录下。 2. 启动PowerBuilder 9.0。 3. 单击Open按钮,打开某个实例所在文件夹内的工作区文件(*.pbw)。 4. 如果该例程要求配置ODBC数据源,请在DB Profile画板中配置。 5. 单击Run按钮运行例程。

2018-02-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除