- 博客(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 等等
2020-09-14
pb9从书配套源码.txt
2019-06-14
powerbuilder12(PB)仿excel筛选第3版
2019-05-03
powerbuilder使用python程序导入excel文件
2019-03-09
powerbuilder9(PB)仿EXCEL筛选第二版
2018-10-20
powerbuilder9(PB)仿excel筛选
2018-07-25
2018全国行政区划(含乡镇,excel文件,数据库表格级联格式,记录数47497)
2018-07-22
PowerBuilder9.0快速入门篇,随书CD
2018-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人