显示大文本的最佳方式
你好我有一个例程,在xrecord中存储了几个开发注释。
我试图在某种对话框中显示这些注释中的文本。
目前我正在使用:
: boxed_column {
: paragraph {
: text_part {
label = "notes";
}
}
dcl是根据图形中存在的注释动态创建的。
问题是一些文本行太大,dcl说“对话框太大,无法在屏幕上显示”
我可能还想在注释下方放置一些按钮,这些按钮将使用vslide命令显示幻灯片
谢谢
顺便说一句对不起,所有的帖子 我可以将字符串分成几个一组,直到它适合屏幕,但我想知道是否有更好的方法 使用list_框显示注释,可以使用我的字符串换行功能将注释拆分为单独的行。这样,当内容超过列表框平铺的垂直高度时,内容将滚动。 再次非常感谢。。我要调查一下。 您可以将它们放置在编辑框中,然后将is\u enabled属性设置为false。这样,您就可以实现自动文本包装。
或者,您可以使用文本平铺,然后用编码的新行设置其值。例如。
因此,在lisp中,需要将文本分解为指定的最大行长度。您可以在下一个位置之前搜索空格/制表符,然后将该字符替换为“\n”。您可以尝试此例程来完成以下任务:
;;; -------------------------------------------------------------------------------------
;;; Word-wrap a string to a maximum length per line
;;; -------------------------------------------------------------------------------------
(defun Text:WordWrap (str len / n c m l)
(setq n 0 l 0)
(while (<= (setq n (1+ n)) (strlen str))
(cond
((member (setq c (substr str n 1)) '("\t" " ")) (setq m n))
((member c '("\n")) (setq l n))
)
(if (and (> (- n l) len) m)
(setq str (strcat (substr str 1 (1- m)) "\n" (substr str (1+ m)))
l m
m nil
)
)
)
str
) 非常感谢所有的建议,我会看看我能做些什么 大家好,我使用李的函数“字符串包裹”成功地分割了字符串。
Irneb我试图使用你的,但dcl文件给了我一个错误。
但现在我在垂直限制中得到了一个“大到适合屏幕的对话框”。
我会尝试制作一个编辑框。
对不起,我是初学者。
这是我用来创建dcl的代码
(vl-file-delete "C:\\Users\\ricardo.gomes\\Desktop\\Lisp\\info_dcl.dcl")
(setq fn "C:\\Users\\ricardo.gomes\\Desktop\\Lisp\\info_dcl.dcl")
(setq fh (open fn "a"))
(setq a (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 3 (car x)))(entget (namedobjdict))))
b (vl-remove-if-not '(lambda (x) (= "Nota" (substr x 1 4))) a)
);setq
(princ "\ninfo_dcl : dialog {" fh) ;dialog
(princ "\n: boxed_column {" fh) ;boxed column
(cond
((/= nil b)
(setq num1 1)
(repeat (length b)
(setq titl (strcat "Nota" " " (itoa num1))
titlo (substr titl 1 (strlen titl))
nt1 (cdr (assoc 1 (dictsearch (namedobjdict) titl)))
nt1a (substr nt1 (+ (strlen titlo) 4) (strlen nt1))
nt2 (cdr (assoc 2 (dictsearch (namedobjdict) titl)))
nt3 (cdr (assoc 3 (dictsearch (namedobjdict) titl)))
);setq
;text_part
(if
(> (strlen nt1) 100)
(progn
(setq nt1n (LM:StringWrap nt1 100))
(princ "\n: paragraph {" fh) ;paragrafo
(mapcar '(lambda (x)
(princ "\n: text_part {" fh)
(princ (strcat "\nlabel = " (chr 290) x (chr 290) ";") fh) ;texto
(princ "\n}" fh);fim text_part
) nt1n
);mapcar
(princ "\n}" fh);fim text_part
);progn
(progn
(princ "\n: text_part {" fh)
(princ (strcat "\nlabel = " (chr 290) nt1 (chr 290) ";") fh)
(princ "\n}" fh);fim text_part
);progn
);if
(princ)
(setq num1 (+ 1 num1))
);repeat
;;;;;;;botões
; (princ (strcat "\nkey = " (chr 290)"accept"(chr 290) ";") fh) chr 290 caracter para aspas
(princ "\nok_only;" fh);
(princ "\n}" fh);
(princ "\n}" fh);
)
);cond
(princ)
(close fh)
此代码在使用的图形中创建此dcl
info_dcl : dialog {
: boxed_column {
: paragraph {
: text_part {
label = "Nota 1 - 30/11/2011 16:22 - O Eng. João Nunes deu-me este ficheiro de um arranjo urbanistico do";
}
: text_part {
label = "largo do poço à entrada de juromenha para fazer uns perfis a mando do arq. Rui rodrigues.";
}
}
: paragraph {
: text_part {
label = "Nota 2 - 14/12/2011 11:36 - Foram definidos os materiais e os equipamentos a partir do orçamento do";
}
: text_part {
label = "josé pedro.";
}
}
: paragraph {
: text_part {
label = "Nota 3 - 19/12/2011 11:24 - Foi finalizada a primeira proposta, falta ainda definir o titulo do";
}
: text_part {
label = "projeto, esse nome vai-me ser dado pelo Sr. Pacheco.";
}
}
: paragraph {
: text_part {
label = "Nota 4 - 20/12/2011 09:09 - Após conversa com o Sr. Pacheco e o Eng. João Nunes foi decidido fazer";
}
: text_part {
label = "uma nova proposta recuando a zona dos estacionamentos aproximadamente 70cm, esta alteração é devido";
}
: text_part {
label = "ao aumento da faixa de rodagem definido noutro projeto.";
}
}
: paragraph {
: text_part {
label = "Nota 5 - 20/12/2011 14:25 - Foi terminada a proposta da nota anterior, foi também incluido o tubo";
}
: text_part {
label = "de esgotos no pormenor, criei um ficheiro com esta ultima alteração e meti na rede da Ana simão";
}
: text_part {
label = "para ela começar a fazer a memória descritiva.";
}
}
: paragraph {
: text_part {
label = "Nota 6 - 21/12/2011 10:09 - O projeto foi revisto pelo sr. pacheco, foram feitas novas medições";
}
: text_part {
label = "para o joão piteira, foram adicionadas imagens das mesas e das vedações á legenda do desenho, o";
}
: text_part {
label = "lancil de betão deixo de ser com aresta viva.";
}
}
: paragraph {
: text_part {
label = "Nota 7 - 21/12/2011 11:40 - Foi impressa uma cópia dos dois desenhos, foi também criada uma cópia";
}
: text_part {
label = "do ficheiro com o nome 6-7.dwg para enviar ao joão nunes, este ficheiro vai servir para ficar numa";
}
: text_part {
label = "pasta com o projeto completo. O ficheiro 6-7.dwg foi enviado ao joão nunes.";
}
}
: paragraph {
: text_part {
label = "Nota 8 - 21/12/2011 13:33 - Foram mudadas as designações e dimensões das camadas da zona do";
}
: text_part {
label = "estacionamento, foi novamente gravado um ficheiro com o nome 6-7.dwg e enviado para o eng. joão";
}
: text_part {
label = "nunes.";
}
}
: paragraph {
: text_part {
label = "Nota 9 - 21/12/2011 14:01 - Foram criados ficheiros dwf dos layouts, 6.dwf e 7.dwf enviados para o";
}
: text_part {
label = "eng. joão nunes.";
}
}
: paragraph {
: text_part {
label = "Nota 10 - 22/12/2011 09:40 - Foi alterado o comprimento do lancil em betão de 1.2m para 1.0m no";
}
: text_part {
label = "desenho do pormenor, foi impressa uma cópia do layout e foi criado o ficheiro 6-7.dwg e o ficheiro";
}
: text_part {
label = "7.dwf para enviar ao eng. João Nunes.";
}
}
: paragraph {
: text_part {
label = "Nota 11 - 22/12/2011 10:31 - Foi alterado o grafismo do xisto a cutelo, foi alterada também a";
}
: text_part {
label = "designação da legenda em planta de xisto em cutelo para xisto a cutelo, foi impressa uma cópia";
}
: text_part {
label = "somente do pormenor, foi gravado novamente o ficheiro 6-7.dwg e o 6.dwf e 7.dwf para enviar ao eng.";
}
: text_part {
label = "João Nunes.";
}
}
: text_part {
label = "Nota 12 - 26/12/2011 14:31 - Foi impressa uma cópia para a maria do carmo.";
}
ok_only;
}
} 鉴于你的文本如此之大,我认为你最好的选择是使用并编辑_框。这样你就会得到一个滚动条,滚动条上的文字跨度远远超过屏幕显示的范围。
出现过大对话框的原因是您正在设置标签,然后该标签确定文本平铺的宽度/高度。我会将高度设置为指定的行数,将宽度设置为所需的行长度。然后我将设置值而不是标签-因此不适合允许的空间的文本将无法显示。 我只能明天回答,我现在得走了
谢谢 谢谢你的提示irneb,我会搜索如何做到这一点。
页:
[1]
2