線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2689
推到 Plurk!
推到 Facebook!

剪下複製貼上..等基本功能如何在多個元件內一次撰寫

尚未結案
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-14 21:09:48 IP:218.162.xxx.xxx 未訂閱
我有多個RichEdit和Maskedit,需要用到複製貼上的功能,功能寫在MainMenn上。    例如複製的寫法是:
RichEdit1->CopyToClipboard();
但是我還有RichEdit2、RichEdit3 那我使用共通事件來寫
TRichEdit->CopyToClipboard();
雖然編譯可以成功,但功能卻會出現錯誤訊息。 而且程式裡還有混雜著其他的輸入元件Maskedit、LabelEdit之類的 假如我想做複製 要怎樣在一個按鈕裡撰寫這功能,可以用在這些元件上。
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-15 02:14:03 IP:211.22.xxx.xxx 未訂閱
請多使用搜尋功能,看了你就懂了~
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-18 18:10:56 IP:218.162.xxx.xxx 未訂閱
我的好像沒有這麼的複雜,我只有簡單的撰寫,雖然編譯成功了,但是卻沒有功能在,想請問前輩們是哪裡的問題?     
void __fastcall TForm1::N11Click(TObject *Sender)//剪下
{
  ((TRichEdit *)Sender)->CutToClipboard();
  
} 
當慢慢的開始懂程式後,才發覺原來懂得也不是那麼多,越深入難題越多,也越有成就感。
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-18 18:53:41 IP:211.22.xxx.xxx 未訂閱
引言: 我的好像沒有這麼的複雜,我只有簡單的撰寫,雖然編譯成功了,但是卻沒有功能在,想請問前輩們是哪裡的問題?
void __fastcall TForm1::N11Click(TObject *Sender)//剪下
{
  ((TRichEdit *)Sender)->CutToClipboard();
} 
沒有選取區啊~,那樣把什麼剪到剪貼簿去查一下 > ----------------------------------------------
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-18 19:04:48 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    妳似乎仍然沒有將 "Sender" 的用法弄清楚。 首先;妳使用的方式:
((TRichEdit *)Sender)->CutToClipboard();
是 "強制轉型" 的寫法,也就是妳已經設定將 Sender 強制轉型為 TRichEdit 了,因此妳這樣的寫法並不能讓其它不同的元件一起 "共用",而是僅能讓不同的 TRichEdit 來共用而已。 其次;妳並未說明那個 N11Click() 是在什麼時候被觸發的?由那個元件的那個事件中觸發的?如果妳設定了某個按鈕,是在該按鈕的 OnClick 事件中直接將 Sender 為參數去觸發 N11Click(),或是直接將某個按鈕的 OnClick 事件指向該程序的話,Sender 將會是那個按鈕,妳根本就無法透過 Sender 去取得 RichEdit 或是 MaskEdit。 妳要先想清楚妳打算在按下某個按鈕時,如何讓妳的處理程序去識別出 "妳現在要它處理的到底是那一個物件",這樣子才能夠在該處理程序中去分辨要處理的 "對象",然後才能寫成 "處理不同物件的共用程序"。 7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-18 21:05:35 IP:218.162.xxx.xxx 未訂閱
引言:妳要先想清楚妳打算在按下某個按鈕時,如何讓妳的處理程序去識別出 "妳現在要它處理的到底是那一個物件",這樣子才能夠在該處理程序中去分辨要處理的 "對象",然後才能寫成 "處理不同物件的共用程序"。
我是要做成筆記本最上面的MainMenu功能(附圖),只不過他的輸入的地方有3種元件在。 目前就有在Maskedit,Labeledit,RichEdit三種輸入元件會需要用到。 我卡在不知道如何去判斷這3個元件,哪一個在輸入內容後,需要做這些動作。 之前是因為只有2個Richedit,又剛好分在2個Page裡 所以我這樣寫
if (PageControl1->ActivePage==TabSheet1)
{  
RichEdit1->CopyToClipboard();
}
if (PageControl1->ActivePage==TabSheet2)
{  
RichEdit2->CopyToClipboard();
}
用判斷page的方式來做,現在因為有些甚至一個Page裡3種元件都有了。 不知道還有什麼樣的方式能夠判斷? 當慢慢的開始懂程式後,才發覺原來懂得也不是那麼多,越深入難題越多,也越有成就感。
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-18 21:21:21 IP:218.162.xxx.xxx 未訂閱
引言: 沒有選取區啊~,那樣把什麼剪到剪貼簿去查一下>< face="Verdana, Arial, Helvetica"> 我剛爬了文,大部分都是一些關於處理字串的文章,大大可以再提示一點嗎? 你可以笑我問的問題笨,但你不可以笑我的求知欲和不恥下問的衝勁!!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-19 00:53:56 IP:61.230.xxx.xxx 未訂閱
Miki-lion 妳好:     這樣子討論下去這一篇大概又會超人氣了....,我看我還是教妳另外一招好了,這招就是使用系統預設的剪貼功能,要達到這個目的必須配合 ActionList 來處理,設定步驟如下:
  1. 先清除原先選單上 Copy, Cut, Paste 選項的 OnClick 內容。
  2. 在元件盤的 Standard 頁籤中去找到 ActionList 元件,然後放一個到 Form 上。
  3. 在 ActionList 元件上點擊滑鼠左鍵兩次。
  4. ActionList1 設定視窗顯示出來後,按下 Ctrl Ins 鍵。
  5. Standard Actions 選擇視窗顯示出來後,把下列三項都圈選起來,然後點選 OK 鈕: TEditCopy TEditCut TEditpaste
  6. 在 ActionList1 設定視窗上的左框內點選 Edit 項目。
  7. 依序點選 ActionList1 設定視窗右框內點選 EditCopy1, EditCut1, Edutpaste1 項目,然後將它們的 Caption 屬性改成中文名稱: 複製(&C) 剪下(&T) 貼上(&P)
  8. 關閉 ActionList1 設定視窗。
  9. 在 MainMenu 元件上點擊滑鼠左鍵兩次。
  10. 依序設定原先設好的 Copy, Cut, Paste 選項的 Action 為: EditCopy1 EditCut1 EditPaste1
  11. 關閉 MainMenu 設定視窗。
  12. 完成!
