ページ:[ ] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [ ]
5434
2008/10/3 (金) 16:27:14 初心者  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
[5434] タブあるいはスペースについて
一行にいくつか異なる長さのデータはタブスペースに
よって、区切っていましたが、そのようなデータが
沢山あると、データが一列ずつに位置を対応する機能が
ありますか?
例:
2.3 34 56 xyz
2.89945 3 4433 abcert
欲しいデータ形式:左優先@
2.3     34 56   xyz
2.89945 3  4433 abcert
欲しいデータ形式:右優先A
    2.3 34   56 xyz
2.89945  3 4433 abcert

2008/10/8 (水) 00:47:48 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5436] Re:タブあるいはスペースについて
▼ 初心者さん
左詰めならTAB数を8くらいにして領域選択後、このマクロを実行。
//キーボードマクロのファイル
S_ReplaceAll('[ \\t]+', '\\t', 133);        // $85
S_TABToSPACE(0);        // TAB→空白

右詰めは今のところ無い。

2008/10/16 (木) 13:32:53 ぜっと  
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
[5446] Re:タブあるいはスペースについて
簡単なものでよければ >>macro:446 に投稿したマクロなどでどうでしょうか。

2008/10/27 (月) 15:21:25 初心者  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
[5449] Re2:タブあるいはスペースについて
▼ ぜっとさん
> 簡単なものでよければ >>macro:446 に投稿したマクロなどでどうでしょうか。
いいマクロですが、やってみた結果は異なる幅の行に対して幅を同じになった。
ちょっと私は質問仕方が良くなかったので、申し訳ございませんでした。
簡単にいうと、C言語の“%6d”の6の数字は行によって不定である。
例:(3列処理したいデータ)
一行目:%4s %3d %24s
二行目:%6s %8d %20s
三行目:%3s %7d %20s
簡単な例:(処理後のデータ)
一行目:%6s %8d %24s
二行目:%6s %8d %24s
三行目:%6s %8d %24s


5266
2008/3/23 (日) 17:00:46 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5266] 「読み取り専用」名前変更の提案
排他の動作についてはこのスレッドにおいて言及しませんが、
とりあえず「読み取り専用」という名前に関して。

サクラエディタの読み取り専用モードと
ファイルシステム自体の読み取り専用属性を混在している方が
ユーザの中にも開発者の中にも多くおられると想像しています。
(実際、自分も深くソースに手を突っ込む前までは正しい理解をしていませんでした。)

先入観を持たれない名前への変更が望ましいです。
個人的にはじゅうじさんが提案された「ビューモード」という名前がしっくりくるかな、と思います。
「読み取り専用」と付くすべての文言を「ビューモード」に差し替えることを提案しますが
皆様からのご意見ありますでしょうか。


#自分的にはタイトルバーに表示される「読みとり専用」「上書き禁止」の文言が
 日本語的に区別が付きにくく、混乱することが多かったです。
 [共通設定] - [ウィンドウ] - [タイトルバー] で変更可能な項目ですけど。

2008/3/23 (日) 17:52:18 神楽  
Opera/9.26 (Windows NT 5.1; U; ja)
[5267] Re:「読み取り専用」名前変更の提案
▼ kobakeさん
> 排他の動作についてはこのスレッドにおいて言及しませんが、
> とりあえず「読み取り専用」という名前に関して。
>
> サクラエディタの読み取り専用モードと
> ファイルシステム自体の読み取り専用属性を混在している方が
> ユーザの中にも開発者の中にも多くおられると想像しています。
> (実際、自分も深くソースに手を突っ込む前までは正しい理解をしていませんでした。)
>
> 先入観を持たれない名前への変更が望ましいです。
> 個人的にはじゅうじさんが提案された「ビューモード」という名前がしっくりくるかな、と思います。
> 「読み取り専用」と付くすべての文言を「ビューモード」に差し替えることを提案しますが
> 皆様からのご意見ありますでしょうか。


ファイルシステム上の読み取り専用ファイルを開いた時の「上書き禁止」との差別化での
「ビューモード」ということでしょうか?
設定メニューの「読み取り専用」も「ビューモード」に名称変更ですね。

2008/3/23 (日) 18:40:43 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5268] Re2:「読み取り専用」名前変更の提案
▼ 神楽さん
> ▼ kobakeさん
> ファイルシステム上の読み取り専用ファイルを開いた時の「上書き禁止」との差別化での
> 「ビューモード」ということでしょうか?
> 設定メニューの「読み取り専用」も「ビューモード」に名称変更ですね。


共通設定−タイトルバーで変えられるなら、そこはいじらないで、
その設定メニューボタンを、「書き込み不可」という名称にすれば、「読み取り専用ファイルとして開く」と区別できるかと。
ボタンの動作に関しては、前回レスした修正が必要ではないかと。

2008/3/23 (日) 18:50:59 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5270] Re3:「読み取り専用」名前変更の提案
▼ じゅうじさん
> ▼ 神楽さん
> > ▼ kobakeさん
> > ファイルシステム上の読み取り専用ファイルを開いた時の「上書き禁止」との差別化での
> > 「ビューモード」ということでしょうか?
> > 設定メニューの「読み取り専用」も「ビューモード」に名称変更ですね。

>
> 共通設定−タイトルバーで変えられるなら、そこはいじらないで、
> その設定メニューボタンを、「書き込み不可」という名称にすれば、「読み取り専用ファイルとして開く」と区別できるかと。
> ボタンの動作に関しては、前回レスした修正が必要ではないかと。


設定メニューの「読み取り専用」

「読み取り専用ファイルとして開く」

同じ効果が得られるものと思っていましたが、違いましたっけ?

2008/3/23 (日) 19:06:37 神楽  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5271] Re4:「読み取り専用」名前変更の提案
▼ kobakeさん
現状の動作はともかく本来あるべきなのは、

> 設定メニューの「読み取り専用」
は、オープン中のファイルの編集と上書き保存を不可とし、

> 「読み取り専用ファイルとして開く」
は、上書き保存のみを不可とするではないでしょうか?

この場合、後者は「上書き禁止ファイルとして開く」とかに
文言を変更した方が良いでしょうけど。

