none
圖文並茂的控制項 RRS feed

  • 問題

  • 本人在開發詞典類的資料庫應用系統,用Access開發.

    然而Access內建的控制項,似乎沒有支援圖文一同顯示的功能?就我所知,如richbox又不支援unicode字元。而ole結合或未結合物件框,在瀏覽時,執行載入內容,似乎也不順暢,也不方便。畫面看來很呆滯遲緩,且若要用ole的應用程式,載入的時候,更沒有一般控制項瀏覽資料時來得順暢,或者能夠不落痕跡,而容易讓人看出破綻;或者避免使用者手動編輯。....因此,很想知道有無較周全的解決或替代方案。或如何撰寫ole物件框的設計程式,使得它載入顯示時更顯流暢,也不易被使用者手動操作與編輯。

    因為VBA,本人也只會一點VB的基礎。可否請先進指教,有沒有類似功能的物件可使用,或如何撰寫,甚至改用什麼工具開發會更容易達到目標。感謝感謝。  初學者台北孫守真任真甫敬上

    -----(以下為原來內容,以上謹遵改寫)

    本人在開發詞典類的資料庫應用系統,用Access開發.

    然而所知Access內建的控制項,似乎沒有支援圖文並置共顯的功能?所知者如richbox又不支援unicode字元。而ole結合或未結合物件框,在瀏覽時,執行載入內容,似乎也不順便。畫面看來很遲滯,且若要用ole的應用程式,載入時,更沒有一般控制項瀏覽資料時的順暢,或不落痕跡,讓人看出破綻,或避免使用者手動編輯。....職是之故,很想知道有無較周全的解決或替代方案。或如何撰寫ole物件框,載入顯示時較為流暢,也不易為使用者編輯。

    因為VBA,本人也略會些VB的基礎。可否請先進指教,有沒有類似功能的物件可使用,或如何撰寫,甚至改用什麼開發會更容易達到目標。感謝感謝。  初學者台北孫守真任真甫敬上


    任真
    • 已編輯 任真 2012年5月27日 上午 04:56 改寫
    2010年12月13日 下午 12:53