重新編譯妳的程式並執行它,看看在不同的 Edit 類 (RichEdit、MaskEdit....) 的元件內標註一段資料後,是否可以透過選單的 Copy 選項來複製 (或是透過 Cut 選項剪下來)?然後將 Focus 移到另一個 Edit 類的元件內,看看透過選單的 Paste 選項是否可將資料貼上? 7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-19 02:42:35 IP:218.162.xxx.xxx 未訂閱
太好用了~我的書上根本沒有教    我想請問一下的是他是用滑鼠指標(游標的位置)來判定現在是用哪個元件嗎?    我想延伸出去使用看看他的每一個功能,謝謝 你可以笑我問的問題笨,但你不可以笑我的求知欲和不恥下問的衝勁!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-19 09:12:45 IP:210.68.xxx.xxx 未訂閱
建議Miki-lion可以把整個專題所要做的功能一次列清楚 可以減少來回討論的次數,就不用頭痛醫頭腳痛醫腳了
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-08-19 10:55:00 IP:59.115.xxx.xxx 未訂閱
Miki-lion 妳好:    其實就學生寫專題而言,應該是運用既有學習到的技巧與知識來進行程式的撰寫,如果程式中運用到太多課堂上沒教到的高階技巧,而本身又無法完全消化掉的話,對自己反而是一種負擔。    我會教妳 "另外一招" 的原因,是擔心繼續原先的討論方向時,不免又會扯到 WIN32 API 及型別轉換....等等,而這個部份就妳目前而言,可能會難以消化,而本題也會延伸得太長。    看得出來妳的求知慾很強,相信大家都很願意幫忙有心學習的人,但是我建議妳還是先以完成專題為重,如果妳對某些程式設計的技巧想要做進一步瞭解的話,可以稍候再來討論,當妳沒有專題的交差壓力時,對問題的描述應該會較為清晰些,收獲也將以倍數論。      7 天天敲鍵盤 v 時時按滑鼠 8
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-08-19 15:19:04 IP:218.162.xxx.xxx 未訂閱
引言: 建議Miki-lion可以把整個專題所要做的功能一次列清楚 可以減少來回討論的次數,就不用頭痛醫頭腳痛醫腳了 < face="Verdana, Arial, Helvetica"> 我也很想這樣子,目前老師都是想到什麼加什麼,當初光是討論方向就一學期了,有時做好了交過去,通通要改,我就只能自己慢慢寫 你可以笑我問的問題笨,但你不可以笑我的求知欲和不恥下問的衝勁!!
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-08-19 15:35:49 IP:218.162.xxx.xxx 未訂閱
引言: Miki-lion 妳好: 如果程式中運用到太多課堂上沒教到的高階技巧,而本身又無法完全消化掉的話,對自己反而是一種負擔。
我從來沒上過BCB的課,只是自己在看別人寫的時候很有興趣,就自己試著研究看看,後來要做專題了,才決定要用的,程式方面我只有C/C 比較熟。 很感謝幫忙過我的人,我學到很多東西,甚至專題用不到的,在爬文的過程中,我也都有留筆記下來,分享過經驗和程式的前輩們,真的是感激
系統時間:2024-05-08 12:08:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!