2008/3/23 (日) 19:14:32 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5272] Re5:「読み取り専用」名前変更の提案
▼ 神楽さん
> ▼ kobakeさん
> 現状の動作はともかく本来あるべきなのは、
>
> > 設定メニューの「読み取り専用」
> は、オープン中のファイルの編集と上書き保存を不可とし、
>
> > 「読み取り専用ファイルとして開く」
> は、上書き保存のみを不可とするではないでしょうか?
>
> この場合、後者は「上書き禁止ファイルとして開く」とかに
> 文言を変更した方が良いでしょうけど。


何が「べき」かは分かりませんけど
ソースを見た限りでは「同じ意味で扱う意図」が見受けられました。
もともと同じ意味で扱うように設計が組まれているので
それを変えるように動作変更するためには若干の手間がかかりそうです。

2008/3/23 (日) 20:07:20 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5273] Re6:「読み取り専用」名前変更の提案
> もともと同じ意味で扱うように設計が組まれているので
> それを変えるように動作変更するためには若干の手間がかかりそうです。


補足しますと、実装が難しいか(←この点については実は分からない)というわけではなく、
要件定義が難しいってことです。
影響範囲が(少なくとも自分から見ると)複雑なため、
詳細な仕様を決めずに軽い気持ちでソースを弄り始めると
痛い目を見そうだなぁ、という気がします。

シンプルな機能追加であれば、
直接コーディング→コーディング結果を仕様
とすることもできますが、今回の件はそんなに単純じゃないです。
少なくとも自分は、
仕様が確定するまでアクション起こすつもりはありません。

機能変更をお望みであれば、
それを必要とする人の間で仕様を練りこんでくださいませ。

2008/3/23 (日) 18:47:37 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5269] Re2:「読み取り専用」名前変更の提案
▼ 神楽さん
> ファイルシステム上の読み取り専用ファイルを開いた時の「上書き禁止」との差別化での
> 「ビューモード」ということでしょうか?
> 設定メニューの「読み取り専用」も「ビューモード」に名称変更ですね。


一応注記しておきますが、新たに差別化するわけではないです。
差別化は既にされているけど、文言的に区別が付きにくいので文言を変える、ということです。

主な具体例としては
・「ファイルを開く」ダイアログの [読み取り専用ファイルとして開く(R)] チェックボックス
・[設定] メニューの [読み取り専用(R)]
・[共通設定] - [ウィンドウ] - [タイトルバー] のデフォルト文字列内の「読みとり専用」

等です。

ちなみにファイルを読み取り専用モードで開いたとき、
[ファイル] - [ファイルのプロパティ] を表示すると、
「上書き禁止モードで開いています。」という文言が表示されますが、
現在の慣習的仕様に基づくと「読み取り専用モードで開いています」が正しいです。
そして今回の文言変更が適用された場合「ビューモードで開いています」が正しい仕様になります。

さきほど自分が提起しました、開発者でさえ混在する、といった問題の弊害が
こういったケースに表れていると思います。

2008/3/24 (月) 00:41:21 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5274] Re3:「読み取り専用」名前変更の提案
▼ kobakeさん
> ▼ 神楽さん

これからの為に、現在の仕様まとめ。印刷して、
これに修正箇所を書き込んで行くための、内部仕様書?です。
これの観点は、設定→***(R) ボタン中心です。

Yahoo! sakura-editor/files/Document/読み取り専用.rtf
dev:5274 読み取り専用ファイルとして開く

2008/3/27 (木) 14:32:46 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5276] Re3:「読み取り専用」名前変更の提案
過去ログを探っていて浮かんだ、仕様の案。(私にはソース修正出来ませんが)

タイトルバーの表示について:(夫々文言は共通設定のウィンドウタブで変更出来る)
 1.タイトルバーが「読み取り専用」になっている時は、編集可能になってほしい。
 2.タイトルバーが「閲覧モード」になっている時は、編集不可になってほしい。

読み取り専用ファイルの場合:
 3.プロパティが読み取り専用のファイルを開いた時は、「閲覧モード」になってほしい。
 4.プロパティが読み取り専用のファイルを開いた時でも、設定メニューのボタン(現在の表示名は、[読み取り専用])で「読み取り専用」になってほしい。

読み取り専用ファイルとして開く場合:(チェックボックスの文言は変更出来ない)
 5.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた場合、「閲覧モード」になってほしい。
 6.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた時でも、設定メニューのボタンで「読み取り専用」になってほしい。

排他しない場合について:
 7.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた時は、排他制御はしないでほしい。 それは、設定メニューやタイトルバーの状態にかかわらず。
 8.プロパティが読み取り専用のファイルを開いた時は、排他制御はしないでほしい。

設定メニューのボタン名称について:
 9.設定メニューのボタン名称は押されている状態により変えてほしい。
10.設定メニューのボタンが押されていない状態は、設定メニュー名称は[読み取り専用]がいい。 その時のタイトルバーは、「閲覧モード」。
11.設定メニューのボタンが押されている状態は、設定メニュー名称は[上書き禁止]がいい。 その時のタイトルバーは、「読み取り専用」。


▼ dskobaさん
せめて各掲示板毎には一度に取得したいと思ったので、vbsで作りました。

2008/3/27 (木) 22:34:25 kobake  
Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5277] Re4:「読み取り専用」名前変更の提案
ぜんぶ読んでませんが一言。

▼ じゅうじさん
> タイトルバーの表示について:(夫々文言は共通設定のウィンドウタブで変更出来る)
>  1.タイトルバーが「読み取り専用」になっている時は、編集可能になってほしい。
>  2.タイトルバーが「閲覧モード」になっている時は、編集不可になってほしい。


ファイル属性に関して「読み取り専用」という言葉を使うのは構わないのですが、
それ以外の意味で「読み取り専用」の文言を使うのは避けることにしませんか?
ファイル属性とごっちゃになって話を理解しにくいです。

2008/3/28 (金) 02:11:06 maru  
INCM1.23a
[5278] Re5:「読み取り専用」名前変更の提案
名称は「編集禁止」または「編集不可」を希望します。「上書禁止」の時との動作の違いが、より分かりやすそう。

