Board logo

标题: 个人编写的GUI图形界面软件 [打印本页]

作者: taowentao     时间: 2007-1-3 03:19    标题: 个人编写的GUI图形界面软件

rtCell 真正的图形模式多窗口 - 用 Borland C 编写,具有下列功能:

1. 完善而精巧的多视口裁剪和消隐处理,与实时微内核rtCell紧密结合;

2. 真正的事件(或消息)驱动的多窗口技术,且支持顶层窗口和透明窗口;

3. 当前支持Label、Edit、Botton、Slider、Listbox、TreeView和Checkbox控件,其中的
    Edit控件支持剪切、复制和粘贴(ctrl+x,ctrl+c,ctrl+v);

4. 支持窗口的平移、缩放,和窗口系统按钮,及窗口和控件的过程回调;

5. 内存需求小(不到64K),窗口和控件所耗内存很小(全部采用直接读写显存技术,没有内存设备),
    因此实用性强,包括rtCell、鼠标、键盘及图形驱动,在DOS下也仅 100 多 K 字节。


        演示方法:解压缩gui_Test.rar,在windows下(双击)执行gui_Test.bat,
                  
                  或在纯dos下直接执行bc_gui.exe(在windows的dos窗口中无鼠标)。

        注意:本演示中由于包含一个说明性位图而使得bc_gui.exe比较大。

下载地址:
http://zhenlove.com.cn/cndos/fileup/files/bc_gui.rar
http://zhenlove.com.cn/cndos/fileup/files/bc_gui.zip
作者: zqlcch     时间: 2007-1-9 00:57
从演示上看不错啊,楼主怎么不放出开发包呢?让兄弟们用用
要收费的吗?
用过QbWin和WinSail,QbWin太弱,Winsail功能和你的看起来差不多,但它太丑了。。。。。
作者: happybasic     时间: 2007-1-9 02:01


  Quote:
Originally posted by zqlcch at 2007-1-9 00:57:
从演示上看不错啊,楼主怎么不放出开发包呢?让兄弟们用用
要收费的吗?
用过QbWin和WinSail,QbWin太弱,Winsail功能和你的看起来差不多,但它太丑了 ...

QBWIN太弱... 想必这位兄弟一定是高手了,可否做一个更强一的出来
让所有的QB爱好者们爱惠一下,包括偶...
作者: zqlcch     时间: 2007-1-9 05:42
QbWin的缺点是要写C盘,会产生~Qbwin.0等4个文件,每个38K,就是640x480x16色环境下显存四个位面的镜像文件,不能在只读的环境中使用,比如硬盘上所有的分区都是NTFS的情况,当初很认真地学习一段时间的QBWin,也做了一些基于QbWin的程序,后面就放弃了。另外Qbasic的数据段只有64k,建立大一些的数组就比较麻烦了。调用XMS也没有现成的包可以用,如果真要用XMS写还不如用C了,大量现成的包可以使用,以上这些都算是Qb无法解决的缺点了吧,除非谁能再写一个QB的编译器。

建议三楼的去用一下WinSail,基于BC的GUI库,编程方便多了。

象“想必这位兄弟一定是高手了,可否做一个更强一的出来”这样赌气伤感情的话就不要再说了,就算是一个基于应用层面的编程者(比如我)对语言的喜好也不能被自己的感情所左右,编程自然是哪个好用就用哪个,提高生产率何乐而不为,某种语言的优点自然要发杨光大,但缺点也要老老实实承认。。。。

[ Last edited by zqlcch on 2007-1-9 at 05:45 AM ]
作者: happybasic     时间: 2007-1-9 07:05
呵呵,楼上兄弟莫介意。。。我是真希望有一个更好的QB开发库, 因为QBWIN停止开发了,而且作者现在一直很忙... Hoker一直建议他开源,目前尚无消息。。。

所以,我在我的小站已经在开始自已做的QBCH开发库就是想取代bas原来的那个showfnt开发库(DOS字符界面的中文库),但GUI界面的目前还未敢试 ....

兄弟有任何意见,关于QB or QBWIN的尽管提,,当然最好的是改进意见,或开发意见。。。。
作者: zqlcch     时间: 2007-1-9 07:36
真的吗?QbWin的窗口风格和界面我一直都非常喜欢,很漂亮很舒服,就是那该死的临时文件受不了,应该是用bload和bsave函数产生的吧,能把这个改了我就满足了。
作者: happybasic     时间: 2007-1-9 08:08
但目前还缺少不少知识,最好是bas能开源,QBWIN还是有很多地方可以优化的...

