You are not logged in. This forum allows only logged in users to post. If you want to post in the forum, please log in.
下載
軟體開發
帳戶
下載
軟體開發
登入
我忘記帳戶名和密碼了
新增帳戶
語言
手冊
語言
手冊
×
登入
登入名稱
密碼
×
我忘記帳戶名和密碼了
繁體中文翻譯狀態
類別:
軟體
人
PersonalForge
Magazine
Wiki
搜尋
OSDN
>
軟體搜索
>
Desktop Environment
>
Special Launch
>
討論區
>
公開討論
>
NTならスレッドにする?
Special Launch
描述
專案概要
開發人員儀表板
專案的網頁
Developers
Image Gallery
List of RSS Feeds
活動
使用統計
歷史
檔案下載
發布列表
Stats
原始碼
儲存庫列表
Subversion
查看儲存庫
待辦事項
待辦事項列表
里程碑列表
類型列表
元件列表
List of frequently used tickets/RSS
新增待辦事項
文檔
溝通
討論區列表
幫助論壇 (0)
公開討論 (15)
新聞
討論區:
公開討論
(Thread #17978)
Return to Thread list
RSS
NTならスレッドにする? (2008-03-12 23:27 by
(del#173)
#35535)
Create ticket
Special Launch 4 掲示板(
http://splnch.sourceforge.jp/cgi-bin/forum/wforum.cgi?page=0&mode=
)でも話題になっていますが、
Excelのファイルをボタンに登録しているときに、うまくファイルを開けない不具合があるみたいです。
私はXPで利用していますが、やはり同様の不具合に悩んでいました。折角のオープンソースだからと思いましたので、ソースを追いかけてみたところ、Pad.pasの3596~3600行目あたりの箇所が怪しいような気がしてきました。
-----
// NTならスレッドにする
if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
TOpenNormalButtonThread.Create(Handle, TNormalButton(Item.ButtonData))
else
OpenNormalButton(Handle, TNormalButton(Item.ButtonData));
-----
別スレッドを使ってアプリを起動しているのには何か理由があるのでしょうか?
スレッドを使わないように変更したところ(下記)、特に問題なく動いているように見えましたので。。。
-----
// NTならスレッドにする
// if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
// TOpenNormalButtonThread.Create(Handle, TNormalButton(Item.ButtonData))
// else
OpenNormalButton(Handle, TNormalButton(Item.ButtonData));
-----
と、ご覧になっているか不安になりながらポストしてみました。
RE: NTならスレッドにする? (2008-03-13 09:42 by
sawasige
#35536)
Create ticket
アプリ起動を別スレッドにした理由は、単純にレスポンスをよくするためです。
Excel ファイルを開けない問題が、アプリ起動を別スレッドにしないようにして解消されても、問題の本質を理解していないので「解決」と言って良いのか悩むところです。
実際問題として私の環境では Excel ファイルを登録しても問題なく起動できてしまうんですよね。。。
回覆:
#35535
RE: NTならスレッドにする? (2008-03-13 11:39 by
(del#173)
#35540)
Create ticket
お返事ありがとうございます。
レスポンスだけなら、手元では何の問題もないので修正後のアプリを使うことにします。ありがとうございました。
Excelファイルの不具合の件は、Excelファイルを10個ぐらい登録して、順にクリックしていくと、たまに1個くらい開けない場合がある。という感じです。
開けなくなると、そのファイルはしばらく開けなくなりますが、何かの拍子に開けなくなるファイルが変わることがあります。
ただ、ブレークポイントを設定して追いかけようとすると、今まで開けなかったファイルも開けるようになることが多いので、起動スレッドが先行しすぎて何か悪いことでも起きているのかなぁ。という印象でした。
Delphiをさわったのは昨夜が初めてですので、詳しく追いかけられているか不安ですが^-^;
ひとつの情報として解決に向かうとうれしいです。
私の手元では、前回書いた修正で無事に起動しているのでひとまず解決扱いにしてしまいます^-^
回覆:
#35535