如何修改采用Label格式的DW的背景色

flyerlxg 2007-01-03 08:48:39
1、我用Label格式做了一个DW,现在要修改其背景色,但在画笔窗口进行更改后,运行时却仍然是白色的,不知是什么原因。
2、在该DW中,因为有多个小标签,但为何左边距却没法修改。采用的是A3横向纸。
3、在该DW的标签上有一列,我想在程序中根据DW的大小自动调整该列显示值(字符串型)的字体大小,但确不起作用,Modify返回的值为''。
...全文
504 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerlxg 2007-02-03
  • 打赏
  • 举报
回复
对于第3个问题,不能直接修改字体的大小,那我就直接修改字体的宽度和高度,问题同样解决了。第2个问题,估计与打印纸的宽度和高度有关,我使用的是PB9.0.5507,不支持直接修改纸的宽度和高度。
flyerlxg 2007-01-24
  • 打赏
  • 举报
回复
UP
youqiong 2007-01-24
  • 打赏
  • 举报
回复
听讲
go19142744 2007-01-17
  • 打赏
  • 举报
回复
我觉得label风格就是适合给你作标签,名片的。整张纸的背景改不了颜色的,但是改label框倒是很方便,你换种风格试试,像N-UP风格就能作的很像label。
flyerlxg 2007-01-16
  • 打赏
  • 举报
回复
是否还有更好的办法?
flyerlxg 2007-01-06
  • 打赏
  • 举报
回复
1、现在采用了一个比较笨的办法,就是将列设为透明的,然后再在列的后面放有一个Text,将这个Text的背景色设为自己想要的颜色,这样解决了标签内的颜色问题,但边框之外的还是白色。
2、标签离DW边框的上下左右边距不能控制,我想这应该与纸张的大小有关,而不是该数据窗口对象的上下左右边距的问题。
3、标签内的字体大小仍然没有解决,一直是设计时的那样大。
flyerlxg 2007-01-06
  • 打赏
  • 举报
回复
是Label而不是CrossTab
AFIC 2007-01-05
  • 打赏
  • 举报
回复
兄台,到底是label还是crosstab……
lzheng2001 2007-01-04
  • 打赏
  • 举报
回复
试试设置列的背景色为透明! 很久没用过Label了.
flyerlxg 2007-01-04
  • 打赏
  • 举报
回复
dw_1.SetRedraw(False)

//设置字号
string ls_tmp
ls_tmp = dw_1.Modify("FShow1.Font.Weight='" + string(ll_TWeight) + "'")
ls_tmp = dw_1.Modify("FShow2.Font.Weight='" + string(ll_TWeight) + "'")
ls_tmp = dw_1.Modify("FBoardNo.Font.Weight='" + string(ll_BWeight) + "'")

dw_1.SetRedraw(True)


以上是用变量来设置字号,下面我换成具体的数值都还是不行。
dw_1.SetRedraw(False)

ls_tmp = dw_1.Modify("FShow1.Font.Weight='-9'")
ls_tmp = dw_1.Modify("FShow2.Font.Weight='" + string(ll_TWeight) + "'")
ls_tmp = dw_1.Modify("FBoardNo.Font.Weight='9'")

dw_1.SetRedraw(True)
lywei 2007-01-04
  • 打赏
  • 举报
回复
试试做一张背景图片
AFIC 2007-01-04
  • 打赏
  • 举报
回复
不知道你Modify咋写的,无从判断阿
flyerlxg 2007-01-04
  • 打赏
  • 举报
回复
列的背景色为透明色,现在是要修改整个DW的背景色呀。
flyerlxg 2007-01-03
  • 打赏
  • 举报
回复
是整个DW窗口的背景色
sdsxlj 2007-01-03
  • 打赏
  • 举报
回复
是设置列的背景色还是整个数据窗口的背景色?
flyerlxg 2007-01-03
  • 打赏
  • 举报
回复
肯定没有
sdsxlj 2007-01-03
  • 打赏
  • 举报
