影像(image)及影像框(影像區塊,image_block)元件
可以顯示AutoCAD的幻燈片(副檔名為SLD),影像元件只為顯示圖形之用,使用者不能使用滑鼠選取
:image
| //元件名稱 | { 屬性="屬性值" ;
| } |
屬性
aspect_ratio
| 固定圖像的長闊比,其設定值為實數,沒有預設值;若設定為0,則元件將依圖像的實際尺寸顯示 | color
| 屬性為整數或保留字,預設值為while(顏色編號7);其它顏色的設定值請參閱第5篇課程 |
其它屬性
action
| alignment
| label
| key
| value
| width
| height
| fixed_width
| fixed_heigth
| mnemonic
| is_enable
| is_tab_stop |
第2節
AutoLISP函數
在對話框中取得影像框的闊度
| (DIMX_TILE "元件關鍵字")
| | e.g. (DIMX_TILE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 元件關鍵字是在元件定義中,以屬性key設定 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 函數的傳回值可作為FILL_IMAGE及SLIDE_IMAGE函數的參數 |
在對話框中取得影像框的高度
| (DIMY_TILE "元件關鍵字")
| | e.g. (DIMY_TILE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 請參閱DIMX_TILE函數的說明 |
開始在元件中建立影像
| (START_IMAGE "元件關鍵字")
| | e.g. (START_IMAGE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 在使用FILL_IMAGE,SLIDE_IMAGE及END_IMAGE等函數前,必須先執行此函數 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 不要在SET_TILE函數中使用START_IMAGE及END_IMAGE函數 |
結束元的影像建立
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 不須提供任何參數,必須與SLIDE_IMAGE函數配合使用 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值永遠是NIL |
在影像框中繪製一個填滿的矩形
| (FILL_IMAGEX座標 Y座標 闊度 高度 顏色)
| | e.g. (FILL_IMAGE 0 0 闊度變數 高度變數 -2) |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| X及Y座標為矩形框的左上角位置,必須為正值 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 填滿區域的闊度及高度,以像素為單位,並相對於X及Y座標;闊度一般以DIMX_TILE函數取得,而高度則以DIMY_TILE函數取得 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值為填滿區域的顏色整數值 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 顏色可以是AutoCAD的顏色號碼,或下列其中一種 : |
| -2 | BGLCOLOR | 目前AutoCAD繪圖螢幕的背景色 | | -15 | DBGLCOLOR | 目前對話框的背景色 | | -16 | DBGLCOLOR | 目前對話框的前景色(文字) | | -18 | DBGLCOLOR | 目前對話框中線條的顏色 |
在元件中顯示幻燈片
| (SLIDE_IMAGEX座標 Y座標 闊度 高度 幻燈片檔案名稱)
| | e.g. (SLIDE_IMAGE 0 0 闊度變數 高度變數 "C:/IMG1.SLD") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| X及Y座標,高度及闊度,請參閱上一個函數FILL_IMAGE的說明 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值為指定的幻燈片檔案名稱 |
AutoLISP函數
在對話框中取得影像框的闊度
| (DIMX_TILE "元件關鍵字")
| | e.g. (DIMX_TILE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 元件關鍵字是在元件定義中,以屬性key設定 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 函數的傳回值可作為FILL_IMAGE及SLIDE_IMAGE函數的參數 |
在對話框中取得影像框的高度
| (DIMY_TILE "元件關鍵字")
| | e.g. (DIMY_TILE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 請參閱DIMX_TILE函數的說明 |
開始在元件中建立影像
| (START_IMAGE "元件關鍵字")
| | e.g. (START_IMAGE "IMG_L") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 在使用FILL_IMAGE,SLIDE_IMAGE及END_IMAGE等函數前,必須先執行此函數 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 不要在SET_TILE函數中使用START_IMAGE及END_IMAGE函數 |
結束元的影像建立
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 不須提供任何參數,必須與SLIDE_IMAGE函數配合使用 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值永遠是NIL |
在影像框中繪製一個填滿的矩形
| (FILL_IMAGEX座標 Y座標 闊度 高度 顏色)
| | e.g. (FILL_IMAGE 0 0 闊度變數 高度變數 -2) |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| X及Y座標為矩形框的左上角位置,必須為正值 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 如果函數成功的話,會傳回指定的關鍵字,否則傳回NIL | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 填滿區域的闊度及高度,以像素為單位,並相對於X及Y座標;闊度一般以DIMX_TILE函數取得,而高度則以DIMY_TILE函數取得 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值為填滿區域的顏色整數值 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 顏色可以是AutoCAD的顏色號碼,或下列其中一種 : |
| -2 | BGLCOLOR | 目前AutoCAD繪圖螢幕的背景色 | | -15 | DBGLCOLOR | 目前對話框的背景色 | | -16 | DBGLCOLOR | 目前對話框的前景色(文字) | | -18 | DBGLCOLOR | 目前對話框中線條的顏色 |
在元件中顯示幻燈片
| (SLIDE_IMAGEX座標 Y座標 闊度 高度 幻燈片檔案名稱)
| | e.g. (SLIDE_IMAGE 0 0 闊度變數 高度變數 "C:/IMG1.SLD") |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| X及Y座標,高度及闊度,請參閱上一個函數FILL_IMAGE的說明 | MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dt_b01.gif" width="25" border="0" alt=""/>
| 傳回值為指定的幻燈片檔案名稱 |
第3節
練習 (Exercises)
建立新的對話框IMG1.DCL,存在於C盤的根目錄中;在對話框中只會顯示兩個影像及一個確定鈕,其定義如下:
IMG:dialog
| {
| label="Image" ;
| | :row
| //建立橫列元件 | | {
| :image
| //建立影像元件 | | | {
| key="IMG_L" ;
| | | | width=15;
| | | | height=6;
| | | | color=-2;
| | | }
| | | :image
| //建立影像元件 | | | {
| key="IMG_R" ;
| | | | width=15;
| | | | height=6;
| | | | color=-2;
| | | }
| | }
| //關閉橫列元件 | | ok_only;
| } |
定義說明:
1
| 設定對話框名稱為IMG,以冒號開始設定dialog元件 | 2
| 開大括號屬於上一行的dialog元件,屬性label的設定值會顯示在對話框的標題列 | 3
| 以冒號開始,設定一個橫列元件row,使包含其中的其它元件呈水平排列 | 4
| 開大括號屬於上一行的橫列元件,以冒號開始,設定第一個影像元件image
| 5
| 開大括號屬於上一行的影像元件,以key屬性,設定影像元件的操作關鍵字(IMG_L) | 6,7
| 設定影像元件的闊度(屬性width)及高度(屬性height) | 8
| 設定影像元件的顏色屬性color為-2,表示以繪圖螢幕的背景色顯示 | 9
| 關大括號是對應第5行的開大括號,此對大括號同屬於第4行的影像元件 |
10至15
| 用第4至第9行類似的設定,定義第二個影像元件,其key屬性設定為IMG_R(關鍵字) |
16
| 關大括號是對應第4行的開大括號,此對大括號同屬於第3行的橫列元件 | 17
| 定義一個確定鈕,以結束對話方塊 | 18
| 關大括號是對應第2行的開大括號,此對大括號同屬於第1行的dialog元件 |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>
建立新的程式檔IMG1.LSP,主程式用作啟動對話框,輔助程式則處理影像;其程式碼如下:
(DEFUN C:IMG()
| (SETQ DCL_ID (LOAD_DIALOG "C:/IMG1.DCL"))
| | (NEW_DIALOG &uqotIMG" DCL_ID)
| | (S_IMG "IMG_L")
| | (S_IMG "IMG_R")
| | (START_DIALOG)(UNLOAD_DIALOG DCL_ID)
| | (PRINC)) |
(DEFUN S_IMG(KEY)
| (COND ((= KEY "IMG_L") (SETQ SLD "C:/IMG1.SLD"))
| | | ((= KEY "IMG_R") (SETQ SLD "C:/IMG2.SLD")))
| | (SETQ TMP_X (DIMX_TILE KEY) TMP_Y (DIMY_TILE KEY))
| | (START_IMAGE KEY)
| | (FILL_IMAGE 0 0 TMP_X TMP_Y -2)
| | (SLIDE_IMAGE 0 0 TMP_X TMP_Y SLD)
| | (END_IMAGE)) |
練習 (Exercises)
建立新的對話框IMG1.DCL,存在於C盤的根目錄中;在對話框中只會顯示兩個影像及一個確定鈕,其定義如下:
IMG:dialog
| {
| label="Image" ;
| | :row
| //建立橫列元件 | | {
| :image
| //建立影像元件 | | | {
| key="IMG_L" ;
| | | | width=15;
| | | | height=6;
| | | | color=-2;
| | | }
| | | :image
| //建立影像元件 | | | {
| key="IMG_R" ;
| | | | width=15;
| | | | height=6;
| | | | color=-2;
| | | }
| | }
| //關閉橫列元件 | | ok_only;
| } |
定義說明:
1
| 設定對話框名稱為IMG,以冒號開始設定dialog元件 | 2
| 開大括號屬於上一行的dialog元件,屬性label的設定值會顯示在對話框的標題列 | 3
| 以冒號開始,設定一個橫列元件row,使包含其中的其它元件呈水平排列 | 4
| 開大括號屬於上一行的橫列元件,以冒號開始,設定第一個影像元件image
| 5
| 開大括號屬於上一行的影像元件,以key屬性,設定影像元件的操作關鍵字(IMG_L) | 6,7
| 設定影像元件的闊度(屬性width)及高度(屬性height) | 8
| 設定影像元件的顏色屬性color為-2,表示以繪圖螢幕的背景色顯示 | 9
| 關大括號是對應第5行的開大括號,此對大括號同屬於第4行的影像元件 |
10至15
| 用第4至第9行類似的設定,定義第二個影像元件,其key屬性設定為IMG_R(關鍵字) |
16
| 關大括號是對應第4行的開大括號,此對大括號同屬於第3行的橫列元件 | 17
| 定義一個確定鈕,以結束對話方塊 | 18
| 關大括號是對應第2行的開大括號,此對大括號同屬於第1行的dialog元件 |
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>
MSITStore:F:\Autolisp_DCL基础教程修正.chm::/help/对话框基础/images/dl-11a.gif" alt=""/>
建立新的程式檔IMG1.LSP,主程式用作啟動對話框,輔助程式則處理影像;其程式碼如下:
(DEFUN C:IMG()
| (SETQ DCL_ID (LOAD_DIALOG "C:/IMG1.DCL"))
| | (NEW_DIALOG &uqotIMG" DCL_ID)
| | (S_IMG "IMG_L")
| | (S_IMG "IMG_R")
| | (START_DIALOG)(UNLOAD_DIALOG DCL_ID)
| | (PRINC)) |
(DEFUN S_IMG(KEY)
| (COND ((= KEY "IMG_L") (SETQ SLD "C:/IMG1.SLD"))
| | | ((= KEY "IMG_R") (SETQ SLD "C:/IMG2.SLD")))
| | (SETQ TMP_X (DIMX_TILE KEY) TMP_Y (DIMY_TILE KEY))
| | (START_IMAGE KEY)
| | (FILL_IMAGE 0 0 TMP_X TMP_Y -2)
| | (SLIDE_IMAGE 0 0 TMP_X TMP_Y SLD)
| | (END_IMAGE)) |
|