喫茶XRAYトップページ


[3977] plContextMenu in Windows2000返信 削除
2010/12/3 (金) 23:29:51 Sara
Mr.XRAYさん こんばんは。

クリップボードにファイルコピーの情報がある状態の時に
plContextMenuでフォルダーを新規作成すると・・・
親フォルダーにファイルが貼りつきます・・・(^^;

Windows7では正常に動作するようです。
WindowsXPは・・・例によって新規作成メニューが出たり出なかったりで、
テスト時に表示されなかったので、不明です・・・(^^;

以上 ご報告まで(^^)

[3978] Re:plContextMenu in Windows2000返信 削除
2010/12/4 (土) 00:28:33 Mr.XRAY
▼ Saraさん

> plContextMenuでフォルダーを新規作成すると・・・
> 親フォルダーにファイルが貼りつきます・・・(^^;


なんと言う現象なんでしょう (^^;
先ほどまでコンテキストのコードいじっていました.
もう少し,これが長いんですよね.

情報サンクスです.
さて,明日ですね.勝負どころは.


[3979] Re:plContextMenu in Windows2000返信 削除
2010/12/4 (土) 00:54:33 Mr.XRAY
▼ Saraさん

> plContextMenuでフォルダーを新規作成すると・・・
> 親フォルダーにファイルが貼りつきます・・・(^^;


これだけじゃないんですが,
文字列の処理に関係がありそうです.
さきほどまでちょっテストしていたんですが,私もへんなところに
「新規作成」ができたことがありました.

文字列の関係のテスト用に別のプログラムでテストしていたら,
「マイ コンピュータ」が「AAA」になってしまいました(笑)
もう,いや!!


[3981] Re:plContextMenu in Windows2000返信 削除
2010/12/5 (日) 08:21:08 Mr.XRAY
▼ Saraさん

> 以上 ご報告まで(^^)

現象を確認したのですが,チェックしていて,考えました.
ついでに,ソースコードを少しいじる予定です.
参考にしたサイトのほとんどそのままだったので,自分用に変数名等も.
で,少し時間がかかりそうです.


[3982] Re2:plContextMenu in Windows2000返信 削除
2010/12/5 (日) 13:17:41 Sara
▼ Mr.XRAYさん こんにちは

> 参考にしたサイトのほとんどそのままだったので,自分用に変数名等も.
> で,少し時間がかかりそうです.


了解です(^^) 時間は気にせずに、ゆっくりやってください(^^)V
(さすがに何年もかかりませんよね・・・(^^; )

[3983] Re3:plContextMenu in Windows2000返信 削除
2010/12/6 (月) 16:16:39 Mr.XRAY
▼ Saraさん,コンテキストメニューコンポを使おうと思っている皆さん.

> (さすがに何年もかかりませんよね・・・(^^; )

えっ,私が「少し時間がかかる」と言ったら,普通3年ぐらいです!!
冗談ですよ,冗談.すぐ本気にするんだから,もう.

非公開API使うことにしました.
いやー,難しいです,
項目識別子関係での文字列扱いは.
Delphi 2009以降ですと,自動で認識する型も,Delphi 6付近は,
Strintg型だと,全く認識しなかったり,WideStringにすると認識
しなかったり.認識すると,今度はDelphi 2010で認識しなかったり,
内部(つまりDLLの関数内)で自動処理してくれよな.無理か?

(WindowsのバージョンによってAPIの引数が違うことがある?)

「普通3年ぐらいです!!」
といえば,印刷プレビューコンポの,余白だったか,微妙にずれていて,
プリンタの関係じゃないかとずっと思っていたのですが,
お名前は失念しましたが,ある方からのメールで,
「ここではないのですか?」
とコードを送ってきてくれました.
それで直ったんです.MSDNの記事の英文の読み違いが原因でした.
気が付いてから,3年近くたってからです.
なんともおバカなことです.

もうだいぶ前のことですが,ありがとうございました.


[3984] Re4:plContextMenu in Windows2000返信 削除
2010/12/6 (月) 19:56:27 Sara
▼ Mr.XRAYさん こんばんは

> えっ,私が「少し時間がかかる」と言ったら,普通3年ぐらいです!!
> 冗談ですよ,冗談.すぐ本気にするんだから,もう.


まぁ冗談はともかく、Delphi XEの次が出るまでには片が付いていると
当面の余分な仕事が増えなくてよいかも・・・
(もっとも、最近のDelphiは毎年でるけど・・・)

Delphi2010のプロジェクトを先日XE上で開いてコンパイルしてみたら・・・
あちこちで、エラーがでまくって エラー部を修正して実行したら
問答無用で異常終了してしまった・・・
まぁ、作りが悪いと言ってしまえばそれまでなんですが・・・(^^;
2010で正常に動作しているのだからもう少し動いてくれても・・・(^^;;;
おかげで、自作のコンポーネントの問題なのか、プログラム本体の問題なのか
検証に時間がかかりそうで・・・当面2010に逃避しています。

>Delphi 2009以降ですと,自動で認識する型も,Delphi 6付近は,
>Strintg型だと,全く認識しなかったり,WideStringにすると認識

コンポーネントって2007以前と2009以降の2種類に分けたほうが楽とかいうことは
ないんですか?
(私の自作コンポは公開予定がまったくないく、自分の環境でしか動かない
 ように作っているので、考えたことないですが・・・)

>(WindowsのバージョンによってAPIの引数が違うことがある?)
いや、それはないでしょう・・・(ないと願いたい)


> それで直ったんです.MSDNの記事の英文の読み違いが原因でした.
> 気が付いてから,3年近くたってからです.

あぁ、 ありがちです・・・知識や力量が当時より上がっている状態で
当時のソースとかみると、とんでもない記述とか見つけたりするし・・・(^^;
それに、自分で書いたソースってスクラップ&ビルドをしている最中は
まったく信用してないんで不具合も探しやすいですが、ある程度動作確認が
とれてくると、細かい間違いが目に留まらなくなるんですよね・・・
(私だけか?)



[3985] Re5:plContextMenu in Windows2000返信 削除
2010/12/6 (月) 21:01:48 Mr.XRAY
▼ Saraさん

> コンポーネントって2007以前と2009以降の2種類に分けたほうが楽とかいうことは
> ないんですか?


Delphi 2009が出た頃に,ネット上の自サイトでそんなことを書いている方も
いましたね.
一番のネックは文字列ですが,これはUnicode以前はAnsiですし,
Delphi 2009以降はUnicodeですから,割りと簡単です.
バージョン別ではなく,同じソースコードですと,バグは見つけやすいと
思っています.
それと,新らしいDelphiのバージョンの機能を無理に使わなくてもすみます
(これは異論があるかも)

> >(WindowsのバージョンによってAPIの引数が違うことがある?)
> いや、それはないでしょう・・・(ないと願いたい)


でしょうね.ハハハッ

> まったく信用してないんで不具合も探しやすいですが、ある程度動作確認が
> とれてくると、細かい間違いが目に留まらなくなるんですよね・・・
> (私だけか?)


これはありますよね.
それに,いろいろいじっていると見つかるというのもありますから.
その意味でも,こうしてネット上での報告は意味がありますよね.
自分だけだと見つからない現象もみつかりますから.


[3986] バグ修正完了返信 削除
2010/12/6 (月) 21:11:22 Mr.XRAY
まだWindows XPでの確認ですが,D6 - XEまでと
Windows 2000でも動作確認しました.

明日,Vistaと7で動作確認して,記事の修正と追加をする予定です.
UPは明日か,明日以降となります.


[3987] Re:バグ修正完了返信 削除
2010/12/7 (火) 12:27:10 Sara
▼ Mr.XRAYさん こんにちは

> まだWindows XPでの確認ですが,D6 - XEまでと
> Windows 2000でも動作確認しました.
>
> 明日,Vistaと7で動作確認して,記事の修正と追加をする予定です.
> UPは明日か,明日以降となります.


もう直ったんですか? Excellent!!

すごいですね(^^) Mr.XRAYさんの「少し時間がかかる」は
次の日に修正完了で動作検証で1日くらいなんですね。(笑)

まぁ、冗談はおいといて、1週間程度は見ているのかと思いましたが、
すばらしいです。 頭が下がります。m(_ _)m

アップを楽しみにしています。(^^)V

[3988] Re2:バグ修正完了返信 削除
2010/12/7 (火) 18:32:58 Mr.XRAY
> すごいですね(^^) Mr.XRAYさんの「少し時間がかかる」は
> 次の日に修正完了で動作検証で1日くらいなんですね。(笑)


いえ,たてぐやさんから報告があったてからだいぶ経っています.
コンポはインストール済みですから,その手間はないので,順番に
動作確認するだけですね.
動作確認しやすいようにテストプログラムをいくつか用意しているんです.

ただ,時間がかかるのは,誤字脱字の多い記事の方です.

で,今UPしました.
UPしてから気がつきました.いつものことてすが.
ドロップソースコンポなんですが,ドラッグ中に画像を表示するように
しましたが,マウス右ボタンでドラッグして,放すと画像が消えます.
「ドラッグ中」つまり「中」ですので,とりあえず仕様とします (^^;


[3989] Re3:バグ修正完了返信 削除
2010/12/7 (火) 19:58:45 Sara
▼ Mr.XRAYさん ご苦労様です。

アップしていただいてすぐで、大変恐縮なのですが、

Windows7のフォルダーツリー上でフォルダーの新規作成を行おうとしたら
ショートカットの新規作成画面が表示されます・・・(^^;
(ListView上でも同じでした)

ショートカットの新規作成をしようとしたら、その下のメニューが・・・

しかし、XP上だと正常に動作するようです・・・何故(?_?)


取り急ぎ、ご報告まで・・・




[3990] Re4:バグ修正完了返信 削除
2010/12/7 (火) 20:50:20 Mr.XRAY
▼ Saraさん,もうテストしてくださったんですか.

> ショートカットの新規作成画面が表示されます・・・(^^;
> (ListView上でも同じでした)


あれっ,ほんとに「新規作成メニュー」のハンドルが取得できていない
ようですね.
調べてみます.


[3991] Re5:バグ修正完了返信 削除
2010/12/7 (火) 20:55:05 Mr.XRAY
> あれっ,ほんとに「新規作成メニュー」のハンドルが取得できていない

ハンドルは取得できています.
参った,マイッタ.

[3992] Re6:バグ修正完了返信 削除
2010/12/7 (火) 21:31:31 Sara
▼ Mr.XRAYさん こんばんは

> ハンドルは取得できています.
> 参った,マイッタ.


そうですね。

      Command := TrackPopupMenu(Handle,

で Commandに入る値が1多いんですよね・・・
OS確認して2引けばよさげだけど・・・ほんとにいいのか?不明

あと、Delphi2010でコンパイルしたExeをWindows2000に持っていくと
エラーになりますが(添付の図を参照)、LoadLibraryを使うと動作します。
ちなみに、ILCreateFromPathWなだけに、序数は190です。

以上 途中報告でした。(^^)

[3993] Re7:バグ修正完了返信 削除
2010/12/7 (火) 21:50:55 Mr.XRAY
▼ Saraさん

Saraさんから報告のあった現象,直っていないですね.

> で Commandに入る値が1多いんですよね・・・

そのようです.ビットマップ作成なのに,別のができたり....

> あと、Delphi2010でコンパイルしたExeをWindows2000に持っていくと
> エラーになりますが(添付の図を参照)、LoadLibraryを使うと動作します。
> ちなみに、ILCreateFromPathWなだけに、序数は190です。


実は,ILCreateFromPathWは使っていないんです.
Wのないのを使用しています.
ないと,Windows 2000がかってにWの付いたのを探しにいくようです.
今回の場合,Saraさんの修正で動作しますが,コンポ,サンプル
プログラム集でも同じ現象が発生します.

無難なのは,Ansi版のDelphi,つまり,Delphi 2007以前のDelphiで
コンパイルすることですね.
参考までに,


[3994] Re8:バグ修正完了ではなかった!!返信 削除
2010/12/7 (火) 22:06:09 Mr.XRAY
新規作成のメニューが,
Windows 7では[新規作成(&X]で,Windows XPでは[新規作成(&W)]
なんですよね.
何か変更があったのかも知れません.OSのバージョンで分岐するコード
を追加してテストしてみます.


[3995] Re8:バグ修正完了返信 削除
2010/12/7 (火) 22:08:01 Sara
▼ Mr.XRAYさん 手ぐすね引いて待っていました(爆)

> 実は,ILCreateFromPathWは使っていないんです.
> Wのないのを使用しています.
> ないと,Windows 2000がかってにWの付いたのを探しにいくようです.

ん? FpidlFolder := ILCreateFromPath(PChar(Dir));の部分で
Delphi2010だとPcharがpWideCharだからW付が呼ばれるわけではないの?
(私の認識間違いです?(^^; )

たまたま、Windows2000で動いているだけで問題あり? (^^;

うーん 困った・・・

[3996] Re9:バグ修正完了返信 削除
2010/12/7 (火) 23:16:11 Mr.XRAY
▼ Saraさん

> Delphi2010だとPcharがpWideCharだからW付が呼ばれるわけではないの?
> (私の認識間違いです?(^^; )


ああっ,そうですよね.
失礼しました.Delphi 2010でコンパイルしたんてすから.
ハハハッ.って笑ってごまかす.

>たまたま、Windows2000で動いているだけで問題あり? (^^;

修正して動作すれば問題ないと思いますが,
「勝てば官軍,動けば正義」です.
当サイトのコンポ類,サンプルも同様にして動作させることはできますが,
確実なのはDelphi 2007以前,だということです.ハイ.


[3997] 再修正版UPしました返信 削除
2010/12/8 (水) 00:11:24 Mr.XRAY
再修正しました.
これで何とか....  神だのみ.


[4000] Re:再修正版UPしました返信 削除
2010/12/8 (水) 20:35:26 Sara
▼ Mr.XRAYさん こんばんは

> 再修正しました.
> これで何とか....  神だのみ.


夜遅くまでありがとうございます。
また、朝早くにご苦労様です。(^^)

こちらで、Windows2000、WindowsXP、Windows7での動作を確認しました。

今のところ、問題なく動作しているようです。(^^)V

これで、心置きなくプログラムを公開できます。(爆)

>いい加減なやつだとお思いでしょうが,いい加減なやつほど...
>なんでしたっけ?

さて・・・なんでしたっけ? わたしもいい加減なんで・・・(^^;


[4001] Re2:再修正版UPしました返信 削除
2010/12/8 (水) 21:31:34 Mr.XRAY
▼ Saraさん,どうもです.

> 今のところ、問題なく動作しているようです。(^^)V

Saraさんのおかげです.一度UPしてしまうと,どうしてもそのままという
状態が多いんですよね.
このようなやりとりができ,掲示板を設置した甲斐があるというものです.
私もたまにですが,サンプルを作成する時に,参考にしたサイト,
ほとんどがプログですが,発言したり,メールしています.

でも中々できなないですよね.ちょっびり決断が必要です.
今回の訂正で,また項目識別子がでてきたので,次回は項目識別子に関する
記事でも書いてみようかな? と思っています.


[3999] WideStringとString型返信 削除
2010/12/8 (水) 06:19:31 Mr.XRAY
> 実は,ILCreateFromPathWは使っていないんです.

これ,何故Wのついたのを使っていないかですが,
Wのを使用して,全てWideStringかPWideCharにしてもよさそうなんですが.

例えば,APIの中に引数としてPWideCharのがある時に,うまく,と言うか,
値を返さなかった,つまりnilを返す場合があったんです.
これは,DelphiのバージョンとOSによるんですが,
Delphi 2007以前の利用者に,プロパティはWideStringにしてください,
というのもいいのですが,文字列はString型に統一したかったものですから.

全て内部でWideStringに変換してもいいのですが,今後はDelhi 2010以降が
主流になることを考えると,Stringにしたいという思いもあるんです.
このあたりは,作成する側(今回は私ですが)のポリシーみたいなのかな?

でも,もしかしたら,私のコーディングの間違いかも知れません.

# まだ完全に目が覚めていません.


[3998] Re7:バグ修正完了返信 削除
2010/12/8 (水) 06:07:39 Mr.XRAY
▼ Saraさん

> で Commandに入る値が1多いんですよね・・・
> OS確認して2引けばよさげだけど・・・ほんとにいいのか?不明


というわけで,動けば正義ということでそうしちゃいました.
まだ,テストが十分ではないと思いますが,とりあえず.
いい加減なやつだとお思いでしょうが,いい加減なやつほど...
なんでしたっけ?


INCM/CMT
Cyclamen v3.82