黄色一级视,欧美性猛交xxxx乱大交be,日本不卡一二,日韩欧美在线影院,日韩艹,日本精品视频在线,欧美精品乱码久久久久久按摩

利用MapX實(shí)現(xiàn)電力通訊設(shè)備可視化

2013-12-12 10:44:48 電力信息化  點(diǎn)擊量: 評(píng)論 (0)
摘要 :目前電力通信網(wǎng)絡(luò)資源的管理基本上還停留在手工管理為主、計(jì)算機(jī)管理為輔的水平上,本文介紹了使用Delphi開(kāi)發(fā)平臺(tái)與MapX組件來(lái)開(kāi)發(fā)電力通信資源管理系統(tǒng),實(shí)現(xiàn)電力通信設(shè)備的可視化管理。本文介紹了系統(tǒng)
元對(duì)象,所以為省圖順序編號(hào),使標(biāo)號(hào)與面圖元對(duì)象的keyvalue屬性一一對(duì)應(yīng)。從而在用戶輸入編號(hào)后,可以根據(jù)編號(hào)找到對(duì)應(yīng)的省圖并連續(xù)打印。例如打印編號(hào)1,2,3或者編號(hào)1-7對(duì)應(yīng)地圖對(duì)象,甚至是1,2,3,6-9這種混合方式對(duì)應(yīng)的地圖對(duì)象。在這里筆者選擇了Delphi中Tstinglist對(duì)象的Delimiter和DelimitedText屬性方法實(shí)現(xiàn)對(duì)編號(hào)字符串的分割。以用戶輸入打印編號(hào)2,4-6,7-10,21的打印請(qǐng)求為例。首先對(duì)打印輸入框的字符串用“,”進(jìn)行分割,使分割后的Tstringlist字符串?dāng)?shù)組中包含2,4-6,7-10,21等4個(gè)元素。不包含“—”的元素可以直接尋找編號(hào)對(duì)應(yīng)的圖元對(duì)象打印出來(lái)。而對(duì)包含“—”的數(shù)組元素用“—”進(jìn)行二次分割。生成新的字符串?dāng)?shù)組由4,6,7,10組成。設(shè)置循環(huán),打印編號(hào)從4-6 和從7-10的地圖。最終我們使打印輸入框的輸入方式與windows打印程序類似。
 
 
 
 
 
 
 
 
 
 
 
復(fù)雜地圖的打印:選擇設(shè)備圖層,調(diào)用Map1.PrintMap()打印函數(shù)的時(shí)候,如果打印的地圖區(qū)域內(nèi)圖元對(duì)象(光纖站,光線線路)比較密集或者背景圖比較復(fù)雜,則打印時(shí)報(bào)錯(cuò),地圖邊線線條變粗,打印失敗。而一旦選擇簡(jiǎn)單的地圖打印則可正常完成。初步猜測(cè)是打印連接異常產(chǎn)生了錯(cuò)誤,于是試圖捕獲異常:
Try                             
printer.orientation:=polandscape;
Printer.BeginDoc;
Map1.PrintMap(Printer.Handle, 2500,500, Map1.Width * 35, Map1.Height * 35);
Printer.EndDoc;
except
Printer.Abort;
MessageDlg('不能打印地圖', mtError, [mbOK], 0);
end;
系統(tǒng)不能捕獲到異常,可以排除文件傳輸錯(cuò)誤導(dǎo)致打印不出地圖的可能。筆者通過(guò)多次測(cè)試發(fā)現(xiàn):如果創(chuàng)建一個(gè)隱藏的地圖對(duì)象map2,讓它與map1的邊界和顯示圖層完全一樣。這樣通過(guò)查看設(shè)置map1而實(shí)際打印隱藏地圖map2時(shí),能夠正常完成操作。
Map2.bounds:=Map1.bounds;  for i:=1 to map1.layers.count;  //設(shè)置map2與map1一致
If (Map1.layers.item[i].visible=false)
then  Map2.layers.item[i].visible:=false;
Map2.PrintMap(Printer.Handle, 2500,500, Map1.Width * 35, Map1.Height * 35); //打印map2
⑵添加比例尺、圖例和邊框:為了使地圖打印效果更加逼真需要向地圖添加比例尺、圖例和邊框。使用Layer集合的AddUserDrawLayer方法,該方法返回了創(chuàng)建的Layer對(duì)象,并在此layer對(duì)象中創(chuàng)建比例尺和圖例。當(dāng)需要添加比例尺和圖例時(shí),系統(tǒng)自動(dòng)觸發(fā)DrawUserLayer事件。
首先,添加用戶繪制圖層到圖層集合:
lyr = Map1.Layers.AddUserDrawLayer("My Layer", 1);
然后,設(shè)置 DrawUserLayer 事件中的代碼以繪制
大云網(wǎng)官方微信售電那點(diǎn)事兒

責(zé)任編輯:和碩涵

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
?