| 
 | 
 
 本帖最后由 xieeyawen 于 2025-5-22 11:27 编辑  
 
第一种方法是构建form函数 
- defun( caishenlaile3 ()
 
 -     form_CAI = axlFormCreate( (gensym) CreatecaishenForm() '("C" "inner") '_CSLL_greeting t)   ;创建窗口
 
 -     axlFormColorize( form_CAI "color_a" 'text 'black) ;定义面板显示的文字颜色
 
 -     axlFormColorize( form_CAI "color_b" 'text 'white)
 
 -     axlFormColorize( form_CAI "color_c" 'text 'red)
 
 -     axlFormColorize( form_CAI "color_d" 'background 'green)
 
 -     axlFormColorize( form_CAI "color_e" 'background 'yellow)
 
 -     axlFormColorize( form_CAI "color_f" 'text 'blue)
 
 -     axlFormDisplay(form_CAI)       ;显示窗口
 
 -   )
 
  
- defun( CreatecaishenForm ()
 
 -         CSLL_FormFile=axlTempFile();临时文件夹
 
 -         p = outfile(CSLL_FormFile "w");打开临时文件夹,打开临时port
 
 -         caishenlailemain() ;调用财神主函数,获得函数里的变量值
 
 -         f_FormBegin(p 110,90,"Cai Shen Lai Le" "TOOLWINDOW")
 
 -         f_Bitmap(p "CSLL" "CSLL" 1 21 20 20)
 
 -         f_Bitmap(p "CSLL_1" "CSLL" 85 21 20 20)
 
 -         f_Bitmap(p "CSLL0" "CSLL0" 1 1 20 20)
 
 -         f_Bitmap(p "CSLL1" "CSLL1" 24 1 20 20)
 
 -         f_Bitmap(p "CSLL2" "CSLL2" 85 1 20 20)
 
 -         f_Bitmap(p "CSLL3" "CSLL3" 1 43 20 20)
 
 -         f_Bitmap(p "CSLL4" "CSLL4" 27 43 20 20)
 
 -         f_Bitmap(p "CSLL5" "CSLL5" 46 43 20 20)
 
 -         f_Bitmap(p "CSLL6" "CSLL6" 64 43 20 20)
 
 -         f_Bitmap(p "CSLL7" "CSLL7" 85 43 20 20)
 
 -         f_TextC(p greeting_Date "color_d" 40 20 30 4 "bold  border center")
 
 -         f_TextC(p greeting1 "color_e" 40 26 30 4 "bold  border center")
 
 -         f_TextC(p greeting_Time "color_f" 40 32 30 4 "bold  border center")
 
 -         f_TextC(p greeting2 "color_c" 40 38 30 4 "bold underline border center")        
 
 -         ;f_TextC(p greeting_Date "color_d" 40 20 30 4 "bold  border center")
 
 -         ;f_TextC(p greeting1 "color_e" 40 26 30 4 "bold  border center")
 
 -         ;f_TextC(p greeting_Time "color_f" 40 32 30 4 "bold  border center")
 
 -         ;f_TextC(p greeting2 "color_c" 40 38 30 4 "bold underline border center")        
 
 -         f_Button(p "WaBao","Wa_Bao",15,70,10,3) 
 
 -         f_Button(p "LaiCai","Lai_Cai",45,70,10,3) 
 
 -         f_Button(p "ByeBye","Bye_Bye",75,70,10,3)
 
 -         f_FormEnd(p "EdgeGravityOne")
 
 -         close(p)
 
 -         CSLL_FormFile;不加这一句虽然form能建立,但是form运行不了,因为form是个临时文件,不是个form文件。必须要返回CSLL_FormFile值。
 
 - );func
 
  
 