2008/3/28 (金) 04:11:06 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5279] Re3:「読み取り専用」名前変更の提案
▼ kobakeさん 失礼しました、「。。。」と言うのを使わない様にレス変更します。
▼ maru さんの「編集不可」は、実行してみればわかるので、「編集禁止」。

12.追加します。
過去ログを探っていて浮かんだ、仕様の案。(私にはソース修正出来ませんが)

タイトルバーの表示について:(夫々文言は共通設定のウィンドウタブで変更出来る)
 1.タイトルバーが「排他解除」になっている時は、編集可能になってほしい。
 2.タイトルバーが「閲覧モード」になっている時は、編集不可になってほしい。

読み取り専用ファイルの場合:
 3.プロパティが読み取り専用のファイルを開いた時は、「閲覧モード」になってほしい。
 4.プロパティが読み取り専用のファイルを開いた時でも、設定メニューのボタン(現在の表示名は、[読み取り専用])で「排他解除」になってほしい。

読み取り専用ファイルとして開く場合(チェックボックスをON):
 5.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた場合、「閲覧モード」になってほしい。
 6.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた時でも、設定メニューのボタンで「排他解除」になってほしい。

排他しない場合について:
 7.プロパティが読み取り専用のファイルを開いた時は、排他制御はしないでほしい。
 8.プロパティが読み取り専用ではないファイルを[読み取り専用ファイルとして]で開いた時は、排他制御はしないでほしい。 それは、設定メニューやタイトルバーの状態にかかわらず。

設定メニューのボタン名称について:
 9.設定メニューのボタン名称は押下した時の名前に変えてほしい。
10.設定メニューのボタンが押されていない状態は、設定メニュー名称は[読み取り専用]がいい。 その時のタイトルバーは、「閲覧モード」。
11.設定メニューのボタンが押されている状態は、設定メニュー名称は[編集禁止]がいい。 その時のタイトルバーは、「排他解除」。

12.プロパティが読み取り専用で無いファイルを、読み取り専用ファイルとしてではなく開いた場合、設定メニューのボタンは[編集不可]にしてほしい。押した時は[編集可能]。

2010/2/5 (金) 11:34:55 ゆか  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.4; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
[5660] よろしくです。
是非使ってみてください。

よろしくお願いします。

http://sweetkiss.in

2008/3/25 (火) 22:16:45 dskoba  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12
[5275] Re:「読み取り専用」名前変更の提案
過去ログ

>>data:3874
>>dev:2976

--
過去ログ全部を一度に検索できるようにはならないですかね。


2008/4/1 (火) 10:13:39 じゅうじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
[5282] Re2:「読み取り専用」名前変更の提案
Wiki/FAQ
http://sakura.qp.land.to/?FAQ/12

Wiki/Help
http://sakura-editor.sourceforge.net/htmlhelp/HLP000249.html

chm/Help

5477
2008/11/25 (火) 16:01:51 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5477] マウスの中ボタン押下中のホイールスクロールではページスクロールする
マウスの中ボタンを押した状態でホイールスクロールした場合は、行ではなくページをスクロールします。
unicode版ではコミット済みです。

Patches #2341968

2008/11/26 (水) 00:14:10 げんた  
INCM1.23c
[5479] RE: マウスの中ボタン押下中のホイールスクロールではページスクロールする
個人的感想です.レビューコメントではありません.

1. マウスがウィンドウの外に出てもちゃんと動くのはマウスホイールのメッセージがフォーカスのあるウィンドウに来るからですね.SetCaptureは不要,と (._.) φ メモメモ.でも指が滑った瞬間にフォーカスが失われるので素人にはおすすめできない.

2. 中クリックに機能を割り当てると,割り当てられた機能がスクロールよりも優先されます.左右ボタンは離したときに動作するの中ボタンは押した瞬間に動作するのがちょっと気持ち悪いかも.ホイールをクリック後,回さずに離したときだけ中ボタン動作にできればさらに自然な動作になるように思いますが,欲張りすぎですかね.

3. ホイールを押したまま回すと指が疲れません? そこで思ったのですが,親指の位置にボタンがあるようなマウスを使っている人は,親指でボタンを押しながらホイールを回すという動作も受け入れられるかもしれません.
(私のマウスにはそんなボタンは付いていませんが...)

2008/11/28 (金) 03:59:34 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5483] Re2: マウスの中ボタン押下中のホイールスクロールではページスクロールする
▼ げんたさん
> 1. マウスがウィンドウの外に出てもちゃんと動くのはマウスホイールのメッセージがフォーカスのあるウィンドウに来るからですね.SetCaptureは不要,と (._.) φ メモメモ.でも指が滑った瞬間にフォーカスが失われるので素人にはおすすめできない.
 
Windowsは中ボタンでもフォーカス移動するみたいなので、誤操作のペナルティが大きいかもですね (^^;
 
> 2. 中クリックに機能を割り当てると,割り当てられた機能がスクロールよりも優先されます.左右ボタンは離したときに動作するの中ボタンは押した瞬間に動作するのがちょっと気持ち悪いかも.ホイールをクリック後,回さずに離したときだけ中ボタン動作にできればさらに自然な動作になるように思いますが,欲張りすぎですかね.
 
元からの仕様だったので中ボタンの処理はいじらなかったのですが、確かに気持ち悪いので修正してみます。
 
> 3. ホイールを押したまま回すと指が疲れません? そこで思ったのですが,親指の位置にボタンがあるようなマウスを使っている人は,親指でボタンを押しながらホイールを回すという動作も受け入れられるかもしれません.
> (私のマウスにはそんなボタンは付いていませんが...)

 
上の1.とも絡みますが、慣れとマウスの質じゃないでしょうかね。
これについては、左右サイドボタン、control、shift、altとの組み合わせでも考えてみます(altはちょっと無理かも……)
 
ではでは。

2008/12/8 (月) 00:22:05 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5501] Re:マウスの中ボタン押下中のホイールスクロールではページスクロールする
マウスボタンまたはキーとの組み合わせによりページスクロールまたは横スクロール可能としました。
組み合わせに指定可能なものは以下のとおりです。
・マウス中ボタン
・マウス左サイドボタン
・マウス右サイドボタン
・CONTROLキー
・SHIFTキー


