Brick_top 发表于 2022-7-6 08:26:02

显示大文本的最佳方式

你好
 
我有一个例程,在xrecord中存储了几个开发注释。
 
我试图在某种对话框中显示这些注释中的文本。
 
目前我正在使用:
 
: boxed_column {
: paragraph {
: text_part {
label = "notes";
}
}
 
dcl是根据图形中存在的注释动态创建的。
问题是一些文本行太大,dcl说“对话框太大,无法在屏幕上显示”
 
我可能还想在注释下方放置一些按钮,这些按钮将使用vslide命令显示幻灯片
 
谢谢
 
顺便说一句对不起,所有的帖子

Brick_top 发表于 2022-7-6 08:31:00

我可以将字符串分成几个一组,直到它适合屏幕,但我想知道是否有更好的方法

Lee Mac 发表于 2022-7-6 08:34:51

使用list_框显示注释,可以使用我的字符串换行功能将注释拆分为单独的行。这样,当内容超过列表框平铺的垂直高度时,内容将滚动。

Brick_top 发表于 2022-7-6 08:35:58

再次非常感谢。。我要调查一下。

irneb 发表于 2022-7-6 08:41:41

您可以将它们放置在编辑框中,然后将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
)

Brick_top 发表于 2022-7-6 08:43:07

非常感谢所有的建议,我会看看我能做些什么

Brick_top 发表于 2022-7-6 08:47:42

大家好,我使用李的函数“字符串包裹”成功地分割了字符串。
 
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 发表于 2022-7-6 08:48:20

鉴于你的文本如此之大,我认为你最好的选择是使用并编辑_框。这样你就会得到一个滚动条,滚动条上的文字跨度远远超过屏幕显示的范围。
 
出现过大对话框的原因是您正在设置标签,然后该标签确定文本平铺的宽度/高度。我会将高度设置为指定的行数,将宽度设置为所需的行长度。然后我将设置值而不是标签-因此不适合允许的空间的文本将无法显示。

Brick_top 发表于 2022-7-6 08:53:42

我只能明天回答,我现在得走了
 
谢谢

Brick_top 发表于 2022-7-6 08:57:03

谢谢你的提示irneb,我会搜索如何做到这一点。
页: [1] 2
查看完整版本: 显示大文本的最佳方式