觸控,其實在我們生活周遭已經應用的不少,例如在ATM提款機的提款介面,已經很多都改成觸控的方式。觸控的確可以讓我們在操作器具時,可以用更直觀的方式來操作。而隨著Windows 7於2009年10月上市後,其內建的觸控、多點觸控功能,搭配能夠支援觸控、多點觸控的電腦,可以讓我們用更直觀的方式來操作電腦。此篇就來介紹一下Windows 7裡面的觸控、多點觸控操作方式,以及一些軟體使用的情境。
目前可以支援觸控的有很多種方式,目前大部分比較常見的是電容式、電阻式兩種。以下小喵稍微比較一下:
至於哪種好,青菜蘿波各有各的優點。有人需求是靈敏,有人想要可以用觸控筆方便寫字。大家在挑觸控筆電的時候,可以參考一下。
以往我們操作電腦,大部分是透過滑鼠、鍵盤來操作,此外還有筆記電腦的觸控板、平板電腦的筆。而當我們使用觸控、多點觸控的方式來操作,可以操作大部分滑鼠、鍵盤的動作。如果您對於滑鼠、鍵盤的操作很熟悉,這裡在介紹觸控的動作時,會補充他等同滑鼠的哪個操作方式。
●單擊:直接用手指點目標物,同滑鼠左鍵單擊。(例如:點選超連結) ●雙擊:連續雙擊目標物兩下,同滑鼠左鍵雙擊。(例如:開起桌面應用程式) ●按住不放:點選某目標物或者空白處,單點後按住不放,同滑鼠【左鍵】(例如:點選某圖示不放,開啟內容功能表) ●拖曳:按住某目標物並拖拉(例如移動某圖示),或者拖拉內容平移(例如:放大圖時,移動可視範圍)
除了基本的操作以外,也結合了平板電腦時的【筆勢】功能。您可以從【控制台】→【硬體和音效】裡面,找到歸類於【手寫筆與觸控】的部分,點選【設定筆觸執行特定工作】來查看與設定:
●基本:(預設開啟) 右:上一頁。 左:下一頁。 上:往上拖曳。 下:往下拖曳。
●自訂:(預設關閉) 右上:複製。 右下:貼上。 左上:刪除。 左下:復原。
預設向右(上一頁),向左(上一頁)這樣的設定方式,是依照我們翻書的習慣:往右翻上一頁,往左翻下一頁。不過在對照到網頁的上下頁按鈕時,卻發現與網頁的上下頁習慣卻又相反。
如果有用過Vista裡面的筆勢的人,就會發現其實以前Vista的設定是比照網頁的按鈕(往左上一頁、往右下一頁)。這種習慣其實見仁見智,如果用習慣以前方式的人,可以透過【自訂】的方式來改成符合自己的習慣。去更改您想要的動作。
多點觸控是Windows 7新加入一個重要的功能,透過多點觸控的新穎操作方式,可以讓我們在操作電腦時,除了直觀義學外,也會覺得特別的酷炫。而Windows 7可以支援的點數,只要硬體驅動程式可以符合Windows 7對於多點觸控的要求,能夠有幾點,Windows 7 都支援唷。
●兩指基本: 放大/縮小:透過兩指距離放大縮小,來進行控制目標的放大縮小。 旋轉:透過兩指相對位置角度的不同,來調整目標物的旋轉。
●其他: 片:這個功能小喵在一個3D桌面的軟體看到。 五指收:將範圍內的成為一個Group(DumpTop)。 其他:或許還有其他的應用方式,就等待軟體廠商來發揮創意開發囉。
從Windows 7開始有考量觸控的操作後,一些軟體的設計考量會考慮觸控的操控方便,將圖示做的大一點,最明顯的就是Windows 工具列的圖示明顯的變大顆了。但是有些舊的軟體,他的圖示或者字體較小,會讓人感覺好像不太容易點選。而Windows 7很親切的幫我們想到了這點,因此可以開啟虛擬滑鼠來輔助我們的操控。不過這個設定預設沒有開啟,讓小喵在此向大家介紹一下如何開啟/關閉這個設定,以及如何使用。
●開啟設定:【控制台】→【硬體和音效】,然後在【手寫筆與觸控】區中的【變更觸控輸入設定】。
●移動:虛擬滑鼠下半部。 ●左鍵:虛擬滑鼠上左半部。 ●右鍵:虛擬滑鼠上右半部。
使用觸控的時候,當有需要輸入的時候,有兩種圖示可選。當點選鍵盤圖示 時,就會出現一個虛擬的鍵盤:
而要切換中英文輸入,類似實體的複合鍵,不過不需要同時,只需要依序點選【Ctrl】與【空白】就可以切換了:
除了可以用虛擬鍵盤來作為輸入的方式外,此外可以使用觸控的方式,進行手寫輸入,虛擬鍵盤與手寫的切換,可以用工具左上方的地方做切換。手寫的畫面如下:
●中文:預設的狀態。 ●英文:下拉【英文字】,然後選擇要【英數混合】【數字】【英文】 ●符號:可以直接點選右邊的【符號】就會出現如下的符號表,此時直接點選需要的符號即可。
●公式:另外還有一個非常特別的,就是輸入公式。Windows 7特別內建手寫輸入功式的介面。不過這個工具並沒有在一般的狀況可以呼叫,必須從左下角的【Windows按鈕】→【所有程式】→【附屬應用程式】裡面的【數學輸入面板】如下圖:
要輸入數學的公式,可以直接用手指在此區域內書寫即可。
在Windows 7裡面的工具列,第一眼看到就會覺得每個圖示都好大顆。沒錯,這就是為了方便當使用觸控的時候,可以方便的點選而做的貼心設計。而我們使用滑鼠,可以點選工具列圖示右鍵,可以看到最近瀏覽相關的歷史網頁或資料夾,而Windows7也很貼心的設計了快速上滑的功能,讓我們可以用手指頭做到相同的動作。請參考下方的操作示範影片。
在操作一般視窗的時候,操作的方式與一般使用滑鼠的方式類似,可以點選視窗上方做移動視窗,另外在移動時,當手指碰到畫面上方,就可以將視窗放到最大,當放到最大時,點選視窗上方往下拉,就可以回到視窗原本大小,而手指碰到畫面左方,則視窗會開在左半邊,變成半個螢幕大小,相同的,當移動時,手指碰到畫面右邊邊緣,則會變成右半邊大小的視窗。
另外當畫面開啟很多視窗時,如果要在其中一個視窗工作,想把其他的視窗一起縮到最小,只需要點選該視窗的上方,然後將視窗搖晃幾下,其他的所有視窗就會縮到最小,相關的操作請參考以下的操作影片示範。
當使用觸控的方式瀏覽網頁時,可以感覺非常非常的貼心方便,當我們要捲動網頁時,可以點及網頁中任一空白處不放,並且拖拉網頁,手指動多少,網頁就捲動多少。使用上非常的直觀。
而如果網頁的文字太小,我們可以透過兩指的操作,立即將網頁放大或縮小。而如果我們要看的東西在網頁比較下面的位置,也可以用手指快速的撥一下往上,網頁就很快的把下面的部分捲動上來,真是方便直覺的設計啊。而要進行上一頁、下一頁的切換,除了可以點選瀏覽器的按鈕外,也可以用手指往左撥進行上一頁,往右撥進行下一頁。
此外,當我們在瀏覽Google地圖的時候,我們也可以使用兩指的擴大去操作地圖的放大、縮小,移動。甚至於最近有的街景,也可以很直覺得去移動他。請看操作示範影片。
EMail操作時,一樣的可以做放大、縮小,拖曳的動作。而如果有些設定的項目比較小,也可以開啟虛擬滑鼠來做操作。詳細的操作過程請參考以下的示範影片。
小畫家是可以支援多點做畫的,小喵本身的NB目前只有隻元兩點,可以透過兩手手指同時創作,也可以與朋友共同在一個畫面一起創作。另外也可以從照片裡面拖拉照片到小畫家,然後用手指去寫上祝福的話,做出獨一無二的特別卡片,寄給朋友。操作方式請參考示範影片。
當我們點選視窗紐,點選照片來瀏覽照片,會開啟檔案總管,並且呈現照片預覽的方式。我們可以透過多點觸控,去控制預覽圖片的大小,想要看多一些照片做選擇,可以將預覽圖片縮小,想看清楚一些,也可以將預覽圖片透過多點觸控的方式將圖案放大。 而使用內建的照片檢視去瀏覽照片時,可以透過兩指來做照片的放大縮小,或者是做照片的旋轉,而內建的軟體旋轉的角度是固定的,向右或向左轉90度。也可以往左撥,或往右撥進行上一張、下一張的操作。請參考示範影片。
為了豐富多點觸控的操作,微軟以隨機附贈的方式,提供TouchPack的軟體讓使用者體會多點觸控的魔力,裡面包含了六個很不錯的軟體可以好好的體驗多電觸控的魅力。
●Surface Lagoon:這式螢幕保護軟體,將我們的螢幕變成一個水塘,可以看到有許多的小魚在水塘中悠游。當我們用手去碰觸螢幕時,就如同用手撥到水面般,會泛起陣陣的漣漪,小魚們也會與我們捉迷藏。
●Surface Globe:這是一個類似Google地球的軟體,可以瀏覽地圖,我們可以用兩個手指,非常流暢的去放大縮小、移動、旋轉地圖。而且這軟體支援瀏覽的檢視方式,在瀏覽的時候也非常的順暢。有個比較特別的是,當我們去瀏覽美國地圖時,她們的城市裡的建築物都有做3D模型,此時用鳥覽模式,並且用多點觸控去控制,猶如我們搭了直升機在城市裡四處優游,真是令人驚艷啊。不過可惜的是目前這套軟體尚未支援中文,所以台灣的街道都是用英文顯示,而且台灣目前還沒有3D的建築物模型在裡面。期待未來能有更完整的3D建築模型與中文的支援。
●Surface Collage:這套軟體是一個桌面製作的軟體,可以利用兩指,對於照片做任意的角度的旋轉與放大縮小,操作上非常非常的流暢。期待未來的影像處理軟體也能夠有相同的操作方式。
●Rebound:這是一個類似遊樂場大型遊樂設施的遊戲。我們可以用兩個手指碰觸兩個觸控球,此兩球中間就會連起一段電光,可以用來撥打或者接球。如果螢幕可以支援4點觸控的話,還可以兩個人各玩一邊!
●GardenPond:這個軟體是在一個水塘中,撥水產生漣漪,來波動紙船前進,而水塘中有一些燭火,當紙船碰到燭火,會被燒起來,此時要趕快潑水將火潑熄。還不錯的應用。
●Blackboard:這一套也是個遊戲,我們要設定他所提供的一些工具到畫面中,想辦法讓氣球可以漂到燈泡處即可過關。
●甲蟲珠珠:有個蠻有趣的遊戲,很像祖馬,只要三個以上相同顏色的球就可以消掉,這個遊戲透過手指用觸控來玩,還蠻有趣的唷!
●Corel WinDVD 2010:可以透過多點觸控的方式,在撥放影片的時候,將影片的內容做放大縮小,也可以透過多點觸控轉動的方式,來控制音量。
●PowerDVD 9:這個目前雖然沒有針對多點觸控來設計操控的模式,不過有劇院模式可以切換成按鈕較大的方式,可以方便使用手指來操作各項功能。
●YouCam:視訊軟體,可以做很多的變化,雖然此軟體也沒有針對多點觸控來設計操作的模式,不過各項的操控的圖示都還蠻大的,也可以在視訊中在畫面用手指寫一些文字。
(本篇轉載自RunPC 2009/12月線上教學)
前陣子受命準備教材,幫公司的同事上jQuery的課程,於是小喵準備了約6個小時的課程,內容包括jQuery的簡介與應用,以及一些說明用的範例程式。
規劃的課程章節如下:
相關的講義內容與範例程式,請點選以下的下載。
jQuery講義、範例程式
今天剛好有個需求,有個複雜的Table要來做RowSpan的動作,程式是ASP。如果寫在Table產生時來處理,一來會讓程式看得比較混雜,二來也不好處理。因此乾脆來試著寫個jQuery的fn來做這件事情。
程式上並不複雜,呼叫者必須是該Column的所有物件集合,然後透過each逐一檢查,看看內容是否與上一個相同,而有不同的時候,記錄為要做RowSpan的物件,其他的物件就hide()起來。以下是RowSpan的fn
將這一段程式碼存為TableRowSpan.js,方便未來要用的時候直接引用。
以下就做個範例來說明如何使用他。有兩個按鈕,分別針對第一個Column與第二個Column來處理RowSpan,透過自定的屬性,方便抓出第1個Column與第2個Column。以下是完整的測試成程式碼,各位需要測試時,請將他存為htm檔案即可
承繼之前的系統分層概念(請參考:淺談多層式架構 (Multi Tiers)),在資料存取層中,應該只有資料的存取,沒有商業的邏輯。小喵之前的系統並沒有這一層,以往都是商業邏輯混搭資料存取。這一篇就來嘗試撰寫資料的存取層。順便開始程式撰寫部分的介紹。
為了方便未來程式撰寫不用開好幾個VS,我們透過方案的方式可以將資料層、商業邏輯層、介面層(Web Project)集中在一個方案中。所以目前先介紹怎麼使用方案。
先來看圖說故事:首先要建立一個空的方案
接著在空的方案上新增一個專案
此時在方案總館中,小喵只看到專案而沒有看到方案,要加入第二個專案時,需要從功能表中的檔案來做
加好第二個專案後,在方案總館裡面就會看到如下圖這樣
我們在方案中再增加Web站台,最後就會成這樣
未來維護時,就可以直接開啟方案就能夠在此方案中維護各層的程式。
接著開始來設計資料存取層。資料存取層應該只負責資料的存取,不包含任何的商業邏輯。因此小喵回顧一下以前撰寫的程式中,有關資料存取的部分有哪些
撰寫COM+元件的方式、步驟,請大家參考一下小喵以前的文章【N-Tiers開發方式(如何使用VB.NET撰寫COM+元件)】
連接當有資料存取層後,連接字串只會存在資料存取層中,在商業邏輯層與展現層將不會用到連接字串。而未了修改方便,小喵會將連接字串使用文字檔的方式將設定檔放在實體硬碟中的某個位置(例如:C:\MyConnStr),並且設定其附檔名為ini,此位置可以授權給某特別的帳號可以存取,然後將此帳號設定為元件的識別帳號。這樣元件就可以透過COM+切換身分的方式,透過此帳號取得連接字串。而這個資料夾沒有網路分享、沒有Web分享,一般的帳號都無法存取,甚至實體切層時,他與商業邏輯層、展現層不同的主機。用這樣的方式來提高連接字串的安全性,也方便未來如果更改設定時,可以直接在Server上變更,不用修改程式。
相關的程式如下:
為了防止SQL Injection,透過Parameter的方式已經變成常識了。所以本來小喵預計寫的時候,直接傳入sqlParameter的Collection物件集合,就可以運用了,不過事與願違,測試過程中小喵一直遇到Proxy通道未開啟無法傳遞的問題。COM+的方式可以用物件(Object)來當做Function的參數傳遞,但是前提是這個物件要用COM+的方式定義撰寫。因此小喵再撰寫一個類別,用來作為傳遞Parameter參數的媒介。這是初體驗下撰寫的程式碼,還不算完整,相關程式碼如下
準備工作大致告一段落,接著終於要來撰寫資料存取的元件。首先是讀取的部分,相關程式碼如下:
以上這些只是初步的測試,小喵心想,應該還要個傳入SQL語法並傳回一個DataSet的Function。不過這個部分就帶下回有機會再分享。
以上程式撰寫完成後,當然還須將元件註冊到元件服務中,註冊的部份請參考以前小喵所撰寫的這篇【N-Tiers開發方式(COM+元件的註冊、修改)】
其實這樣的方式,小喵個人覺得並非完整的資料存取層。小喵個人覺得資料存取層的特性有以下:
小喵的方式,第三個並不符合。因為所有的SQL語法還是從商業邏輯層組好後,往這裡丟過來運作,然而不同的資料庫,盡管都是用SQL語法,但是語法上或多或少還是有差異,因此更換資料庫的時候,還是必須修改商業邏輯層裡面的SQL語法。小喵曾想過,或許可以直接把LINQ用LINQ包裝後,讓商業邏輯層透過LINQ的方式存取資料庫。不過小喵測試撰寫維護時還是會有些問題。似乎沒有辦法將LINQ在COM+多層架構運用的很好。這點小喵還要進一步研究。
寫到這邊到此稍作擱筆,下面還要介紹商業邏輯、展現層的相關程式,再來看怎麼實際運作成果。
緣起
有時候需要整併一些資料時,UNION ALL可以是個不錯的技巧。本篇用一個範例來說明這樣的應用
範例題目:
假設有四家商店,被其中一家整合了,於是需要將四家商店的資料整合。假設目前四家店都可以整理出(機種MODEL、數量QTY、單價PRICE),而每一家店,都有賣一些獨特的機種,是其他三家所沒有的。那麼如果希望整理出以下這樣的資料,大家會怎麼整理呢??
機種MODEL、店家A金額A_AMT、店家B金額B_AMT、店家C金額C_AMT、店家D_AMT
例如這樣的資料
SHOP_A
SHOP_B
SHOP_C
SHOP_D
希望的結果
我們可以
1.先計算個家電的各機種合計
2.然後每家店的查詢結果,用0代表其他的店
3.將這些資料UNION ALL聯集起來
4.透過GROUP BY , SUM將相同機種的資料合併計算
相關語法如下
這樣的應用小喵用得還蠻多的,提供給各位網友參考囉!!