回复
1.看看其它pbl中是否有同名的数据窗口存在.
很有用的,大家都来吧;有编辑功能:Backspace键用于删除字符;上下左右键可以任意角度方向的移动 ;光标;Esc键用于退出本软件,同时提示是否保存,若输入Y,则软件将自动把已发送 ;的字符保存在指定文件夹中,初始值指定为'c:\masm\L.txt'中; ;聊天功能:发送字符串后,发送端自动换行;接收端有‘Rec:’字样提示收到了 ;字符;接收字符串基于中断 ;;作者:xuehui869^_^电子邮箱:xuehui869@163.com^_^时间 :2008年3月27日23:35:11 DATA SEGMENT MEMORYBUFFER DB 1000 DUP(?) FILE DB 'c:\masm\L.txt' , 0 ;创建文件的文件名 ERROR_MESSAGE DB 0AH , 'error !' , '$' ;出错时的提示 MESSAGE DB 0AH , 'ok !$' ;操作成功后的提示 HANDLE DW ? ;保存文件号 SENDBUFFER DB 1000 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS: CODE , DS:DATA START: ;主程序部分 MOV AX , DATA MOV DS , AX MOV SI,OFFSET SENDBUFFER MOV DI,OFFSET MEMORYBUFFER ;用于存储接收和已发送的数据 MOV BP,OFFSET SENDBUFFER ;用于判断发送区是否为空,以利于判断DEL键是否进行删除 ;MOV AH,0 ;这些背景色必须加在声明语句中,在主循环中不行 ;MOV AL,11000011B ;MOV AL,42H ;INT 10H MOV AH,0BH ;加边框 MOV BH,0 MOV BL ,200 INT 10H MOV AH , 35H ; MOV AL , 0CH ; INT 21H ;读取原0CH号中断服务程序的地址 PUSH BX PUSH ES ;以上地址入栈保存(以便在程序退出时再恢复中断矢量表中的内容) MOV AX , CS ; MOV DS , AX ; MOV DX , OFFSET RECINTERRUPT ; MOV AH , 25H ; MOV AL , 0CH ; INT 21H ;修改中断矢量表,将NET_INT位置登记为0CH号中断服务程序的地址 ;以下初始化8250 MOV DX , 3FBH ;指向线路控制寄存器 MOV AL , 80H ;位7置1 OUT DX , AL ;发送此字节 MOV DX , 3F9H ;指向波特率除数的高字节 MOV AL , 0 ; 1200 BPS对应的高字节 OUT DX , AL ;发送此字节 DEC DX ;指向波特率除数的低字节 MOV AL , 60H ; 1200 BPS对应的低字节 OUT DX , AL ;发送此字节 ;MOV AL , 1BH ;数据长度为8位 , 1个奇偶校验位 , 偶校验 , 1个停止位 MOV AL , 13H ;数据长度为8位 , 无奇偶校验位 , 1个停止位 MOV DX , 3FBH ;指向线路控制寄存器 OUT DX , AL ;发送此字节 MOV DX , 3FCH ;设置MODEM控制寄存器 MOV AL , 0BH ;允许8250发中断 OUT DX , AL MOV DX , 3F9H ;指向中断允许寄存器 MOV AL , 1 ;允许数据接收准备好中断 OUT DX , AL ;发送此字节 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;这一段很关键,但往往被遗忘 CLI ;关中断,以便对中断控制器8259A进行操作 IN AL , 21H ;读取中断屏蔽寄存器的内容 AND AL , 0EFH ;将COM1中断(即IRQ4引脚)的对应位置0,允许中断。 OUT 21H , AL ;写入中断控制器8259A中 STI ;开中断 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;超级死循环 ,主要是发送程序部分 ,主程序循环,等待收到字符的中断发生。; MOV AX , DATA MOV DS , AX WAITSENDSTRING: MOV AH,1 ; 键盘缓冲区是否有字符? INT 16H ; JZ WAITSENDSTRING ; 无,继续查询 MOV AH,0 ;从键盘缓冲区取字符到AL ,当读了之后,缓冲区清空;不然,键盘缓冲去一直有数据 INT 16H ; CMP AL,00011011B ;是否为退出键Esc JNZ A ;不是,转A继续判断 JMP EXIT ;是,转EXIT,进行程序退出处理 A: CMP AH,48H ;是否为“上”键 JZ KEY_UP ;是,转上处理程序 CMP AH,50H ;下 JZ KEY_DOWN CMP AH,4BH ;左 JZ KEY_LEFT CMP AH,4DH ;右 JZ KEY_RIGHT CMP AL,08H ; 接收到的数据是Del键吗 JNZ OK ; 不是,则转OK CMP BP,SI ;现在没有字符吗 ;本步的功能在于容错处理 JZ OK ; 是,则转OK,不进行删除 MOV AH,02H ;;不是,执行删除字符程序 MOV DL,08H ; DL ='Del'的ASCII码 INT 21H ; MOV DL,00H ; DL ='NULL'的ASCII码 INT 21H ; MOV DL,08H ; DL ='Del'的ASCII码 INT 21H ; DEC SI ;删除存储区内的一个字符 JMP WAITSENDSTRING KEY_UP: MOV AH,03H ;使光标上移 MOV BH ,00H INT 10H DEC DH MOV AH,02H INT 10H JMP WAITSENDSTRING KEY_DOWN: MOV AH,03H ;使光标下移 MOV BH ,00H INT 10H INC DH MOV AH,02H INT 10H JMP WAITSENDSTRING KEY_LEFT: MOV AH,03H ;使光标左移 MOV BH ,00H INT 10H DEC DL MOV AH,02H INT 10H JMP WAITSENDSTRING KEY_RIGHT: MOV AH,03H ;使光标右移 MOV BH ,00H INT 10H INC DL MOV AH,02H INT 10H B: JMP WAITSENDSTRING ;;;;;;;;;;;;;;;;;;;;;;;;;;;;向标准输出外设(如显示器)输出单个字符 OK: MOV AH,02H ; MOV DL,AL ; DL =输出字符的ASCII码 INT 21H ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;将从键盘缓冲区接收到字符串保存到Receivebuffer ;;;;;;;;;;;;;;;;;;数组中,当遇到回车键时将该数组中的字符串通过串口发送出去 MOV BYTE PTR[DI],AL ;将接收到的字符保存到存储区 INC DI MOV BYTE PTR[SI],AL ;将接收到的字符保存到发送缓冲区 INC SI CMP AL,0DH ; 接收到的数据是回车键吗? JNZ B ; 不是,则转WAITSENDSTRING;但是只有JMP指令才能实现far_label跳转,所以 ;采用此迂回办法 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;BIOS中断此处还不能用,莫名其妙的出错 ;MOV AH,01H ;MOV AL,'A' ;MOV DX,0 ;INT 14H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 是,开始发送 ;由于在sendbuffer帧头加Receive字样,发送会出错,也只能采取这种迂回的办法了 MOV AL,00001010B ;;要使接收端换行使用回车键不行,使用LF换行 MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV AL,01010010B ;;R键 MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV AL,01100101B ;;e键 MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV AL,01100011B ;;c键 MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV AL,00111010B ;;回车键 MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV AL,00001010B ;; MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 MOV SI,OFFSET SENDBUFFER ;恢复 SI初始值 SEND: MOV AL,BYTE PTR[SI] INC SI MOV DX,3F8H ; 串口发送数据端口地址 OUT DX,AL ; 把该字符发送到输出数据缓冲器 CMP AL,0DH ; 接收到的数据是回车键吗? JNZ SEND ; 不是,则转SEND,继续发送 MOV SI,OFFSET SENDBUFFER ;一次发送结束后,重新置位si MOV DL,0AH ; 换行 MOV AH,02H INT 21H JMP WAITSENDSTRING ;发送完,重新开始接收 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;接收中断处理程序 RECINTERRUPT: CLI MOV AX , CS ; MOV DS , AX ; PUSH BX PUSH AX ; 暂存数据 PUSH DX MOV AH,41 ; MOV DL,AL ; DL =输出字符的ASCII码 INT 21H ; MOV DX,3F8H ; 端口接收数据端口地址 IN AL,DX ; 读取数据 AND AL,7FH ; 有效数据位为7位 MOV AH,02H ; 向标准输出外设(如显示器)输出单个字符 MOV DL,AL ; DL =输出字符的ASCII码 INT 21H ; CMP AL,0AH ; 接收到的数据是回车键吗? JNZ L2 ; 不是,则转L2 MOV DL,0AH ; 是,输出换行符换行 MOV AH,02H INT 21H L2: MOV AL , 20H ;发中断结束命令(EOI) OUT 20H , AL ; POP DX ; POP AX POP BX STI ;CPU开中断 IRET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;退出程序 EXIT: ;保存处理 MOV AH,02H ; MOV DL,01010011B ; DL =输出字符的ASCII S INT 21H ; MOV AH,02H ; MOV DL,01100001B ; DL =输出字符的ASCII a INT 21H ; MOV AH,02H ; MOV DL,01110110B ; DL =输出字符的ASCII码 v INT 21H ; MOV AH,02H ; MOV DL,01100101B ; DL =输出字符的ASCII码 e INT 21H ; MOV AH,02H ; MOV DL,00111111B ; DL =输出字符的ASCII码 ? INT 21H ; MOV AH,02H ; MOV DL,01011001B ; DL =输出字符的ASCII码 Y INT 21H ; MOV AH,02H ; MOV DL,00H ; DL =输出字符的ASCII码 INT 21H ; MOV AH,02H ; MOV DL,01001111B ; DL =输出字符的ASCII码 o INT 21H ; MOV AH,02H ; MOV DL,01010010B ; DL =输出字符的ASCII码 r INT 21H ; MOV AH,02H ; MOV DL,00H ; DL =输出字符的ASCII码 INT 21H ; MOV AH,02H ; MOV DL,01001110B ; DL =输出字符的ASCII码 n INT 21H ; WAITSAVE: MOV AH,1 ; 键盘缓冲区是否有字符? INT 16H ; JZ WAITSAVE ; 无,继续查询 MOV AH,0 ;从键盘缓冲区取字符到AL ,当读了之后,缓冲区清空;不然,键盘缓冲去一直有数据 INT 16H ; CMP AL,01011001B ; 接收到的数据是Y键吗? JNZ EXITNOW ; 不是,则转OK JMP SAVE ;退出处理 EXITNOW: MOV AH , 25H ; MOV AL , 0CH ; POP ES ; POP BX ; INT 21H ;恢复中断矢量表中0CH号中断服务程序的原地址。 MOV AH , 4CH ; INT 21H ;返回DOS SAVE: ;MOV AX , DATA ;MOV DS , AX MOV DX , OFFSET FILE MOV CX , 0 MOV AH , 3CH INT 21H ;创建文件,若磁盘上原有此文件,则覆盖 JC ERROR ;创建出错,转error处 MOV HANDLE , AX ;保存文件号 MOV BX , AX MOV BP , OFFSET MEMORYBUFFER SUB DI,BP MOV CX ,DI MOV DX , OFFSET MEMORYBUFFER ;用于计算发送的数目 ,同时是存储的原址 MOV AH , 40H INT 21H ;向文件中写入16个字节内容 JC ERROR ;写出错,转error处 MOV DL,AH MOV AH,02H INT 21H MOV DL,AL MOV AH,02H INT 21H MOV BX , HANDLE MOV AH , 3EH INT 21H ;关闭文件 JC ERROR ;关闭文件出错,转error处 MOV DX , OFFSET MESSAGE MOV AH , 9 INT 21H ;操作成功后显示提示 JMP END1 ERROR: MOV DX , OFFSET ERROR_MESSAGE MOV AH , 9 INT 21H ;显示错误提示` END1: MOV AH , 4CH INT 21H JMP EXITNOW CODE ENDS ; END START

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