wdb 发表于 2004-2-15 14:44:00

如何让数字部分上下对齐?

本帖最后由 作者 于 2004-2-16 22:53:18 编辑

对话框中有个列表框,想让列表框中的内容按要求的格式显示,就是数字部分上下对齐。



编了个程序,但达不到要求。请高手指点迷津。




SWAYWOOD 发表于 2004-2-15 16:20:00

把你做出来的效果拿出来看看


这样说很不形象

wdb 发表于 2004-2-15 16:37:00

其实就是求字符串的长度问题,如果知道了在dcl中用的是什么字体,字高是多少,问题也就解决了。

wdb 发表于 2004-2-16 12:01:00

有谁知道在dcl中用的是什么字体,字高是多少,拜托告知。

meflying 发表于 2004-2-16 12:35:00

你的问题跟字高和字体有什么关系吗?2楼的问题怎么不看看

wdb 发表于 2004-2-16 22:56:00

已将文件传上去了,请帮忙解决。

SWAYWOOD 发表于 2004-2-17 21:55:00

从另一个角度考虑一下吧,


试试下面的


(defun c:try ( / mylist newlist str)<BR>       (setq mylist (list "高大 建筑" "窗*户" "门/门1" "fff"))<BR>       (setq len (1- (length mylist)))<BR>       (while (&gt;= len 0)<BR>                       (setq str (nth len mylist))<BR>                       (setq       mystrlen (strlen str));求字符串的度<BR>                       (setq num (- 25 mystrlen))<BR>                       (while (&gt;= num 1)                                                               ;使字符串达到规定的长度。当长度不足时在<BR>                                                                                                                                                                                                                                                                               ;字符串的后面添加"-"<BR>                                       (setq str (strcat str "-"))<BR>                                       (setq num (- num 1))<BR>                       )<BR>                       (setq str (strcat str (itoa len)));直接使用ITOA不是更好吗?<BR>                       (setq newlist (cons str newlist))                               ;实际上就是一个固定总字符数,算算算术的问题<BR>                       (setq len (1- len))<BR>       )


       (setq dcl_id (load_dialog "mytry.dcl"))<BR>       (if (null (new_dialog "mydcl" dcl_id))<BR>                       (exit)<BR>       )


       (start_list "findok" 3)<BR>       (if newlist<BR>                       (mapcar (quote add_list) newlist)<BR>                       (mapcar (quote add_list) nil)<BR>       )<BR>       (end_list)<BR>       (start_dialog)<BR>       (unload_dialog dcl_id)<BR>       (princ)<BR>)<BR>

wdb 发表于 2004-2-18 13:44:00

感谢7楼。你说的方法在win2000操作系统中能行,但我用的是win98,在win98中,"-""f""i"等字母所占位子不到一个字符宽,所以还是不能达到目的。

wdb 发表于 2004-2-19 21:32:00

看来还真是个难题

meflying 发表于 2004-2-20 08:30:00

按以上方法,中间不使用"-",使用\t试试
页: [1]
查看完整版本: 如何让数字部分上下对齐?