我写了一些非常类似的东西。我的版本需要修改很多,虽然适合你的标题栏,但它可以做到。这是一项大量的工作要做。如前所述,我使用了LISP和DCL。
DCL
Lisp程序
[code](defun CANCEL()(done\u dialog)(exit))(defun SaveVar()(cond((=(get\u tile“mylist1key”)“0”)(LM:Popup“Error!”“请选择布局”(+1 64 4096));(开始)(done_对话框));((get\u attr“mylist1key”“0”)(LM:Popup“Error!”“Please select a layout”(+1 64 4096))(start)(done\u dialog))((>(get\u tile“mylist1key”)“0”)(ProcessList));(开始)(done_对话框));(set_tile“error”“您必须选择布局”);(mode_tile“mylist1key”2))(ProcessList))(defun ProcessList();;-->保存列表设置(setq readlist(get\u tile“mylist1key”))(setq readlistREVS(get\u tile“revlettslist”));(setq readlistREVS(atoi readlistREVS));(setq readlistREVS(itoa readlistREVS));(setq myItem2(nth“1”revlettslist))(setq myItem2“A”)(done\u对话框))(defun C:tbae()(setq OldCMDecho(getvar“CMDECHO”))(setq NewCMDecho(setvar“CMDECHO”0))(start)(main))(defun start();(unload_对话框);(setq myList1(list“Electrical”“Structural”“piping”“Foundation”)(setq myList(layoutlist))(setq Nothing”“)(setq myList1(append myList1(list Nothing))(setq myList1(reverse myList1))(setq revlettslist(list“-”“A”“B”“C”“D”“E”“F”“G”“H”“I”“J”“K”“L”“M”“N”“O”“P”“Q”“R”“S”“T”);setq;;;--将dcl文件从磁盘加载到内存(if(not(setq dcl\u id(Load\u对话框“TBDCL.dcl”)))(progn(警报“无法加载dcl文件!”)(退出);;;--否则,DCL文件已加载(progn;;--加载DCL文件内的定义(如果(不是(新对话框“TBDCL”DCL\u id))(progn(警报“标题栏编辑器无法加载!”)(退出);;;--否则,加载定义文件(progn(start\u list“mylist1key”3)(mapcar的add\u list myList1)(end\u list)(start\u list“revlettslist”3);启动列表框(mapcar的add\u list REVLETTERSlist);填写列表框(end_list);;;--如果发生动作事件,则执行此功能(action_tile“eb1”“(setq eb1$value)”;标题栏日期(action_tile“revlettslist”“(setq revlettslist$value)”);rev(action_tile“Description”(setq描述$ |