また、マウスの中ボタン・左サイドボタン・右サイドボタンに割り当てたコマンドの実行タイミングを、マウスボタン押下時から開放時に変更しました。

2008/12/13 (土) 09:33:07 げんた  
INCM1.23c
[5502] Re2:マウスの中ボタン押下中のホイールスクロールではページスクロールする
SHIFTとの組み合わせで使ってみたら,かなり快適に感じました.
サイドボタン付きマウスを買いに行きたくなりそう.

2008/12/22 (月) 23:16:03 げんた  
INCM1.23c
[5504] Re2:マウスの中ボタン押下中のホイールスクロールではページスクロールする
この機能の恩恵にあずかろうと,週末にサイドボタン付きマウスを入手しましたので,あらためて動作確認しました.

まず,横スクロールとページスクロールは両方押すと横ページスクロールになるんですね.最初の意地悪テストのつもりで行ったのですが良い意味で裏切られました.

おおむね問題ないと思いますが,以下微妙に気づいた点があります.
1. ボタンを押したままダイアログを閉じる
ウィンドウがアクティブになったときにCEditWnd::ClearMouseState()でボタン状態をクリアしますが,最初から押されたままだとここで不一致になります.その時の状態を取得して設定するのがよいと思ったのですが,マウスの現在の押下状態を取得できるAPIが見つかりません.無いんでしたっけ?

2. ノンクライアントエリアでボタンを押す/離す
たとえばタイトルバーでボタンを押してマウスホイールしても,ページスクロールになりません.逆にエディット領域でボタンを押してタイトルバーで離してもページスクロールのままとなります.WM_NC*BUTTON* メッセージも拾った方が良いかと思いますが,Non-clientで押してNon-clientで離した場合に割り当てられたコマンドを実行するかは微妙なところですね.WM_NC*BUTTONUPではマウスボタンとの状態だけ更新してコマンドは実行しないというのが自然かと思います.

3. 初期化漏れ
CEditWndのコンストラクタでもClearMouseState()を呼び出して,マウスの状態変数をリセットした方がよいです.内部状態を表示させるデバッグコードを入れて状態変化を見ると,初期のゴミ値が残っているのが見えます.

4. WM_XBUTTON* メッセージの処理
Windows SDKのWM_XBUTTONDOWNの説明に
>an application should return TRUE from this message if it processes it. Doing so will allow software that simulates this message on Microsoft Windows systems earlier than Windows 2000 to determine whether the window procedure processed the message or called DefWindowProc to process it.
とありますので,WM_XBUTTON処理後は0ではなくTRUEを返すのがマナーのようです.

5. ボタン名称
XBUTTONへのコマンド割り当て機能が入れられた当初から「左サイドボタン」「右サイドボタン」との名称になっていますが,最近のマウスを見ると右にボタンが付いている機種は全然見あたらず,右手の親指の位置で前後に並んでいるのが標準的です.
ですので,「サイドボタン1」「サイドボタン2」とした方が実態に即していると思います.

---
ところで,自分が購入したサンワサプライのMA-LS3というマウスにはドライバディスクが付いてきます.ドライバを入れるとマウスに各種機能が割り当てられたり,ホイールの横チルトでスクロールできたりするのですが,このドライバをインストールするとサイドバーを押した場合にWM_XBUTTON* というメッセージが全く送られてこなくなります.「サイドボタン+ホイール機能が動かない」という書き込みが予想されるので.ヘルプ/FAQにその旨記載していただいた方が良いかもしれません.

2008/12/23 (火) 21:32:41 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5507] Re3:マウスの中ボタン押下中のホイールスクロールではページスクロールする
▼ げんたさん
確認ありがとうございます。
ちょこちょこ問題ありますね (^^;

> 1. ボタンを押したままダイアログを閉じる
> ウィンドウがアクティブになったときにCEditWnd::ClearMouseState()でボタン状態をクリアしますが,最初から押されたままだとここで不一致になります.その時の状態を取得して設定するのがよいと思ったのですが,マウスの現在の押下状態を取得できるAPIが見つかりません.無いんでしたっけ?


現在の状態の取得方法が分からなかったので、フォーカス移動を伴う場合はサイドボタンの入力を無かったことにしちゃいました (^^;
もう少し探ってみます。

> 2. ノンクライアントエリアでボタンを押す/離す
> 3. 初期化漏れ
> 4. WM_XBUTTON* メッセージの処理
> 5. ボタン名称


対処します。

ヘルプ/FAQへの注意追記は必要ですね。
あと、私自身で気になる所としては、共通設定のウィンドウが縦に長くなってきたことでしょうか。
右下のチェックを左に移動したりしましたが、ちょっと苦しい (^^;

2008/12/24 (水) 01:18:21 ryoji  
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SV1; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618)
[5510] Re4:マウスの中ボタン押下中のホイールスクロールではページスクロールする
▼ なすこじさん
> ▼ げんたさん
> > マウスの現在の押下状態を取得できるAPIが見つかりません.無いんでしたっけ?
>
> 現在の状態の取得方法が分からなかった


GetAsyncKeyStateは違います?

2008/12/24 (水) 19:52:54 げんた  
INCM1.23c
[5511] Re5:マウスの中ボタン押下中のホイールスクロールではページスクロールする
>GetAsyncKeyStateは違います?
あ,本当だ.
The GetAsyncKeyState function works with mouse buttons.
って書いてありました.

GetAsyncKeyState(VK_MBUTTON)
GetAsyncKeyState(VK_XBUTTON1)
GetAsyncKeyState(VK_XBUTTON2)

で,それぞれ取得できるようですね.

どうもありがとうございました.

2008/12/26 (金) 04:38:40 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5512] Re5:マウスの中ボタン押下中のホイールスクロールではページスクロールする
▼ ryojiさん
▼ げんたさん

ありがとうございます。
これで変なメンバー変数の追加が不要になりますね。

2009/1/12 (月) 00:22:07 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5519] Re6:マウスの中ボタン押下中のホイールスクロールではページスクロールする
ボタン押下状態をGetAsyncKeyState()にて取得するようにし、
余分な関数・変数を削除しました。
これにより、ノンクライアントエリアでもページスクロール
できるようになりました。
また、コマンド実行の方は仕様変更ありません。