所有回覆

  • 最簡單的方式就是在PictureBox上填字, 例如:Putting text into an image control
    2010年12月14日 上午 02:32
  • 真的非常感謝您這麼快給我的回覆.想都沒想過,很受益.先去了解一下,試試.若有問題,再請教您與諸位先進!

    我剛才發現有adobe的開發指引網頁,也類似咱們這,也在插入物件時發現有些adobe的物件可以應用,只是不知如何使用,不知對於圖文並茂的顯示,可有幫助?

    感謝您了.

    本來還以為發錯地方了(似乎<辦公室軟體與程式開發(Office System Development)>板塊較適合)沒想到這裡依然這麼快有適應的解答.初來乍到,倍感勝讀十年.


    任真
    2010年12月14日 下午 01:55
  • 對了,因為我原來用Access內的textbox,可以因使用者選取某些字詞或插入點停駐在某字前而作對應的檢索.(由程式自動依其字彙檢索出結果以表單呈現)

    但如果用此picturebox,我怕是無法如此取得其選取字串(可能根本無法選取,或VBA無法抓到其選取之字)而進行檢索呈現了....是否如此?(我也會先研究先.先生若有空,即時回答,當然受用額慶^)^!)


    任真
    2010年12月14日 下午 01:59
  • 連結中的文件用的是adobe支援的功能, 如果可以拿給Access程式用當然也是OK的

    2010年12月15日 上午 05:47
  • 如果您說的是按F1鍵做說明求助的話, 之前加到圖中的文字的做法因為已經變成圖的一部分了, 所以無法提供求助了
    2010年12月15日 上午 05:49
  • 我看插入物見及程式引用參照都有adobe的選項,理論上應該是可以的.只是不知如何引用,又有那些物件、事件、方法、屬性可供運用罷了.恐怕就要參攷它的相關說明及文件(剛才在物件瀏覽裡按F1鍵也按不出說明來.恐怕得參攷類似先前那樣的網站了.)

    adobe的物件類別叫

    AcroPDFLib.AcroPDF 其下有LoadFile方法應即可載入pdf檔案作顯示.想應可將圖文並茂的檔案載入,然而可不可以也供檢索或取得其內文字作為引數以執行查檢,則恐怕又是一層問題了...

     

     


    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?
    2010年12月15日 上午 11:00
  • 我剛才試了試,先在表單插入一個ActiveX控制項Adobe PDF Reader(Name:ActiveXCtl257)

    然後運用Access此控制項的Object屬性,引用adobe的物件(AcroPDFLib.AcroPDF)的屬性

     

    程式如下:

    Private Sub ActiveXCtl257_GotFocus()
        With ActiveXCtl257
              .Visible = True
              .Object.LoadFile ("D:\工作\打字校對\常見部件.pdf") '關鍵是這一行!
              .Height = 7995
              .Width = 12915
        End With
    End Sub

     

    可以順利載入目的檔案,顯示在表單上.但除非其原pdf檔的文字可供選取,否則也無法選取文字.

    製作了一個可選取文字的pdf檔,再看物件瀏覽內(程式視窗按下F2鍵跑出的那個),似乎沒有擷取選取文字的方法或屬性....看來這也不行...

     

    這是用插入ActiveX控制項的.改天用結合物件框再試試..

    參攷:

    http://www.eggheadcafe.com/forumarchives/VisualBasiccontrols/Jul2005/post23412556.asp

     


    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?
    2010年12月15日 上午 11:52
  • 類似按F1鍵.但F1鍵對應到說明文件的功能,我還不會寫.我這個功能只是指定給F3鍵,作為搜尋的依據.因為要搜尋對象的引數,所以不能只是圖片.如先生所云則當係主要仍作成圖來呈現,而非圖文並置的形態--如pdf或word文件那樣.這樣看來,picturebox的方法,可能不太適合我所需要的,不過若是作為圖中有文的呈現方式,也算是多學習一項技能了.有空仍要繼續學習下去.

    我昨天依先生指示,註冊了那網站,看了他的說明,略懂又不懂.結果找不到picturebox控制項,本來還在想要怎麼引用system.windows物件,才能使用picturebox,沒想到VB6裡就有此控制項,我倒疏忽了.呵呵.只是時間不允,先擱著,有空要繼續研究,看如何操作才是.

     

    看來若真要圖、文並置於一個控制項內,目前好像也只有藉助word或pdf檔之類的ole automation了. 怎麼樣做到與原系統"天衣無縫"的接合,倒是又一門學問了,也是在下正所亟需的了.

    謝謝先生亹亹不倦地指導,啟發良多. 沒先生刺激,我也沒料到用pdf的activeX控制項玩玩了.也較認識了object此屬性,如前所示之程式碼,還是我第一次試用的呢.幸成功無bug.


    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?
    2010年12月15日 下午 12:36
  • 今天開始自學VB6,才知道原來用print方法可以設定print出來字的顏色.這大概是tihs兄所指的吧?

    但發現好像切換視窗後,此print的內容也消失了.如何解決呢?


    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?

    2012年5月26日 下午 04:01
  • 線上手冊有寫。


    <sup></sup>AutoRedraw 屬性

    傳回或設定從圖形方法永久圖形的輸出。

    語法

    object.AutoRedraw [= boolean]

    AutoRedraw 屬性語法具有以下幾個單元:

    單元 描述
    Object 物件運算式,其值為「適用於」清單中的某個物件。
    Boolean 布林運算式,指定如何重繪物件,「設定值」中有詳細描述。

    設定值

    boolean 的設定值如下:

    設定值 描述
    True 使 Form 物件或 PictureBox
    控制項的自動重繪有效。圖形和文字輸出到螢幕,並儲存在記憶體的影像中。該物件不接受 Paint
    事件,必要時會用儲存在記憶體中的影像進行重繪。
    False (預設值) 使物件的自動重繪無效,且將圖形或文字寫到螢幕上。當需要重繪該物件時,Visual Basic 會啟動物件的
    Paint 事件。

    請注意

    使用下列圖形方法工作時,如:Circle,Cls,Line,Point,Print
    Pset,此屬性極為重要利用這些方法,在改變物件大小或隱藏在另一個物件後又重新顯示的情況下,設定 AutoRedraw
    True!A將在 Form PictureBox 控制項中自動重繪輸出。

    執行階段在程式中設定
    AutoRedraw,可以在繪製永久圖形 (如背景顏色或格線) 和暫存圖形之間切換。如果設定 AutoRedraw
    False,以前的輸出成為背景螢幕的一部份。當 AutoRedraw 設定為 False,用 Cls
    方法清除繪圖區時不會刪除背景圖形。把 AutoRedraw 改為 True 再用 Cls
    將清除背景圖形。

    附註 如果設定 BackColor
    屬性,所有圖形和文字,包括永久圖形,都會被清除。一般來說,除非 AutoRedraw 設定為 True!A所有圖形都需用
    Paint 事件顯示。

    要取回在 AutoRedraw 設定為 True 時建立的永久圖形,用 Image
    屬性。當 AutoRedraw 設定為 True 用物件的 hDC 屬性可以將永久圖形傳輸給
    Windows API

    如果設定表單的 AutoRedraw 屬性為 False,然後最小化該表單,則將
    ScaleHeight ScaleWidth 屬性設定為圖示大小。在 AutoRedraw 設定為 True
    時,ScaleHeight ScaleWidth 保持為復原視窗的尺寸。

    如果設定 AutoRedraw 屬性為 FalsePrint 方法將在諸如 Image
    Shape 等圖形控制項的頂端輸出。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2012年5月26日 下午 04:57
  • 謝謝心冷兄總是如是即時應答.感念.

    尚未細讀,先說聲謝.

    若真可行,如是製成ActiveX控制項,或者可以用Access引用了.我會留意試試

    這也是舊帖,如今方遇先生,甚幸.所以人生何處不相逢,只要一絲尚存,永不放棄.焉知那個時候,又得溫故知新  任真載拜


    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?

    2012年5月27日 上午 03:12
  • 不好意思,在下看過了您最近的討論內容,您的國學造詣想必在台灣是相當高水準的。

    但是這裡是資訊技術論壇,在這裡活動的網友們不一定有像您這麼高的國學造詣,而未必看得懂您的流水行文。

    所以,如果可以的話,請用平常人使用的白話文來說明您的問題或回應,以利多數網友能閱讀並理解您的問題,太多的成語或文言文不會讓您的問題較快獲得解決。

    謝謝。


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年5月27日 上午 04:31
    版主
  • 謝謝小朱先生,已謹遵改寫。入境隨俗,本自必然。是在下唐突冒犯了。只是習氣難改,以後會多留意。畢竟來此重點是要解決問題,學習新知,不是來賣弄學問與文章。只是有時想寫典雅點,也是對諸位未相識之先進,一點恭敬心罷了,不想一開始便預設別人的語文程度,就一定不懂文雅的辭意,所以才會畢恭畢敬,字勘句酌。現在既得先生告知本地常態與習慣,日後會留意提問的方式與措辭。希望能順利得到更多高手先進的回應與幫助。畢竟大家也是花了時間與精力幫我解答了,給人方便,也才是給己方便了。

    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?

    2012年5月27日 上午 05:02
  • 用冒犯也太過,只是請您 "入境隨俗" 而已 :)


    學習不是查個 Google 套個書上的範例就算了,而是去熟悉了解每個程式碼背後的意義,否則就算學個幾百年,它也不會是你的。
    =================================
    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure

    2012年5月27日 上午 05:41
    版主
  • 真的很謝謝您們.來這裡感到很溫馨!有問必答,又快速,又實用,甚至大家也都很關心而我自己也很在意的"心""行""品"的問題.只是自己的能力還不夠,對我來說,有些進階的解法就好像一般人讀四書五經一樣,一時難以消化.呵呵.(如所問如何在目錄清單控制項(DirListBox)下顯示隱藏的資料夾一樣)術業有專攻,隔行如隔山.但只要有心,果然都是地球村民.

    天豈去此哉,任真無所先. 如有周公之才之美,使驕且吝,其餘不足觀也矣. 雖多,亦奚以為?

    2012年5月27日 上午 06:07
  • 這樣說吧,程式討論區的重點在於程式語言,所以能以最直白的描述讓彼此快速看懂是最佳的選擇。

    所以程式討論區拒絕注音文、火星文等可愛表達式,因為那會產生不明確的猜測,一個ㄅ在那,到底是甚麼意思?而用詞太過艱澀,一樣會產生閱讀障礙,為什麼大一以下的國文會教文言文翻成白話文?因為文言文可能導致會錯意或誤判,所以在中間的描述出現可能是反面意思卻被網友誤會正面意思,就很不妙了。

    我在好幾篇回應文中,已經表達過您的回應過於艱澀,很難明確判斷你的需求,也是相同的意思。比如說上面你的回文中:一絲尚存,常用的說法是還有一口氣,也就是往生前,看得我莫名其妙,人死了還需要寫程式嗎?剩一口氣的時候也不用寫了吧... 就變成此處似乎用永不放棄總有一天會獲得解決來描述好像才是你的意思。如果是我會錯意,那我也沒辦法。我大學聯招考國文時,我沒過低標,所以我實在看不懂啊~~~


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2012年5月27日 上午 08:17