我正在研究一个问题就是在程式中抓自已的文件名,但还没做好,不知兄弟会不会,会的话,就指点一二,这个主要用于捆绑字库
作者: zqlcch     时间: 2007-1-9 09:57
运行程序时,第0个参数就是自身的文件名。
在Pascal中函数ParamStr(0),返回的就是自身的文件名。。。
在Qb中找到相对应的函数就OK了。
现在居然连Qb都下不到了。。。。汗
作者: happybasic     时间: 2007-1-9 12:07
C中也是第0个参数,但是QB中的参数是COMMAND$, 是一个字符串不是数组....

qb的下载地址:
http://vb.lihuasoft.net/showdown.php?id=419

帮忙解决一下,thanks!
作者: xugaohui     时间: 2007-1-10 00:48


  Quote:
Originally posted by happybasic at 2007-1-9 02:01 AM:


QBWIN太弱... 想必这位兄弟一定是高手了,可否做一个更强一的出来
让所有的QB爱好者们爱惠一下,包括偶...

qbwin是不错,但遗留的问题太多了,根本不打算用这个。在vmware正准备用qbwin,发现它显示窗体十分慢。鼠标移动一下都不容易。还有很多人说qbwin 编写的程序在部分液晶显示器上无法显示,显示器上只显示出刷新率超出范围。
qbwin的msgbox正好与vbdos冲突。这些问题作者都不打算去解决它。

[ Last edited by xugaohui on 2007-1-10 at 04:44 AM ]
作者: happybasic     时间: 2007-1-10 01:03
1.窗体刷新速度是有些慢,不过不能用倒是没听说过...
ps: 可以先加载smartdrv.exe后速度就快多了

2.与VBDOS的MSGBOX冲突,QBWIN是for QBX 7.1的, 根本没有打算for VBDOS
(虽然可以兼容), VBDOS只是诱导大家去用VB的饵,不想用,呵呵,而且界面也太丑了
作者: zqlcch     时间: 2007-1-10 06:41
查找DOS中断编程相关资料,没有找到与此有关的中断服务,程序的PSP段中也只有参数而没有自身文件名,无法。。。
作者: happybasic     时间: 2007-1-10 09:44
查到资料说PSP段 2Ch开始,查找0010之后就是文件名称,可是在QB中不知怎
么实现, 我原来弄过一段汇编程序是OK的,

代码如下,你看能不能用QB实现它:

cseg segment
     assume cs:cseg,ds:cseg
     org  100h
start: mov si,2ch
       lodsw
       mov ds,ax
       mov si,0
       push cs         ;exe格式需要这两句
       pop es          ;com格式 cs==ds==es 可以不要
       mov di, offset buf
       cld
loc_1: lodsb
       cmp al,0        ;0
       jnz loc_1

       lodsb
       cmp al,0        ;0
       jnz loc_1

       lodsb
       cmp al,1        ;1
       jnz loc_1

       lodsb           ;0
      
loc_2:lodsb           ;文件名开始
       cmp al,0
       jz disp_1
      
       stosb
       jmp loc_2
      
disp_1:push cs
       pop ds
      
       mov dx, offset buf
       mov ah,9
       int 21h         ;显示文件名
      
       mov ah,4ch
       int 21h         ;返回DOS
      
buf db 256 dup('$')

cseg ends
end start
作者: zqlcch     时间: 2007-1-10 10:38
有资料就容易
先运行qbx /L qbx.qlb载入qbx库,如果你没有在QB中设置路径就要在/L后加路径了

代码如下:
//先调用DOS中断21的子功能62来取PSP的地址
'$INCLUDE: 'e:\programs\qb71\src\qbx.bi'
CLS
DIM s AS RegType
s.ax = &H6200
CALL Interrupt(&H21, s, s)   //调用中断
//定义段地址
DEF SEG = s.bx
//从2C取两个字节,这两个字节就是环境变量的段地址
s1 = PEEK(&H2C)
PRINT s1
s2 = PEEK(&H2D)
PRINT s2
//这里计算段地址
DEF SEG = s2 * 16 * 16 + s1
//这里取环境变量的内容,自身的文件名是以01,00打头的,查找以01,00找头,后面的一串以0结尾的字符串就是自己的文件,自己补些代码吧
//这里我偷懒了,把全部都取出来了,自己修改吧,要喝酒去了
a$ = ""
FOR aa = 0 TO 1855
         a$ = a$ + CHR$(PEEK(aa))
NEXT
PRINT a$

汗,QB还是先天不足,操作起来实在麻烦,在C或PASCAL中一个指针就搞定了。。。。。。