ボタン名称を変更しました。
 「マウス左サイドボタン」→「マウスサイドボタン1」
 「マウス右サイドボタン」→「マウスサイドボタン2」
(共通設定のキー割り当てに「左サイドクリック」「右サイドクリック」
というのがありますが、そちらは変更していません)

その他、メッセージ処理および初期化漏れを対処しました。

VK_XBUTTON1, VK_XBUTTON2は_WIN32_WINNTの都合により定義されない
ようでしたので、keycode.hに定義を追加して対処しました。

2009/1/15 (木) 23:16:32 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5526] Re7:マウスの中ボタン押下中のホイールスクロールではページスクロールする
rev1511でコミットしました。

Unicode版の方も早いうちに修正します。

5710
2011/3/6 (日) 17:40:06 通りすがり  
Opera/9.80 (Windows NT 6.0; U; ja) Presto/2.7.62 Version/11.01
[5710] C/Migemo 32ビット最新版でサクラエディタが不正終了
サクラエディタの1.6.6.0で
C/Migemo の32ビット最新版(20110227版)
http://www.kaoriya.net/software/cmigemo/win32dll
http://cmigemo.googlecode.com/files/cmigemo-default-win32-20110227.zip
を使うと、サクラエディタごと落ちません?

http://www.kaoriya.net/blog/201103/20110306_2
をみるかぎりでは、C/Migemoの作者の方には
DLL側を直す気がないように読み取れました。

2011/3/6 (日) 20:00:13 げんた  
INCM1.23c
[5711] RE: C/Migemo 32ビット最新版でサクラエディタが不正終了
>http://cmigemo.googlecode.com/files/cmigemo-default-win32-20110227.zip
>を使うと、サクラエディタごと落ちません?


呼び出し規約が
v1.2まで: cdecl
v1.3〜  : stdcall

ですから,たぶん落ちますね.
サクラエディタでは呼び出し規約が"__cdecl"と明示されていました.

履歴を見るとソースが変更されたのは2007年ですが,バイナリが出たのはつい先日なんですね...
v1.3に合わせるのは簡単ですが,単純に合わせると,こんどは古い方で落ちるようになります.

作者の人に問い合わせてみましょうかね.

2011/3/6 (日) 22:00:02 げんた  
INCM1.23c
[5712] RE2: C/Migemo 32ビット最新版でサクラエディタが不正終了
>作者の人に問い合わせてみましょうかね.
作者に聞いてみました.

v1.2と1.3の識別はリソース内の番号を見るしかないようです.
v1.2は"2002.6.22.17"
v1.3(20110227)は"1.3.0.175"
です.

現在ホームページより入手できるv1.2より古い物が公開されていたかどうかはわからないとのことでした.

なので,
1. DLLロード前にリソース内のVERSIONINFOを読み出す.
2. 1桁目が2002だったら(念のため1900〜2002だったらにしておくか?)v1.2と判断して
3. 使用できないので最新版を使用するよう表示する.

とする必要があると思います.

5706
2011/3/5 (土) 18:14:42 げんた  
INCM1.23c
[5706] 英語版 (求むreviwer)
Lucien さんが,サクラエディタの英語版を作ってくれました.
内容としては 1.6.6.0を英語化したものになっています.

ソースは以下のブランチに格納されています.
/sakura/branches/english/

手法としては埋め込まれている文字列を全てリソースに追い出して
LoadStringで読み出しています.
とりあえずはバグ,ロジック,翻訳等何でも結構ですので,
コメントをお願いします.

あと,リソースには日本語・英語の両方が入っているのですが,
扱いをどうしましょうかね...

さらに,Unicode版にも着手したいとの希望なのですが,
この方法でUnicode版に統合する形で入れられますかね?
いかがでしょうか.

2011/3/5 (土) 23:54:08 ryoji  
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 GTB7.1 ( .NET CLR 3.5.30729; .NET4.0E)
[5707] Re:英語版 (求むreviwer)
▼ げんたさん
> あと,リソースには日本語・英語の両方が入っているのですが,
> 扱いをどうしましょうかね...
>
> さらに,Unicode版にも着手したいとの希望なのですが,
> この方法でUnicode版に統合する形で入れられますかね?
> いかがでしょうか.


