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

写了个 HtmlEdit ,替代 RichEdit ,可用设计时无法用滑鼠移动,及不响应OnClick 事件。

答題得分者是:danny
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-15 21:11:37 IP:125.90.xxx.xxx 訂閱
写了个 HtmlEdit ,替代 RichEdit ,可用设计时无法用滑鼠移动,及不响应OnClick 事件,请各大大帮忙看看是什么原因。

(重新上传了一个含执行档的 zip)


編輯記錄
Register 重新編輯於 2007-06-21 23:09:49, 註解 重新上传了一个含执行档的 zip‧
danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-16 13:56:56 IP:211.76.xxx.xxx 訂閱
無法用滑鼠點擊得到 Focus 是底下粗體字那行程式的關係. 另外, forbidden  事件指的是 ?

procedure THtmlEdit.SetFocus;
begin
inherited;
FHTMLDocument.parentWindow.focus;
end;


===================引 用 Register 文 章===================
寫了個 HtmlEdit ,替代 RichEdit ,可用滑鼠點擊無法得到 Focus 和沒法響應forbidden 事件,請各件大幫忙看看是什麼原因。


------
將問題盡快結案也是一種禮貌!
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-16 17:02:39 IP:59.34.xxx.xxx 訂閱

===================引 用 danny 文 章===================
另外, forbidden? 事件指的是 ?
===================引 用 Register 文 章===================

是 OnCick 事件 不知为什么提交后变了字。

danny
版主


發表:100
回覆:522
積分:595
註冊:2002-03-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-21 16:08:01 IP:211.76.xxx.xxx 訂閱
你的 THtmlEdit 是繼承自 TWebBrowser 這有個問題...
TWebBrowser 本身並沒有實作 On Click 所以你要自己作, 而不是自己宣告 procedure Click 就了事, 因為 Delphi 不知道你的 Click 是在作什麼.

至於 SetFocus 因為你的程式很大我無法一個一個幫你測試, 但是可以確定的是在 THtmlEdit 內到處有呼叫 SetFocus 的身影, 應該是有問題的.

既然你是要用 HtmlEdit 替代 RichEdit 何不直接繼承 TRichEdit 來的方便呢?
------
將問題盡快結案也是一種禮貌!
編輯記錄
danny 重新編輯於 2007-06-21 16:08:49, 註解 無‧
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-21 19:04:23 IP:61.222.xxx.xxx 訂閱
提問者,有點不人道。

範例無執行檔可共測試。難道要我們一一安裝您所寫的元件。
這一件非常慘忍的一件事!

所提供的截圖,也看不出所以然?
請先自助所以人助。
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-21 22:40:54 IP:59.34.xxx.xxx 訂閱

===================引 用 wameng 文 章===================
提問者,有點不人道。

範例無執行檔可共測試。難道要我們一一安裝您所寫的元件。
這一件非常慘忍的一件事!

所提供的截圖,也看不出所以然?
請先自助所以人助。

===================引 用 wameng 文 章===================


对不起,原来有执行档的,但加进去后有点大,所以才去掉的。
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-21 23:18:04 IP:59.34.xxx.xxx 訂閱

===================引 用 danny 文 章===================
你的 THtmlEdit 是繼承自 TWebBrowser 這有個問題...
TWebBrowser 本身並沒有實作 On Click 所以你要自己作, 而不是自己宣告 procedure Click 就了事, 因為 Delphi 不知道你的 Click 是在作什麼.

既然你是要用 HtmlEdit 替代 RichEdit 何不直接繼承 TRichEdit? 來的方便呢?
======================================

1.我以为 procedure Click 是 TWebBrower 的处理处程函数,所以 Override 了它。

2.继承自 TRichEdit 会复杂很多,因为写这个东东是为了 Win32 程式与 Web 可以交互的。
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-21 23:21:47 IP:121.35.xxx.xxx 訂閱
你用的是 TWebBrowser,这个元件其实是包装了 IE 的 COM 而已。

要 SetFocus 必须要调用 IE 的 COM 里的相关的方法,而不是 Delphi 元件的 SetFocus 方法。

我自己写个一个完整的从 TWebBrowser 继承下来的 HTMLEditor,不过是公司的产品,所以不能在这里公开代码。
Register
一般會員


發表:5
回覆:13
積分:3
註冊:2004-03-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-06-22 08:46:19 IP:59.34.xxx.xxx 訂閱

自己摆乌龙了,SetFocus 是正常的。现在想解决的是OnClick 事件。可以提供思路吗?谢谢!

===================引 用 pcplayer99 文 章===================
你用的是 TWebBrowser,这个元件其实是包装了 IE 的 COM 而已。

要 SetFocus 必须要调用 IE 的 COM 里的相关的方法,而不是 Delphi 元件的 SetFocus 方法。

我自己写个一个完整的从 TWebBrowser 继承下来的 HTMLEditor,不过是公司的产品,所以不能在这里公开代码。
編輯記錄
Register 重新編輯於 2007-06-22 09:04:21, 註解 無‧
系統時間:2024-05-17 18:11:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!