- ;以下为构造的标准化form命令函数
 
 - ;f_FormBegin(p w h title form_opt)  TOOLWINDOW / AUTOGREYTEXT / FIXED_FONT / UNIXHGT
 
 - defun( f_FormBegin (p w h @optional (form_title "by RichardL.") (form_opt "AUTOGREYTEXT"))
 
 -         sprintf(dest,"FILE_TYPE=FORM_DEFN VERSION=2\nFORM %s\nFIXED\nPORT %d %d\nHEADER "%s"\nTILE\n\n",form_opt,w,h,form_title)
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_FormEnd(p flexmode) StandButtons / EdgeGravity / EdgeGravityOne
 
 - defun( f_FormEnd (p @optional flexmode)
 
 -         if(flexmode        sprintf(dest,"FLEXMODE %s\nENDTILE\nENDFORM\n",flexmode)
 
 -                 sprintf(dest,"ENDTILE\nENDFORM\n")
 
 -         )
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_CheckList(field x y name group)
 
 - defun( f_CheckList (p field x y name @optional (group nil))
 
 -         if(group==nil 
 
 -                 sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST "%s" \nENDFIELD\n\n",field,x,y,name)
 
 -                 sprintf(dest,"FIELD %s\nFLOC %d %d\nCHECKLIST "%s" "%s"\nENDFIELD\n\n",field,x,y,name,group)
 
 -         )
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_Group(field x y w h)
 
 - defun( f_Group (p field x y w h)
 
 -         sprintf(dest,"GROUP "%s"\nFLOC %d %d\nFSIZE %d %d\nENDGROUP\n\n",field,x,y,w,h) 
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
  
- ;f_Text(field text x y w h @optional opt)
 
 - defun( f_Text (p text x y w h @optional (opt nil))
 
 -   if(opt==nil 
 
 -         sprintf(dest,"TEXT "%s"\nTLOC %d %d\nFSIZE %d %d\nENDTEXT\n\n",text,x,y,w,h) 
 
 -         sprintf(dest,"TEXT "%s"\nTLOC %d %d\nOPTIONS %s\nFSIZE %d %d\nENDTEXT\n\n",text,x,y,opt,w,h) 
 
 -         )
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
  
- ;f_Text(field text color x y w h @optional opt)
 
 - defun( f_TextC (p text color x y w h @optional (opt nil))
 
 -   if(opt==nil 
 
 -         sprintf(dest,"TEXT "%s" %s \nTLOC %d %d\nFSIZE %d %d\nENDTEXT\n\n",text,color,x,y,w,h) 
 
 -         sprintf(dest,"TEXT "%s" %s \nTLOC %d %d\nOPTIONS %s\nFSIZE %d %d\nENDTEXT\n\n",text,color,x,y,opt,w,h) 
 
 -         )
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
  
- ;f_EditFloat(field x y iw dw dec)    (iw-input width) (dw-data width)
 
 - defun( f_EditFloat (p field x y iw dw dec)
 
 -         sprintf(dest,"FIELD %s\nFLOC %d %d\nREALFILLIN %d %d\nDECIMAL %d\nENDFIELD\n\n",field,x,y,iw,dw,dec) 
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_Button(x y w h)
 
 - defun( f_Button (p field name x y w h)        ;close done/ok cancel help print 
 
 -         sprintf(dest,"FIELD %s\nFLOC %d %d\nMENUBUTTON "%s" %d %d\nENDFIELD\n\n",field,x,y,name,w,h) 
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_Bitmap(name x y w h @optional opt)
 
 - defun( f_Bitmap (p field name x y w h @optional (opt nil))                ;[RIGHT | CENTER | BORDER | BOLD | UNDERLINE]
 
 -         if(opt==nil 
 
 -         sprintf(dest,"FIELD %s\nthUMBNAIL %s\nFLOC %d %d\nFSIZE %d %d\nENDFIELD\n\n",field,name,x,y,w,h) 
 
 -         sprintf(dest,"FIELD %s\nTHUMBNAIL %s\nOPTIONS %s\nFLOC %d %d\nFSIZE %d %d\nENDFIELD\n\n",field,name,opt,x,y,w,h) 
 
 -         )
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 - ;f_TreeView(field x y w h)
 
 - defun( f_TreeView (p field x y w h)
 
 -         sprintf(dest,"FIELD %s\nFLOC %d %d\nTREEVIEW %d %d\nENDFIELD\n\n",field,x,y,w,h) 
 
 -         if(p fprintf(p,"%s",dest))
 
 -         dest
 
 - )
 
 -   
 
 - defun(_CSLL_greeting (form_CAI)
 
 -         case(form_CAI->curField
 
 -                 ("WaBao" _WaBao());挖宝弹窗显示
 
 -                 ("LaiCai" _laicai());来财弹窗显示
 
 -                 ("ByeBye" axlFormClose(form_CAI));弹窗显示
 
 -         );case
 
 -         caishenlailemain ()
 
 -         )
 
 -         
 
 - defun(_WaBao ()
 
 - let((Bao wabao)
 
 -                 (axlSetFindFilter ?enabled (list "noall" "invisible" "nets") ?onButtons (list "nets"))
 
 -                 l_greeting_nets=axlGetSelSet(axlAddSelectAll())
 
 -                 axlClearSelSet()
 
 -                 Bao=0
 
 -                 foreach(greeting_nets l_greeting_nets Bao=Bao+(greeting_nets~>unconnected))
 
 -     sprintf(wabao "^_^ \277\363\311\275\273\271\312\243\317\302 %d \277\351\275\360\327\251,\n\265\367\325\373\327\313\312\306\243\254\307\341\313\311\304\303\317\302!" Bao)
 
 -     
 
 -     axlUIConfirm(wabao);弹窗显示
 
 -     )        
 
 -         );defun
 
  复制代码 
 |   
 
 
 
 |