リソースで言語切替する手法は定石的なものですし、Unicode版でも可能なんじゃないかと思います。
欲しいですし、頑張って統合(日英一本化)に持ち込んでもらえたらいいなぁ〜、と思います。その「頑張る」ってのがたいへんそうで、逃げ腰になっちゃいますが。
σ(^^;;;

2011/3/6 (日) 11:25:38 げんた  
INCM1.23c
[5708] Re2:英語版 (求むreviwer)
>▼ げんたさん
>> あと,リソースには日本語・英語の両方が入っているのですが,
>> 扱いをどうしましょうかね...
>>
>> さらに,Unicode版にも着手したいとの希望なのですが,
>> この方法でUnicode版に統合する形で入れられますかね?
>> いかがでしょうか.

>
>リソースで言語切替する手法は定石的なものですし、Unicode版でも可能なんじゃないかと思います。
>欲しいですし、頑張って統合(日英一本化)に持ち込んでもらえたらいいなぁ〜、と思います。

がんばる部分は協力してくれるとのことですので甘えるとして,たぶんかなりの箇所に同じような変更がばらまかれることになりますので予め「こうして欲しい」というところを伝えておいた方が良いかと思います.
というのもあって,ANSI版をとりあえず見ていただけたらなと思ったのですが.

ANSI版の変更点で言うと,例えば
* LoadStringを含めて関数(or マクロ)にするべき?
  メッセージ表示も実はMYMESSAGEBOXを使っているところもあればwsprintfのところもあったりしてバラバラ.
* 文字列用バッファは256文字固定でその都度取っているが...
* SetThreadLocale, SetThreadUILanguage (Windows 95/98ではどちらも使えないのですね)

SetThreadLocaleを使って言語自体を切り替えるより,FindResourceExで取得したハンドルをLoadStringに渡した方がいいのでしょうか.今はGetModuleHandle(NULL)が毎回呼ばれていますが,これだとリソースの外部DLL化に対応できませんよね.

あと,実際に着手するとしても UNICODE版は頻繁に変更が入っているので,うまく協調してできるかが心配です.

2011/3/6 (日) 13:55:07 ryoji  
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 GTB7.1 ( .NET CLR 3.5.30729; .NET4.0E)
[5709] Re3:英語版 (求むreviwer)
> あと,実際に着手するとしても UNICODE版は頻繁に変更が入っているので,うまく協調してできるかが心配です.
自分はこのところV2(UNICODE版)本体を正式版にする作業で手一杯で、もともとこのあたりで一休みのつもりでいました。簡単に修正可能なバグくらいは対応するつもりではいましたけど。
日英統合自体には賛成ですので、それまでの間、それ以外の修正はパッチとして保留しておいて、しばらく凍結(コミット禁止)、ということになってもいいです、はい。その際にひとこと号令かけていただければ。(^^)
#むしろ明確に止めていただいたほうが気持ちの切替えはしやすいです

2011/3/7 (月) 00:25:02 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
[5713] Re:英語版 (求むreviwer)
▼ げんたさん
とりあえずビルドしてみました。

VC6, VS2005EE でビルドエラー
 SetThreadUILanguage() が無い

BCC5.5.1 でビルドエラー
 Error sakura_rc_jp.rc 135 34: Expecting BEGIN

VS2008EE ビルド正常終了
 日本語 Windows XP SP2で起動テスト
  地域と言語:日本語
   英語メニューで正常に動作

  地域と言語:英語(米国)
   sakura.exeのみだと起動しない
---------------------------
sakura
---------------------------
\'D:\_MyWork\???????\sakura.exe\'
???????????????
?????????????????????? ???????????????
---------------------------

   ビルドしたReleaseフォルダで起動すると日本語メニューで立ち上がる(なぜ?)

> あと,リソースには日本語・英語の両方が入っているのですが,
> 扱いをどうしましょうかね...


sakura_english.exeの時は英語メニューとか (^^; 間に合うのかな?
ビルド環境とWin9x,NTの扱いをどうするかもあるので、ANSI版は英語メニュー版として別にしておいた方が良いかも?

ではでは。

2011/3/21 (月) 11:08:32 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
[5714] Re:英語版 (求むreviwer)
メニューまわりを見てみました。英語が話せるわけではないので、その辺は割り引いてください (^^;

■タイプ別設定、共通設定
全体的にフィールドやボタンの幅が足りなくて文字列が表示しきれない所が見られるため保留。

■メニュー
メニュー全体について
 メニュー文字列の末尾にアクセスキーがある場合、文字列とアクセスキーの間にスペースがあった方が見やすいと思う(現在はスペースの有無が混在している)
  「Save all (Z)」 OK
  「Close Untitled(R)」→「Close Untitled (R)」

 文字列の途中にアクセスキーがあるメニューで()が付いていたり大文字にしてある所があるが、()は無しで無理に大文字にしない方が見やすいと思う。
  「Close all (O)ther tabs」→「Close all other tabs」
  「Move to neXt group」→「Move to next group」

 ダイアログが表示されるメニューで文字列末尾に「...」の無いものがある、またはその逆。
  「Save As」→「Save As...」
  「Open C/C++ header with same name...」→「Open C/C++ header with same name」

Fileメニュー
 「Save As」:「名前を付けて保存(A)...」
  →「Save As...」(...を付ける)

 「Save\Close」:「保存して閉じる(E)」
  円マークは & の誤り?
  →「Save&Close」または「Save & Close」または「Save and Close」

 「Re-open With encoding」:「開き直す(W)」
  サブニューが「Re-open」「Re-Open」混在している。どちらかに統一。

Editメニュー
 「High Level Editing」:「高度な操作(V)」
  改行単位と折り返し単位が表現できていない(難しいので無くても良い?)

  「Copy selected line nr.(:)」:「選択範囲内全行番号付きコピー(:)」
   英語では番号の略語は「No.」の方が一般的な気がする。日本人にも分かりやすいです。
   「nr.」はオランダ・デンマークとかのヨーロッパ語な感じ?

 「Cursor Movement」:「移動(O)」
  「End of file(Z)」:「ファイルの最後に移動(B)」
   →「End of file (B)」(アクセスキーの誤り)

  「Jump to Line」:「指定行へジャンプ(J)...」
   →「Jump to Line...」

  「Jump to Initial search start position」:「検索開始位置へ戻る(I)」
   Initialが無しの「Jump to search start position (I)」でも良い気がする。

 「Cosmetik」:「整形(K)」
  英語としては「Cosmetic」の方が違和感がないけどkで正しい?
  「Trimmng (K)」ではどうでしょうか。

Convertメニュー
 「Full Height」「Half Height」
  Height→Width だと思う。

 「Change Encoding」
  「Base64 Decode and save」→「Base64 Decode and Save」
  「uudecode and save」→「uudecode and Save」
   saveの先頭を大文字にした方が良いと思ったけど、他のメニューを見ると選択に迷う (^^;

(つづく)

2011/3/21 (月) 11:09:19 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15
[5715] Re2:英語版 (求むreviwer)
(つづき)

Searchメニュー
 「Find」:「検索(F)...」
  →「Find...」

 「Replace」:「置換(R)...」
  →「Replace...」

 「Jump to Initial search start position」:「検索開始位置へ戻る(I)」
  Initialが無しの「Jump to search start position(I)」でも良い気がする。
  (Editのサブメニューにも存在)

 「Open C/C++ header with same name...」:「同名のC/C++ヘッダ(ソース)を開く(C)」
  →「Open C/C++ header with same name」

 「DIFF Differences」:「DIFF差分表示(D)...」
  →「DIFF Differences...」

Toolメニュー
 メニュー内にmacroとMacroが混在するのでMacroで統一する。
 「Save the macro」:「キーマクロの保存(R)」
  →「Save the Macro」

 「Load the macro」:「キーマクロの読み込み(M)」
  →「Load the Macro」

 「Run the macro」:「キーマクロの実行(A)」
  →「Run the Macro」

 「Run an Existing macro」:「名前を指定して実行(E)...」
  →「Run an Existing Macro...」

Settingsメニュー
 「File type list」:「タイプ別設定一覧(L)...」
  →「File type list...」

 「File type settings」:「タイプ別設定(Y)...」
  →「File type settings...」

 「Common Settings」:「共通設定(C)...」
  →「Common Settings...」

 「Font settings」:「フォント設定(F)...」
  →「Font settings...」

 「Manage History」:「履歴の管理(O)...」
  →「Manage History...」

Windowメニュー
 「Close all (O)ther tabs」:「このタブ以外を閉じる(O)」
  →「Close all other tabs」(かっこは削除かつ小文字で)

 「Window list」:「ウィンドウ一覧(W)...」
  →「Window list...」

 「Tab control」:「タブの操作(B)」
  「Move to neXt group」:「次のグループに移動(X)」
   →「Move to next group」

  「Move to preV group」:「前のグループに移動(V)」
   →「Move to prev group」

 「Show outpUt window」:「アウトプット(U)」
  →「Show output window」

Helpメニュー
 「Search help by keyword」:「キーワード検索(S)...」
  →「Search help by keyword...」

 「CoMmand list」:「コマンド一覧(M)」
  →「Command list」

以上

2011/4/6 (水) 13:25:32 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5716] リソースの外部DLL化
メッセージリソースの外部DLL対応を試しに作成していますが、初期値作成より前にDLLを読み込む必要があるのでちょっと悩ましいです。

1. 言語選択ダイアログにてメッセージリソースを選択する
 選択後アプリを再起動する(動的変更は難しい)。
 選択された情報をiniファイルへ記憶し、次回起動時に読み込む。

2. 最初に見つけたメッセージリソースを自動的に読み込む
 iniまたはexeと同一階層からDLLを探し、最初に見つかったメッセージリソースを読み込む。

上記を考えましたが、1.の場合だと現状は初期値作成後にiniファイルを読み込むので言語選択情報だけは先に読み込む必要があります。
なので、2.の方法で作ってみようと思いますがどうでしょうか?

2011/4/6 (水) 16:29:19 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5717] Re:リソースの外部DLL化
とりあえずソースを以下にアップしました(14番)
 http://www.geocities.jp/nasukoji_7/download/download_sakuraeditor.html

SetThread...() はコメントアウトしてあるのでVC6でもビルド可能です(BCCはリソースでエラーになってしまった)

sakura_lang_en_US.dll を作成して sakura.exe と同一階層に置くとexe起動時に読み込まれます。
日本語Windowsで実行すると検索ダイアログなどが英語になります。

2011/4/7 (木) 13:06:16 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5718] Re:リソースの外部DLL化(req53に在る模様)
wikiのrequest 53に対してwakuraさんによるリソース切り替えの実装がアップされていました。
車輪の再発明になってしまうので、そこにあるソースと上手いこと融合させたいのですが、wikiの「ライセンス明確化推進計画 」にwakuraさんの名前がありません。

zlib/libpng ライセンスで組み込んでも良いです? > wakuraさん

一応コメントに「いじりたおしてください」とありますので大丈夫とは思いますが念のため (^^;

2011/4/11 (月) 10:14:05 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5719] Re:リソースの外部DLL化
結局wakuraさんのソースを使用しない状態でやり切りました。
あと必要なのは、現在読み込まれているDLLの情報表示や、exeとのバージョンが不一致の時の警告表示などでしょうか。

・外部DLLの名称は sakura_lang_*.dll となります('*' の部分は一応自由)
・外部DLLはsakura.exeと同一階層におく必要があります
・外部DLLには言語IDと言語表示用文字列を追加しています
・外部DLLを読み込んだ場合、上記の言語IDを SetThreadLocale, SetThreadUILanguage に使用します
・内部リソースを使用する場合 SetThreadLocale, SetThreadUILanguage を発行しません


http://www.geocities.jp/nasukoji_7/download/download_sakuraeditor.html

2011/4/26 (火) 07:16:01 syat  
Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
[5720] Re:リソースの外部DLL化
▼ なすこじさん
20110410の版で、DLLによって言語が切り替わることを確認しました。
DLL化はあきらかに有用なので、せっかくenglishブランチを切っていることだし、どんどんコミットしていったらどうでしょうか。

>あと必要なのは、現在読み込まれているDLLの情報表示や、exeとのバージョンが不一致の時の警告表示などでしょうか。
exeとのバージョン一致は課題ですね。本体をバージョンアップして、DLLのバージョンが古いままだと、新たに追加されたメッセージが空文字になってしまいとても残念。

以下、多言語化に対して気づいたことを。(亀レスで申し訳ないです)
・翻訳&文字列リソース化お疲れさまでした。>Lucienさん、なすこじさん
・英語版リソースで「(無題)」が「No Title11」のように連番がついたままです。
・ANSI版だと結局LoadStringAが呼ばれるのでsjis変換されるはず。本格的な多言語対応はUNICODE版かな?


もしUNICODE版に入れていくのであれば、以下も検討してほしいです。

・exeとDLLのバージョン不一致救済として、DLLから文字列を取得できなかったときは内部リソースから取得するようにしたらよいかも。
 ↓こんなメソッドを用意する
int CSelectLang::LoadString( UINT uid, LPSTR _pszLabel, int nBufferMax )
{
        int nRet = ::LoadString( getLangRsrcInstance(), uid, _pszLabel, nBufferMax );
        if( nRet == 0 ){
                return ::LoadString( ::GetModuleHandle(NULL), uid, _pszLabel, nBufferMax );
        }
        return nRet;
}

・毎回バッファを用意するのが正直面倒なので、糖衣構文が欲しい。
 ↓このくらい
LPSTR CSelectLang::LoadString2( UINT uid )
{
        char _pszLabel[1024];
        CSelectLang::LoadString( uid, _pszLabel, _countof(_pszLabel)-2 );
        return _pszLabel;
}
 ↓使用例
::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME, CSelectLang::LoadString2( STR_ERR_DLGFIND1 ) );
 自動変数の返却がだめならstatic変数のバッファでもよいので。。

