- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
Tree控件的使用
本节将重点讨论LabVIEW中的Tree控件,也许是控件本身的使用比较“麻烦”,导致很多程序员不愿意使用该控件。其实在大多数的应用程序中均可以看到Tree的身影,如Windows操作系统中的“资源管理器”左侧的文件列表,通常Tree控件可以用来显示一些有组织的、分类明确的数据。
1.1编辑Tree控件的外观
Tree控件位于LV的控件选板“List&Table”子选板中,如图 1所示。从背面板可以看出Tree实质上是一种字符串(String)类型,这难免会让人费解:如何将前面板大量的“条理性的数据”与String对应呢?
图 1 Tree控件
选择工具选板中的Edit Text工具,可以直接在Tree控件中输入数据。
- 通过Tree控件的右键快捷菜单Visible Items菜单项,可以改变Tree控件的显示外观,如图 2所示。可以逐一勾选/不勾选该菜单项中的菜单,就明确了各个菜单项对应的含义。
图 2 改变Tree控件的显示外观
- 在Visible Items中有一个Symbols菜单项,从外观上看勾选或不勾选该选项没有什么区别。原来,LabVIEW允许对Tree中的每一行指定一个符号,显示在行首。要显示该符号首先需要勾选Visible Items→Symbols选项,其次在某一行上右击弹出的快捷菜单上选择Item Symbol菜单项,并选择一个符号。如图 3所示。LabVIEW提供了42种符号可供选择,其中第1种为空(默认值,因此前面在勾选Visible Items→Symbols后看不到变化)。可以通过该方式为每一行添加各种不同的符号。
图 3 选择Symbol
- 在Windows资源管理器中,我们可以看到Tree是能够显示层级关系的。这一点可以通过选择右键快捷菜单中的Indent Item和Outdent Item实现,在第图中的3行上右击选择Indent Item,则第3行变成了第2行的子行,如图 4所示。此时,LabVIEW会自动添加一个“+”或“—”符号,如同Windows资源管理器中显示的一样。程序员可以通过选择快捷菜单中的Expand/Contract Symbol Type选项来改变该符号的显示样式。
图 4 改变Tree控件的层次关系
- 那么LabVIEW究竟如果把Tree控件上显示的诸多字符串表示在底层函数面板中呢?我们可以尝试使用一个String显示件验证Tree控件的输出,其前面板和背面板如图 5所示。运行该VI,并且选择Tree的不同行(随着选择的不同,被选中的行会以蓝色高亮显示,比如图中的第3行),观察String显示件中的值。可以得到Tree控件的输出好像是每一行的首列字符串,但是第4行的输出却是A_1,这是一个从来没有输入过的值。
图 5 测试Tree控件的输出字符串
选择Tree右键快捷菜单中的Edit Item…菜单项,将弹出如图 6所示的对话框。对话框的左侧是Tree控件显示的内容,改变控件的选择,可以看出右侧的Tag会随之改变,并且第4行的Tag值正好是A_1。原来Tree控件为每一行自动分配了一个唯一的Tag值(该值可以在Edit Item对话框中修改,但是必须确保唯一性和非空性),其输出则是当前选中行的Tag值。我们可以尝试将第4行的Tag值强行修改为A,此时LabVIEW将会以红色背景显示Tag值,表示该Tag值重复,无法正常使用(也就是说Tree控件中每一行的Tag值必须是唯一并且非空的)。 [p]
图 6 Edit Tree Items对话框
1.2Tree控件对应的事件
在背面板上放置一个事件结构,并且选择Tree控件,可以看到其对应的所有事件,如图 7所示。本节只介绍一些特殊的Tree事件。
图 7 Tree控件的事件
- Edit Cell事件
该事件与multicolum listbox中的Edit Cell事件一样,当用户编辑控件中的内容时被触发。分为Edit Cell消息型事件和Edit Cell
过滤型事件,后者可以根据程序员的设计取消掉该事件。
如程序运行时只允许用户修改Tree控件第1列的值,而不允许修改其他列的值。可以使用Edit Cell
过滤型事件实现该功能,具体如图 8所示。要允许用户在程序运行时编辑Tree控件的值需要首先勾选Tree控件右键快捷菜单中的Editable Cells菜单项,然后运行该程序,在需要修改的单元格中单击并输入响应的字符。可以看出除了修改第1列的值以外,对其它列的修改都不会成功。
也可以把本例延伸一下,比如只允许用户输入特定的字符串(大写字母,数字等),应该如何处理呢?
图 8 Tree控件的Edit Cell
过滤型事件
- Double Click事件
从名称可以看出,该事件在用户双击Tree控件时被触发,如图 9所示。图中事件数据节点中的Tag表示用户双击了哪一行,但是是否有一种方式明确了用户到底双击了Tree控件中的哪一个区域呢,具体为哪一行哪一列呢?显然左侧的Coords表示双击的坐标值,我们可以通过Tree控件的“Point To Row Column”方法(Create→Invoke Node)将Coords坐标值转化为具体的行和列值。此外,如何表示用户双击了Tree控件的行头和列头呢?具体可以参考LabVIEW中关于“Point To Row Column”方法的帮助文档。
图 9 Tree控件的Double Click过滤型事件
- Item Close和Item Open事件
这两个事件是对立的,分别具有一个消息型事件和一个过滤型事件。它们是在用户展开或收缩某一个父层次项时被触发的,如上述Tree控件中的第2行,当展开或收缩该行时会触发该事件(可以通过单击该行左侧的“+”和“—”符号或者双击该行实现展开和收缩操作)。
如果不希望用户收缩Tree控件的第2行,可以使用如图 10所示的代码。运行该VI,可以看出,无论用户如何单击Tree控件第2行左侧的“—”符号,都不会收缩该行。
图 10 Tree控件的Item Close过滤型事件
1.3Tree控件对应的属性
Tree控件的属性众多,如图 11所示,主要是为了动态地改变Tree控件的属性(利用程序修改)。绝大部分的属性与multicolum listbox类似,本节只介绍几个典型的属性节点,重在说明Tree属性节点的使用方法。 [p]
[p]
图 17 Edit Tree Items方法
假如需要给图 18左侧的Tree控件增加一个结点,使之变成右侧的Tree控件,则可以使用Edit Tree Items. Add Item方法。
图 18 增加一个结点(Item项)
图 19所示为增加结点的源代码,其中Parent Tag为B,表示B是待插入项的父结点,如果待插入结点没有父结点则设置为空就可以了。Child Position表示待插入项是第几个子项,很明显应该填入1。Left Cell String是待插入项第1列的字符串。Child Text是一个数组,表示待插入项第2列之后的所有字符串。Child Tag是待插入项的Tag值,不能设置为空或者与其它的Tag值相同。
图 19 增加一个结点(Item项)源代码
1.4.4自定义Tree结点的符号
在Custom Item Symbols方法中,可以动态设置或者自定义结点的符号。如前面所述,LabVIEW共提供了42种内置的符号,每一个符号从上之下从左至右有一个唯一的Index号(从0开始)。
如果需要给图 18中新加入的F结点增加一个自定义的符号,可以使用图 20所示的代码。首先使用属性结点,将F结点的符号设置为1号符号(符号的Index可以在右键快捷菜单的Item Symbol菜单项中查询);然后使用Custom Item Symbol. Set Symbol方法,将1号符号修改为自定义的图片;这样就Tree控件中所有的1号符号会变为新的符号。
图 20 自定义结点的符号
1.5Tree控件的界面刷新
本例将介绍一个特殊的技巧,不仅仅使用在Tree控件中,也可以使用在其它的界面更新中。本例将实现如图 21所示的功能,使用程序自动向Tree控件加入1000个结点,并且每个结点的底色依次交叉不同。
图 21 Tree控件例子前面板
底层代码【下载】如图 22所示。首先使用Edit Tree Items. Delete方法删除Tree控件中所有的内容(不连接Tag表示删除所有内容);然后加入一个N=1000的For循环,每次循环都加入一个新的Item项并且设置该项的背景色。Child Positon设置为-1表示新加入的项在现有项的最末尾处。
图 22 Tree控件例子背面板
运行该VI,可以发现程序确实能够实现相应的功能,但是运行时间较长。这主要是由于Tree控件刷新导致的,每次循环运行,都需要修改结点的背景色,这使得整个界面的刷新速度非常慢。事实上,我们并不需要观察Tree控件增加的过程,只需要快速地获取到结果就可以了。例如在循环运行时,可以并不马上改变Tree控件的外观,而是程序运行完成后,一次性地刷新Tree控件的外观,这样可以大大地提高程序运行的速度。修改后的代码如图 23所示。
图 23 Tree控件例子背面板_修改后
上图中使用了LabVIEW提供的Defer Panel Updates属性,该属性可以延迟整个界面(Panel)的刷新。也就是说当修改界面上控件的值和外观时,并不是马上对界面上的控件进行刷新,而是在恰当的时候(当LabVIEW重绘前面板界面的时候)再统一进行刷新。因此,在开始运行时将Defer Panel Updates属性设置为true,在程序结束后再将Defer Panel Updates属性设置为false强制对前面板控件进行刷新。
上一篇:如何构建数据采集系统(二)
下一篇:局域变量、全局变量和功能型全局变量
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠绘鐐村灴婵偓闁靛牆鎳愰悿鈧俊鐐€栧Λ浣肝涢崟顒佸劅濠电姴娲﹂埛鎴犳喐閻楀牆绗掑ù婊€鍗抽弻娑㈡偐閸愬弶璇為悗瑙勬礃閸ㄥ潡鐛鈧獮鍥ㄦ媴閻熸澘鍘炲┑锛勫亼閸婃牠宕濋幋锕€鍨傞柛锔诲幘閻牊銇勯弴妤€浜惧┑顔硷攻濡炶棄螞閸愩劉妲堟繛鍡樕戦ˉ锝夋⒒娴e懙褰掓晝閵堝鈧箓鎮滈悾灞界ウ闂佺鎻粻鎴犵矆鐎n偁浜滈柟鐑樺灥閳ь剙顭烽獮濠傗攽閸♀晜瀵岄梺闈涚墕濡稒鏅堕鍌滄/闁哄娉曞瓭闂佸疇顕х粔鐢垫崲濠靛鐐婇柕濞垮灪鐎氳棄鈹戦悙瀛樺鞍闁糕晛鍟村畷鎴﹀箻鐎靛摜顔曟繛杈剧到閸熷灝煤閿曞倸鐤炬い鎺戝閸欐捇鏌涢妷锝呭闁宠棄顦甸弻锝夊箳閹寸姳绮甸梺闈涙搐鐎氫即鐛幒妤€绠f繝鍨姃閹綁姊绘担鑺ヮ棄闁哥喍鍗冲畷浼村冀椤撶偠鎽曢梺鍝勬储閸ㄥ綊鏌嬮崶銊х瘈闁割煈鍋勬慨鍫ュ极閸儲鈷掑ù锝呮嚈瑜版帩鏁勯柛鎰靛枛缁€澶屸偓骞垮劚椤︻垱顢婇梻浣告啞濞诧箓宕规导鏉戠闁逞屽墴濮婃椽妫冨☉鎺戞倣婵犵鈧櫕鎼愰柍缁樻崌婵″爼宕卞▎鎴犳闂備礁鍟块惃婵嬪磻閹剧粯鐓曢柡鍥ュ妼婢х増銇勯敂鍨祮婵﹥妞藉畷顐﹀礋椤撶姴濮界紓鍌氬€哥粔宕囨濮樿埖鍋樻い鏂挎閻旂厧绀傞柣鎾冲閻庮參姊绘担鍛婂暈婵炶绠撳畷銏c亹閹烘垹鍔﹀銈嗗坊閸嬫捇鏌ㄩ弴銊ょ盎妞ゎ偄绻愮叅妞ゅ繐鎳庢禒顓㈡⒑閸濆嫷妲归悗绗涘倻鏄傛繝纰夌磿閸嬫垿宕愰弽顓炲瀭闁汇垺娼岄崶顒佸仺缂佸顕抽妷銉冨綊鏁愰崨顓ф濠电偟顑曢崝鎴﹀蓟瀹ュ牜妾ㄩ梺鍛婃尵閸犳牠鎮伴鈧畷姗€顢欑喊杈ㄧ秱闂備線娼ч悧鍡涘箠鎼达絿鐜绘繛鎴炵懅缁♀偓闂佹眹鍨藉ḿ褍鐡梺璇插閸戝綊宕㈡總绋跨厺闁圭偓妞块弫濠囨煕閹炬鎷戠槐鎶芥⒒娴e懙褰掑嫉椤掑嫭鍤屽Δ锝呭暙閻掑灚銇勯幒鎴濐伌婵☆偅鍨圭槐鎺楊敊閼测晛顤€缂備焦顨堥崰鏍春閳ь剚銇勯幒鎴濐仴闁逞屽厸缁舵艾顕f禒瀣垫晣闁绘劖顔栭崥鍛存⒒娴g懓顕滄繛鎻掔Ч瀹曟垿骞橀崜浣猴紲闂佺粯鐟㈤崑鎾绘煕閵娿儳鍩g€殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹 | More...
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠绘鐐村灴婵偓闁靛牆鎳愰悿鈧俊鐐€栧Λ浣肝涢崟顒佸劅濠电姴娲﹂埛鎴犳喐閻楀牆绗掑ù婊€鍗抽弻娑㈡偐閸愬弶璇為悗瑙勬礃閸ㄥ潡鐛鈧獮鍥ㄦ媴閻熸澘鍘炲┑锛勫亼閸婃牠宕濋幋锕€鍨傞柛锔诲幘閻牊銇勯弴妤€浜惧┑顔硷攻濡炶棄螞閸愩劉妲堟繛鍡樕戦ˉ锝夋⒒娴e懙褰掓晝閵堝鈧箓鎮滈悾灞界ウ闂佺鎻粻鎴犵矆鐎n偁浜滈柟鐑樺灥閳ь剙顭烽獮濠傗攽閸♀晜瀵岄梺闈涚墕濡稒鏅堕鍌滄/闁哄娉曞瓭闂佸疇顕х粔鐢垫崲濠靛鐐婇柕濞垮灪鐎氳棄鈹戦悙瀛樺鞍闁糕晛鍟村畷鎴﹀箻鐎靛摜顔曟繛杈剧到閸熷灝煤閿曞倸鐤炬い鎺戝閸欐捇鏌涢妷锝呭闁宠棄顦甸弻锝夊箳閹寸姳绮甸梺闈涙搐鐎氫即鐛幒妤€绠f繝鍨姃閹綁姊绘担鑺ヮ棄闁哥喍鍗冲畷浼村冀椤撶偠鎽曢梺鍝勬储閸ㄥ綊鏌嬮崶銊х瘈闁割煈鍋勬慨鍫ュ极閸儲鈷掑ù锝呮嚈瑜版帩鏁勯柛鎰靛枛缁€澶屸偓骞垮劚椤︻垱顢婇梻浣告啞濞诧箓宕规导鏉戠闁逞屽墴濮婃椽妫冨☉杈ㄐら梺绋垮瘨閸o絽鐣烽幋锕€绠婚悹鍥ㄥ絻閸炪劌顪冮妶鍡楀闁哥姴瀛╃粋宥夋倷椤掍礁寮垮┑鈽嗗灣閸樠勭妤e啯鍊垫慨妯煎亾鐎氾拷濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬儳顭烽弻锝夊箛椤掍焦鍎撻梺鎼炲妼閸婂潡寮诲☉銏╂晝闁挎繂妫涢ˇ銉х磽娴e搫孝缂傚秴锕璇差吋婢跺﹣绱堕梺鍛婃处閸撴瑥鈻嶉敐澶嬧拺缂佸鍎婚~锕傛煕閺冣偓閸ㄥ灝顕f繝姘櫜濠㈣泛锕﹂悿鈧梻鍌氬€搁悧濠勭矙閹达箑鐓曢柟鐑樺灍閺€浠嬫煟閹邦垰鐨哄褎姊荤槐鎺楊敊閻e本鍣伴悗娈垮枛椤攱淇婇幖浣哥厸闁稿本鐭花浠嬫⒒娴e懙褰掑嫉椤掑倻鐭欓柟杈惧瘜閺佸倿鏌ㄩ悤鍌涘闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛銈呭閺屾盯骞橀懠顒€濡介梺绋跨箲缁捇寮诲☉銏╂晝闁挎繂妫涢ˇ銉╂⒑濮瑰洤鈧宕戦幘鑸靛床婵犻潧顑嗛ˉ鍫熺箾閹存繂鑸归柛鎿冨弮濮婃椽鏌呴悙鑼跺闁告ɑ鎮傞弻锝夊箳閻愬樊娲梺鐟扮畭閸ㄥ綊鍩為幋鐘亾閿濆簼绨介柛濠勫仱濮婃椽鎳栭埞锝呯秺閹ê顫濋鑺ョ€洪梺鐟板⒔缁垶鍩涢幒鎳ㄥ綊鏁愰崨顔兼殘闂佸摜鍠撻崑鐐垫崲濞戞碍瀚氱憸蹇涙偩閻㈢鍋撶憴鍕缂侇喖鐭傞崺銉﹀緞閹邦剦娼婇梺鎶芥暜閸嬫捇鏌熺粙鍨殻婵﹥妞藉畷銊︾節閸愵煈妲遍梻浣呵圭换鎴犵矙閹捐绠查柕蹇嬪€曢獮銏$箾閹寸偟鎳呴柛姗嗕邯濮婃椽宕滈幓鎺嶇凹缂備浇顕ч崯鏉戠暦瀹曞洦鍠嗛柛鏇楁櫃缁ㄥ妫呴銏″闁规悂绠栭獮妤呮偐閻剙閰e畷鎯邦檪闂婎剦鍓氶妵鍕閳╁啰顦板銈冨灪椤ㄥ棝骞忛崨鏉戠闂婎偒鍘炬径锟�
闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠绘鐐村灴婵偓闁靛牆鎳愰悿鈧俊鐐€栧Λ浣肝涢崟顒佸劅濠电姴娲﹂埛鎴犳喐閻楀牆绗掑ù婊€鍗抽弻娑㈡偐閸愬弶璇為悗瑙勬礃閸ㄥ潡鐛鈧獮鍥ㄦ媴閻熸澘鍘炲┑锛勫亼閸婃牠宕濋幋锕€鍨傞柛锔诲幘閻牊銇勯弴妤€浜惧┑顔硷攻濡炶棄螞閸愩劉妲堟繛鍡樕戦ˉ锝夋⒒娴e懙褰掓晝閵堝鍊舵繝闈涱儐閸嬧晠姊洪崹顕呭剳闂傚嫬瀚槐鎺斺偓锝庝簽娴犮垻鈧鎸稿Λ婵嗩潖閾忓湱纾兼俊顖氭惈椤秴顪冮妶鍡樷拹闁绘娲栧畵鍕攽閻愬弶鈻曞ù婊勭箞閹繝鎮㈤崗鑲╁幗闂佸搫鍊圭€笛囧箟閹间焦鐓熸い鎾跺仩鐎氱増銇勯鈥冲姷妞わ箒娅曢妵鍕Ω閵壯冣叺閻庢鍣崑濠囥€佸璺虹劦妞ゆ帒瀚畵渚€鏌熼悜姗嗘當缂侇偄绉归弻宥堫檨闁告挾鍠庨锝夊礃濞村鐗氶梺鍓插亞閸犳捇宕㈤悽鍛娾拺閻犲洠鈧磭浠┑鐘灪鏋い锝呮健濮婄粯鎷呴搹鐟扮闂佽鎮傜粻鏍х暦娴兼潙绠涢柡澶庮嚦閿曞倹鐓曢柡鍥ュ妼閻忛亶鏌℃担绋挎殲闁靛洤瀚伴獮鍥煛娴h桨鎮g紓鍌欒兌婵儳鐣烽悽鍨潟闁规儳鐡ㄦ刊鎾煟閵堝骸鐏犻柛姗堢節濮婅櫣绮欑捄銊ь唹闂佹寧娲忛崹褰掝敋閿濆棛绡€婵﹩鍘藉▍婊勭節閵忥絽鐓愰拑閬嶆煛閸滃啰绉慨濠呮缁辨帒螣閸濆嫷娼旂紓鍌欐閻掞箓骞愰幎鐣屽祦闁圭増婢樼粈鍐┿亜閺冨泦鎺楀箯濞差亝鈷戦柤濮愬€曢弸鎴炵節閵忊埗顏勫祫缂傚倷鐒﹁彠濞存粍绮撻弻鐔衡偓娑欋缚缁犮儲淇婇妤€浜鹃梻鍌欒兌缁垱绗熷Δ鍛棷闁挎繂顦卞畵渚€鎮楅敐搴℃灍闁哄懏绻堥弻宥堫檨闁告挻绋撻崚鎺旀嫚濞村顫嶉梺闈涚箚濡狙囧箯婵犳碍鈷戦柛鎾村絻娴滅偤鏌涢悩铏磳闁糕晛锕鎾閿涘嫬骞堝┑鐘垫暩婵挳宕愰崸妤€鐭楅柛鏇ㄥ墯閸欏繐鈹戦悩鎻掝伀閻㈩垱鐩弻鐔风暋閻楀牆娈楅梺鍦帶缂嶅﹪鎮伴鑺ュ劅闁规儳鍘栨竟鏇熺節閻㈤潧孝婵炶绠撻幃鈥斥槈閵忥紕鍘卞┑鐐村灥瀹曨剟寮搁妶鍥╃<闁绘﹢娼ф禒閬嶆煛鐏炵偓绀嬬€规洟浜跺鎾偐閹绘帩鐎寸紓鍌氬€烽懗鍓佸垝椤栨粍宕查柛顐g箘閺嗭箓鏌涢锝嗙闁搞倕顑夐弻娑⑩€﹂幋婵呯凹闂佺粯绻愮粻鎾愁潖婵犳艾纾兼繛鍡樺焾濡差噣姊虹憴鍕偞闁逞屽墲缁夘喖煤椤忓懏娅囬梺绋挎湰閼归箖宕戝澶嬧拺濞村吋鐟ч崚鏉款熆鐠虹儤鍠樼€规洘鍨块獮姗€骞囨担鐟板厞婵$偑鍊栭幐楣冨磻濞戙垹绠洪柣銏犳啞閳锋垿鏌涘┑鍡楊仾婵犫偓娴煎瓨鐓熼柍鍝勶工閻忥箓鏌e☉鍗炴灈閾伙絽銆掑鐓庣仭閻庨潧鐭傞弻锝夋偐閸欏鈹涢悗娈垮枟閹歌崵绮╅悢鐓庡嵆闁靛繆妾ч幏缁樼箾鏉堝墽鍒伴柟璇х節楠炲棝宕奸妷锔惧幗濡炪倖鎸鹃崕鎰熼埀顒€螖閻橀潧浠滅紒缁橈耿瀵偊骞樼紒妯绘闂佽法鍣﹂幏锟�
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴闇夐柨婵嗙墛椤忕姷绱掗埀顒佺節閸屾鏂€闂佺粯蓱瑜板啴鍩€椤掆偓椤曨厾妲愰幘鎰佹僵閺夊牄鍔岄弸鎴︽⒑閸濆嫬鏆欓柣妤€瀚伴崺鈧い鎴f硶缁愭梻鈧鍠曠划娆撱€佸鈧幃娆撴嚑閸ㄦ稑浜鹃柛顭戝枓閺€浠嬫煥濞戞ê顏╁ù鐘欏懐纾兼い鏇炴噹閻忥妇鈧鍣崑濠囧箖閳哄啰纾兼俊顖炴敱鐎氬ジ姊婚崒娆戣窗闁稿妫濆畷鎴濃槈閵忊€虫濡炪倖鐗楃粙鎺戔枍閻樼偨浜滈柡鍌涱儥濞肩喎霉濠婂嫮鐭嬮柕鍥у楠炴ḿ鎹勬潪鐗堝媰闂備胶枪椤戝啴宕曢幎钘夌劦妞ゆ帒鍠氬ḿ鎰箾閸欏鐭掓鐐诧躬楠炴ḿ鎷犻懠顒€寮ㄥ┑鐘灱濞夋稖澧濋梺鍝勵儏闁帮綁寮婚悢鍏肩劷闁挎洍鍋撻柡瀣〒缁辨帡骞撻幒鎾充淮濠殿喖锕ら…宄扮暦閹烘垟鏋庨柟瀛樼箓椤姊绘担绛嬪殐闁哥姵鐗犻幃銉╂偂鎼达絾娈鹃梺鍦濠㈡﹢宕¢幎鑺ョ厽闊洦鍑归崵娆戠磽瀹ュ拑韬鐐插暙楗即宕奸悢椋庢濠电姰鍨煎▔娑㈡儗閸儱鑸归柣銏犳啞閳锋垿鎮归崶銊ョ祷闁搞倛浜槐鎾愁吋閸涱噮妫﹂悗瑙勬磻閸楀啿顕f禒瀣垫晝闁靛牆瀚悷婵嬫⒒娴e憡鎯堥悶姘煎亰瀹曟洟寮婚妷锕€浜楀┑鐐叉缁剁柉銇愰幒鎾充簵闁硅壈鎻徊楣冨箟閻撳簶鏀介柣鎰綑濮e棝鏌涢妷锝呭闁告﹢娼ч—鍐Χ閸℃﹩姊块悗瑙勬礈閺佸摜鍒掗敐澶婄睄闁逞屽墴楠炲牓濡搁敂鍓х槇闂佸憡渚楅崳顔界閳哄懏鈷戦柛娑橈功婢ь剟鏌eΔ鍐ㄐ㈡い鏇秮楠炴﹢顢欓挊澶夌盎闂備礁鎲$缓鍧楀磿鏉堚晛绶ら柛顭戝枓閺€浠嬫煥濞戞ê顏╁ù婊冦偢閺屾稒绻濋崘銊т紝閻庤娲滈、濠囧Φ閹版澘绠抽柟鎯х摠閻濇牗淇婇悙顏勨偓鏇犳崲閹扮増鍋嬮柛鏇ㄥ灠閻掑灚銇勯幋锝嗙《妞わ讣绠撻弻宥囨嫚閺屻儱寮板Δ鐘靛仦閿氶柣锝囧厴瀹曞爼鎳滈弫灞熷啠鏀介柨娑樺娴滃ジ鏌涙繝鍐⒌妤犵偞鍔栭妶锝夊礃閵娧呭炊闂佺懓鍚嬮悾顏堝礉瀹ュ纾婚柣鏃囶問瑜版帗鍋傞幖杈剧稻閹插ジ姊洪幎鑺ユ暠闁搞劌娼″璇测槈濡攱顫嶅┑顔筋殔閻楀﹪寮ィ鍐╃厽閹艰揪绱曟禒娑㈡煟閻斿弶娅婄€殿喛顕ч濂稿醇椤愶綆鈧洭姊绘担鍛婂暈闁规悂绠栧畷鐗堟償椤垶鏅梺鎸庣箓濡稓寮ч埀顒€鈹戦鏂や緵闁告ǹ妫勯埢宥夊閵堝棌鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻愰湁闁稿繐鍚嬬紞鎴︽煕閵娿儱鈧骞夐幖浣瑰亱闁割偅绻勯悷鏌ユ⒑缁嬪尅宸ラ柣鏍с偢瀵鈽夐姀鈺傛櫇闂佺粯蓱瑜板啯鎱ㄦ惔銊︹拺婵懓娲ら埀顒侇殜瀹曟垿骞橀懜闈涘簥濠电娀娼ч鍡浰夐崼鐔虹闁瑰瓨绻傞懜褰掓煕閹炬彃宓嗘慨濠冩そ瀹曘劍绻濋崨顓ф缂傚倸鍊哥粔鎾晝椤忓牊鍋樻い鏇楀亾鐎殿喕绮欐俊鎼佹晜閸擃灝銈夋⒒娴e憡鍟為柟绋挎瀹曘儵鏌ㄧ€n亞浠哥紓浣虹帛缁诲倿鍩㈤幘璇插瀭妞ゆ柨褰為崫妤呮⒒娓氣偓濞佳囨偋婵犲洤绠栭柛灞惧嚬閸ゆ洖鈹戦悩宕囶暡闁稿瀚伴弻锝夊箣閻忔椿浜鎼佸磼閻愮补鎷洪梺鍛婄☉閿曘儲寰勯崟顖涚厱閻庯綆浜滈顒併亜閵堝懎鈧灝顫忔繝姘<婵炲棙鍩堝Σ顕€姊虹涵鍜佸殝缂佺粯绻傞悾宄懊洪鍕槰濡炪倖妫侀崑鎰版晬濞戙垺鈷戦柣鐔告緲閳锋梻绱掗鍛仸闁诡噯绻濋幃銏ゆ偂鎼达綆鍟囨繝鐢靛剳缂嶅棝宕滃▎鎾崇劦妞ゆ垶鍎抽埀顒佹礀閻滃宕稿Δ鈧粻娑㈡煟濡も偓閻楀繘宕㈤棃娑辨富闁靛牆妫欓ˉ鍡涙煕鐎n偄濮嶇€规洘妞介弫鎰板炊閿濆懍澹曢柣鐔哥懃鐎氼厾绮堥崘鈺冪闁肩⒈鍓欓弸娑㈡煟濞戝崬鏋熼柟顖涙婵℃悂鏁冮埀顒勬儌閸曨剛绡€闁靛骏绲剧涵楣冩煠濞茶鐏﹂柣娑卞櫍楠炴帒螖娴e弶瀚藉┑鐐舵彧缁叉寧鐏欓梺璇″枟閸ㄥ湱妲愰幒鎾村閻熸瑥瀚崬澶愭倵濞堝灝鏋熺憸鏉垮暣閵堫亝瀵奸弶鎴﹀敹濠电娀娼уú鈺冩閵忥紕绡€闁汇垽娼у瓭闂佹寧娲忛崐婵嬪箖瑜庣换婵嬪炊閵娿儰绨甸梻浣告惈濞层劑宕伴崱妯碱洸婵犲﹤鐗婇悡娆撴煛婢跺﹦浠㈡い锝嗗▕閺岀喖顢欓崹顔绘睏缂備浇椴哥敮锟犲箖閳哄啰椹崇痪顓炴噳閸嬫捇宕稿Δ浣哄幐闁诲繒鍋涙晶浠嬪煡婢跺浜滄い鎰剁悼缁犵偞銇勯姀鈽呰€块柟顔规櫊瀹曟﹢宕f径灞介叡闂傚倸鍊搁崐宄懊归崶顒夋晪闁哄稁鍘肩粣妤佺箾閹搭厽绶涚紓宥嗙墪椤法鎹勯搹鍦紘缂備胶濮靛Λ鍐蓟閿濆绫嶉柛灞捐壘娴犳﹢姊虹紒妯哄闁挎洩绠撻獮澶岀矙濞嗘儳鎮戦梺鎼炲劗閺呮瑧绮径鎰拺闁煎鍊曢弸娑㈡煕鐎n亷宸ラ柕鍡樺笚缁绘繂顫濋鐘插妇闂備礁澹婇崑鍛崲閸岀偛姹叉繛鍡楃箚閺€浠嬫煥濞戞ê顏繛鍛礈缁辨帗娼忛妸銉﹁癁濡炪們鍨洪悷锔剧紦閻e瞼鐭欓柛顭戝枛瀵嘲鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒夋晬婵犻潧鐗呯花鐑芥⒒閸屾瑧顦﹂柟娴嬪墲缁楃喎螖閸涱厾鐛ュ┑掳鍊愰崑鎾绘煃鐠囪尙效濠殿喒鍋撻梺闈涚墕濡矂骞忓ú顏呯厽闁绘ê鍘栭懜顏堟煕閺傝儻瀚伴柍璇茬Ч楠炲洭鎮ч崼銏犲箥闂備礁鎲¢崹顖炲磹閺嶎偀鍋撳鐐