[ Last edited by zqlcch on 2007-1-10 at 10:40 AM ]
作者: happybasic     时间: 2007-1-11 22:45
做好了,去看看吧!多提提意见!
http://yxbasic.51.net/library/qbch.htm
作者: 本是     时间: 2007-1-11 23:17
RE 第4楼:“调用XMS也没有现成的包可以用”

改XMS绝对地址调用为中断调用,执行代码100字节不到即可(内存占用不过320字节)!

RE 第14楼:“汗,QB还是先天不足,操作起来实在麻烦,在C或PASCAL中一个指针就搞定了”

Power BASIC中就有指针。参见“100个弃QB用PB的理由”(http://www.powerbasic.com/files/pub/pbdos/100ways.txt)

                100 ways PowerBASIC 3.2 beats QuickBasic
                ========================================

   1- PB 3.2 supports true pointer variables.  Traditionally, a Basic
      programmer had to use a combination of DEF SEG and PEEK and POKE to
      access memory.  Pointers are not only more flexible, they also make
      data access much faster.

[ Last edited by 本是 on 2007-1-11 at 11:21 PM ]
作者: zqlcch     时间: 2007-1-12 00:06
从PB的主页的介绍上看,和其他BASIC比确实算是比较POWER了,把原来Basic和其他高级语言相比所缺少的指针操作、位操作、汇编给补上了。
但是要$99啊,还不提供帮助,打印版的PDF还要$29,这未免也太那个了吧,更何况PBDOS似乎还不支持面向对象。
happybasic老兄倒是可以考虑去找一下破解版
这么久了,怎么也不见写rtCell的楼主露一下脸。。。。

[ Last edited by zqlcch on 2007-1-12 at 12:23 AM ]
作者: fastslz     时间: 2007-1-12 01:44


  Quote:
Originally posted by happybasic at 2007-1-11 10:45:
做好了,去看看吧!多提提意见!
http://yxbasic.51.net/library/qbch.htm

已检测到: 广告程序 not-a-virus:AdWare.Win32.Diybar.b        URL: http://pi.51.net/download/diybar2.cab\diybar2.dll
作者: happybasic     时间: 2007-1-12 02:32


  Quote:
Originally posted by fastslz at 2007-1-12 01:44:




已检测到: 广告程序 not-a-virus:AdWare.Win32.Diybar.b        URL: http://pi.51.net/download/diybar2.cab\diybar2.dll

空间是51.net提供的,它们要放广告我也没办法啊~~~无奈.....
作者: osfree     时间: 2007-1-12 02:38
支持,试一下。
作者: defrag     时间: 2007-2-11 12:26
PB我那里有http://qbdos.ys168.com/
XMS包艘以下肯定有

[ Last edited by defrag on 2007-2-12 at 03:17 AM ]
作者: stcell     时间: 2007-3-14 11:51    标题: QBwin ?

QBwin 要UCDOS中的TX(特显)
那开发出的程序也要UCDOS的支持吗?
作者: xuxuezeng     时间: 2007-3-16 11:02
在QBwin中的那个文本输入框怎么用呀?我想将输入到文本框中的字符串取出来,不知怎么办?
作者: wang6610     时间: 2007-3-16 12:11


  Quote:
Originally posted by defrag at 2007-2-11 12:26 PM:
PB我那里有http://qbdos.ys168.com/
XMS包艘以下肯定有

[ Last edited by defrag on 2007-2-12 at 03:17 AM ]

你的网盘被锁了。
作者: imsong     时间: 2007-3-17 02:05
呵呵,不错啊,顶上一下
作者: happybasic     时间: 2007-3-18 10:28


  Quote:
Originally posted by stcell at 2007-3-14 11:51:
QBwin 要UCDOS中的TX(特显)
那开发出的程序也要UCDOS的支持吗?

那是早先的版本才要,后来的版本是完全不需要UCDOS的。
ps:你可以到我的小站上去下一个最终版本~
作者: 135956     时间: 2008-1-27 20:09


  Quote:
Originally posted by happybasic at 2007-3-18 10:28 AM:



那是早先的版本才要,后来的版本是完全不需要UCDOS的。
ps:你可以到我的小站上去下一个最终版本~

站上没有得下啊。。。。哪里有呢?上传一下上来,可以么?
作者: happybasic     时间: 2008-1-31 14:20
请到我的小站留言上留下e-mail, 我发给你~~~~~~~
作者: qb45     时间: 2008-3-16 14:33
看到大家讨论qbasic,还有点亲切