2011/4/27 (水) 23:09:10 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5721] Re2:リソースの外部DLL化
▼ syatさん
確認どうもありがとうございます。
本命のUNICODE版への布石ということで実験的にANSI版を作ってみたものなので、完成度が低くてコミットはちょっと悩む所です (^^;

・初期値データも翻訳されています
 なので、iniファイル無しで起動した時の言語で初期値が作成されてしまいます。
 一旦作成されるとiniファイルが後から読み込まれて上書きされるので元に戻りません。
 exeのバージョンアップで追加設定があった場合、起動した時点で読み込んだ言語に依存します。

・現状プロセス起動時にDLLを探しているのでウィンドウ毎に言語が混在可能です
 例えば、日本語OSかつDLL無しでsakura.exeを起動し英語DLLをコピー後もう1枚画面を開いた場合、1枚目は日本語メニュー、2枚目は英語メニューとなります。

だれが(日本人?外国人?)どのように(日本語OS?英語OS?日英以外のローカライズ版OS?で)利用するかをもう少し考えないと変なものができてしまいそうです。

> もしUNICODE版に入れていくのであれば、以下も検討してほしいです。
>
> ・exeとDLLのバージョン不一致救済として、DLLから文字列を取得できなかったときは内部リソースから取得するようにしたらよいかも。
>  ↓こんなメソッドを用意する
> int CSelectLang::LoadString( UINT uid, LPSTR _pszLabel, int nBufferMax )
> {
>         int nRet = ::LoadString( getLangRsrcInstance(), uid, _pszLabel, nBufferMax );
>         if( nRet == 0 ){
>                 return ::LoadString( ::GetModuleHandle(NULL), uid, _pszLabel, nBufferMax );
>         }
>         return nRet;
> }


そうですね。これは必要だと思います。

> ・毎回バッファを用意するのが正直面倒なので、糖衣構文が欲しい。
>  ↓このくらい
> LPSTR CSelectLang::LoadString2( UINT uid )
> {
>         char _pszLabel[1024];
>         CSelectLang::LoadString( uid, _pszLabel, _countof(_pszLabel)-2 );
>         return _pszLabel;
> }
>  ↓使用例
> ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME, CSelectLang::LoadString2( STR_ERR_DLGFIND1 ) );
>  自動変数の返却がだめならstatic変数のバッファでもよいので。。


確かに面倒です。悩んだのですが良い方法が浮かびませんでした (^^;
連続してLoadStringしている箇所もあったので、staticで1個というのもできません(今のままでは)
さすがに自動変数はまずいと思います。クラスを作ってコンストラクタでロードでしょうか?

取りあえずこんな感じです。
私の方は5月末まで忙しくて何もできそうにないのですが、げんたさんとLucienさんの間では何か進展しているのでしょうか?

ではでは。

2011/4/30 (土) 20:30:02 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
[5722] Re2:リソースの外部DLL化
▼ syatさん
すみません、私変なことを書いていました。

>  ↓使用例
> ::MYMESSAGEBOX( m_hWnd, MB_OK , GSTR_APPNAME, CSelectLang::LoadString2( STR_ERR_DLGFIND1 ) );
>  自動変数の返却がだめならstatic変数のバッファでもよいので。。


ならその場で使うだけなのでstaticでOKですね。

2011/5/2 (月) 22:42:45 syat  
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
[5723] Re3:リソースの外部DLL化
▼ なすこじさん
連続してLoadStringしてるところは呼び元でバッファを準備するしかないと思いますが、例のようにメッセージボックスを出す程度の用途なら便利関数でさらっと書きたいなぁ、と思ったので。

ちなみにUNICODE版には渡した文字列をA <-> W変換してくれるto_wchar, to_acharという関数があって、使い勝手が良いです。(引数はたったの一個)
どうやってるのかと思ったら内部で64個分のバッファを用意して使い回してました。

>だれが(日本人?外国人?)どのように(日本語OS?英語OS?日英以外のローカライズ版OS?で)利用するかをもう少し考えないと変なものができてしまいそうです。
OSの違いはちょっとわからないですが、基本、日本語より英語のほうが得意な人が使うのでしょう。
本体と言語DLLをセットにして「英語版」として配布するイメージなら、言語の混在はあまり気になりません。

>・初期値データも翻訳されています
これは、難しい。。
言語が絡む所ってタイプ別設定の名称だったりカスタムメニュー名だったりで、起動時に初期設定されてしまうので、例えば日本語で使っていて後から英語DLLを導入した場合、メニューやダイアログはほとんど英語なのに、タイプ別設定やウィンドウタイトルなどが日本語混じりになって???です。
iniを消して全再起動すればよいのですけど。
根本的に直すなら、今後の機能実装で初期値をiniにベタ書きしないような、本体での対応が必要な気がします。
iniには初期値として空欄を設定し、画面表示は空欄だったらリソースから取った文字列を表示するとか。

2011/6/2 (木) 21:14:40 なすこじ  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17
[5724] Re:リソースの外部DLL化
syatさんの意見を参考に ::LoadString() をラップした関数で文字列リソースを読み込む様にしてみました。

 http://www.geocities.jp/nasukoji_7/download/download_sakuraeditor.html
  14-2. sakura_multi_lang_20110602.zip

CLoadString::LoadStringSt(UINT uid)
CLoadString::LoadString(UINT uid)

LoadStringSt()は4個ある静的バッファに文字列を取り込みます。バッファをぐるぐる使いまわすので、5回リソースを読み込むと最初の文字列が破壊されます。

LoadString()は変数を準備して使用します。
 CLoadString cStr; cStr.LoadString( リソースID );

アルファベット順で CEditView_Diff.cpp まで変更完了しています(残り300箇所ちょっと)
ひとまずこんな感じです。

そういえば「No Title」に番号が付く件は現在そのままです。
あとVC2008以降でないとビルドが通りません。

これから暫くはサクラエディタ以外の事をするので、この件には手を入れられなくなります。

ではでは。

ページ:[ ] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [ ]
INCM/CMT
Cyclamen v3.81
[ut:0.060][st:0.010]