ホームへ戻るData Base 桐 User Board過去ログ一覧検索プロパティほっ!
過去ログ No111


   書き込み数 : 5550件


<5550> Re>5548「表引き」 /悲しげ 2004年08月13日 金曜日 16時34分30秒
「項目属性の表引き」の対象表名は変数を使えるようですから、別項目を使って変数に表ファイル名を代入すれば可能かもしれません。
例えば仮称[作業]なる項目を用意して、その項目計算式を
#計算(
   #cond([区分]=1,#代入(&選択ファイル名,"中華マスター.tbl")
     ,[区分]=2,#代入(&選択ファイル名,"洋食マスター.tbl")
     ,[区分]=3,#代入(&選択ファイル名,"和食マスター.tbl")
     )
   )
のようにして、「項目属性の表引き」の対象表名を「&選択ファイル名」とする、とか。

テスト用データが無いので、試してませんが(^^;)

あ、3つのマスターの項目構成が同じであることが前提です。もし、比較項目とか値項目とかが異なっていたら、話はますますややこしくなりますから。
いずれにせよ、私ならやはりマスターはひとつにすると思います。
<5549> Re>5548「表引き」 /悲しげ 2004年08月13日 金曜日 16時06分18秒
ここで云う「表引き」が、項目計算式の「#表引き」関数を指すのであれば
「区分を入力することによりそれぞれのマスターから表引きすること」は
簡単です。
が、「項目属性の表引き」を指すのであれば、複数の表引き対象表を切り
替えることは困難だろうと思います。
どうしても「項目属性の表引き」を使いたいのなら、いっそのこと、中華
マスター・洋食マスター・和食マスターを(それぞれの分類フラグ的項目
を増設した上で)ひとつの表にまとめてしまったらどうですか?
<5548> こんな表引き可能ですか/ET 2004年08月13日 金曜日 15時55分04秒
それぞれ中華マスター・洋食マスター・和食マスターファイルがあり
売上のところで区分を入力することによりそれぞれのマスターから表引きする
ことて、できますか?
<5547> Re:日本語表記/ド・モ・ONnoji 2004年08月12日 木曜日 13時01分05秒
気にすれば気になるけれど、
ネットサーフィンとかけて、何ととく?
そのこころは…という洒落でいいんじゃないでしょうか。
ごめんなさいm(__)m>たゆーさん

私はサムネイルの綴りを間違えたまま堂々とHP公開していたりします。(T_T)

<5546> 日本語表記/うにん 2004年08月11日 水曜日 20時31分54秒
余談ですが、WEBというつづりなのであんまり「ウエーブ」と
伸ばした表記はしないと思います。
WAVEと間違われそう。
<5545> 地図の回転/たゆー 2004年08月10日 火曜日 08時47分24秒

ウエーブ上で地図を利用(見る)する機会は多々あると思います。
いつもは、http://map.yahoo.co.jp/ が多いです
昨日、auショップ検索をみてましたら、おもしろい地図が
ありました

http://www.au.kddi.com/ の一番上の「auショップ検索」から
はいれますが、地図を回転して表示してくれます。
操作は縦スクロールで拡大・縮小、横スクロールで回転
地図上のマウスクリックデ移動となってます

javaを利用していますので
>本ホームページを快適にご覧いただくためには
>Sun Microsystems, Inc.社のJava Plug-inが必要です。
と、ただし書きがついてます。

そういえば、イトーヨーカドーなんかも、どこを表示しても
その範囲にある店舗がマーク化されて表示されますね
<5544> サブフォームを使用した場合の・・・/たゆー 2004年08月08日 日曜日 22時45分55秒

久しぶりの書き込みで、たいしたことはないのですが(私だけの新しい発見です)

何かの処理をしたいとき、コマンドボタンに
 機能:表示、パラ:確定する
殆どこれでうまくいってましたが、今回サブフォームを利用した
フォームではうまく行きませんでした

メインのコマンドボタンで、手続き実行を行うと、サブフォームが編集中は
>KU1068:対象表が更新中またはグループ操作中のためこのコマンドは使用できません
が、出るのですね

結局は定義の最初に
>メソッド呼び出し @subリンク.@フォーム.更新モード設定( 0 )
たったこれだけいれれば済むだけの話でしたが。
何でも試してみなければわかりませんね

ps。今年は、10〜15日を不在とさせていただきます
<5543> そろそろ桐10?/桐がくれ歳蔵 2004年08月06日 金曜日 07時54分08秒
たしか桐8のセミナーの時に桐10を開発している。。。。。
とのアナウンスがありましたが、
この秋ぐらいに桐10に関するアナウンス。。。。。
ってなことないかなぁ!
<5542> Re:ウィンドウの表示状態を設定する/hidetake 2004年08月01日 日曜日 08時43分57秒
> findwin.dll

こちらも DynaCall でもちゃんと使う事が可能でした! ヽ(^o^)丿

Set UserWrap1 = CreateObject("DynamicWrapper")
Set UserWrap2 = CreateObject("DynamicWrapper")
UserWrap1.Register "findwin.dll", "FindWinEx", "i=lssss", "f=s", "r=l"
UserWrap2.Register "user32.dll", "ShowWindow", "i=ll", "f=s", "r=l"
UserWrap2.ShowWindow UserWrap1.FindWinEx (0, "#32770", "", "Static", "変数名(&M) :"), 1

これでも「変数管理」の表示がちゃんとできました!!! (^^)
<5541> Re:ウィンドウの表示状態を設定する/hidetake 2004年08月01日 日曜日 08時34分27秒
> showwin.exe Ver1.00

T.Samura さん、ほんとすばらしいです!

showwin.exe SHOW #32770 NULL Static "変数名(&M) :"
これで、桐9-2004 の「変数管理」の表示・非表示
切り替えもちゃんとできました! ヽ(^o^)丿

<5540> ウィンドウの表示状態を設定する/T.Samura 2004年08月01日 日曜日 01時11分14秒
「ほっ!」に showwin.exe Ver1.00をアップしました。
指定ウインドウに ShowWindow() や SetWindowPos() の操作を行います。
DLLが呼べる言語なら findwin.dll をロードしてウインドハンドル検索部
のみ利用できます。
クラス名が重複しタイトル名無しの複数のウインドウの識別は、子孫ウイン
ドウのクラス名とタイトル名を指定するので、桐V9のウインドウでも識別
できる場合が増えるはずです。
<5539> Re:桐9/hidetake 2004年07月31日 土曜日 09時30分28秒
>この辺は Access より桐の方が使いやすい

Access はこれ加えて、そのフォールドだけでなく
テーブル全体から探し出す機能も持っているか!

桐ではこの辺のやり方は、ときおり質問が出たり
その対処方法も出されたりで、繰り返される内容
ではありますね・・・

1つずつ細かい部分も含めて積み重ねて検討され
より使いやすくしていって欲しいのですが!?・・・
<5538> Re:桐9/hidetake 2004年07月31日 土曜日 09時18分25秒
>桐9で一番うれしかったのは
>文字列項目の絞り込みが「値を含む」
>がデフォになったことかな (^^;

確かに含むで検索したり絞り込む使い方が
多いですね!

でもせっかくだから、どうせならその条件
を覚えてくれるようにして欲しかったかも!?

この辺は Access より桐の方が使いやすい
のだけれど、Access だと「含む」とか
「一致」とかの部分は Access を終了する
までは、前の指定を覚えておいてくれたり
します。
<5537> 桐9/尾形 2004年07月31日 土曜日 08時54分53秒
桐9で一番うれしかったのは
文字列項目の絞り込みが「値を含む」
がデフォになったことかな (^^;

メソッド呼び出し @フォーム.更新モード設定(-1)
キャンセルモードが追加されたのも
<5536> re:<5535>フォームの画面が動かないようにする方法はありますか?/TOM 2004年07月30日 金曜日 18時20分11秒
お世話になります。
bonitoさん、ありがとうございます。うまくいきました。

勉強不足ですいません。
<5535> Re:5534他/bonito 2004年07月30日 金曜日 17時31分04秒
TOMさん、済みません全然読込めていません (^^; が、
メソッド呼び出し @フォーム.描画禁止(1)
メソッド呼び出し @フォーム.描画禁止(0)
とか...ありますけど...

V9...
>私も、とっても不自由になったと感じてます。

>今までの「比較式」が「値」と「比較式」の2つに分かれたという
>か?拡張されたというか?2つになりました。

とかとか...V9(以降)不自由説に少しだけニンマリ(でいいのかなぁ)
こちらは相変わらずV8のままですが、これはH氏が事前情報をくれた
おかげ(?)で、よく考えてみるとH氏の行為(好意?)はうちには販売
促進にはならなかった訳で、これって企業論理からいうと減点対象な
のかなぁ〜なんて、何か申し訳けなさに似た気持ちにもなったりする
んでも!V9(以降)のルックスも性格(?)もどうしてもいまいち好き
になれないわたしなのって感じ...



<5534> フォームの画面が動かないようにする方法はありますか?/TOM 2004年07月30日 金曜日 16時02分20秒
お世話になります。

各ラインから伝票発行依頼が入力され、その依頼数以上に注残がある注文書を選び(同じ
品名の注文書が納期別にある)、伝票を発行するというプログラムを考えているのですが、
基本的に納期の古い順に消化していきますので、依頼数の方が注残より多い場合、行を
追加し、残りの依頼数を次の納期を使い伝票発行する必要が出てきます。
本来ならば、複数の品名がある中で対象品名のすぐ下に行挿入をしたいのですが、
フォームからの入力の場合、行挿入にしても行追加になってしまいますよね。

そこで、[NO]という項目を追加し#連番をし、行追加時に追加元データと同じ[NO]を設定、
[NO]で並べ替えを行い、[NO]で検索して処理対象行に移動するとしました。

この時の見た目は、まず、行追加で終端行へ移動し、その後スクロールバーが動き、
処理対象行へカーソルが移動となるのですが、
上記[NO]を使ったイベントはフォーム上の[最終項目のひとつ前の項目]で動き、
イベント終了後、同一データ行の[最終項目]にフォーカスが移ります。

[最終項目のひとつ前の項目]のイベント発生後、表示画面を動かさないで[最終項目]に
移ってから表示画面が動くようになればメチャメチャ自然な流れになると思うのです。

こんな事って出来るのでしょうか?
宜しくお願いします。
<5533> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月30日 金曜日 16時01分44秒
>eXeScope ソフトを自由にカスタマイズできるリソースエディタ
>http://www.vector.co.jp/vpack/browse/pickup/pw3/pw003953.html
>取扱種別:シェアウェア 動作環境:WindowsXP/Me/2000/98/95/NT

一応、こんなのもありました。
http://pcweb.mycom.co.jp/column/toolexp/013/

Resource Hacker
http://www.users.on.net/johnson/resourcehacker/

日本語版
http://www.users.on.net/johnson/resourcehacker/rh_japanese.zip

ふ〜む
<5532> Re:V9になって操作性は/hidetake 2004年07月29日 木曜日 23時38分57秒
桐の良いところの拡張辞書順(検索)であるが、
どうせなら、日時型はもとより、文字列型の
日付文字列も含めて実際のデータだけでなく、
日付判定して検索したり選び出せれば、桐的
ユーザにはうれしいかも!?

あいまいデータ検索ですね。
<5531> Re:V9になって操作性は/hidetake 2004年07月29日 木曜日 22時53分26秒
あと、桐ver9 で「検索」と「絞り込み」の操作性も変わりましたが
今までの「比較式」が「値」と「比較式」の2つに分かれたという
か?拡張されたというか?2つになりました。

これも今までできたけど、どうしたら良いの?って言う質問がきたり
します。
これも「比較式」1つのまま、追加した部分は拡張として統合して
使えれば混乱も無く良かったのでは無いのかと思います。
簡単に言えば、現状の「値」に「しない」を加えて、というか今まで
のようにこれを基本として、式は式としてかけるし、簡単に指定した
ければ、拡張された部分もわかりやすく使えるようにと・・・


今回新設された「値」ですが、数値項目で、「等しい」にしておいて
(デフォルトのまま)、>1 なんてしてしまうと、設定が等しいなので
自動的に = が付け加えられるのですが、そのために =>1 なんて言う
条件になってしまい、本当は 2以上を選びたいのに、実際には 1 以上
になったりと、つい間違えてしまったり・・・

等しいでも = は入力(指定)できなかったり、他の条件では = や < や
> は使えなかったりと、何か条件も設定もミスっているような気も?


一番の問題は、やはりいろんな場面の条件の指定や呼び出しの部分です
ね! これだけは早く何とかしてもらいたいです。前の方がずっと使い
やすかったと思います。


まぁ〜、いろいろありますね・・・ (;_;)
<5530> V9になって操作性は/たゆー 2004年07月29日 木曜日 22時33分41秒

私も、とっても不自由になったと感じてます。

>ついでに書いておくと、Windows のデフォルトで持っている
>ダイアログであれば、警告メッセージやエラーメッセージ
>など表示された状態で Ctrl + C すると、そのウィンドウ内
>のメッセージをクリップボードにコピーする事ができました。
>これは、桐も桐ver8 まではそうでした。
>
>でも、桐ver9 からは独自仕様になって、このような標準的な
>使い方もできなくなりました。
>エラーが発生してそれを報告しなくてはならない場合でも
>いちいち手入力して打ち直して書き写す必要があります。
こんなのって、とんでもないですね

そのほかにも、フォーム定義画面でも、微妙に違うのですが、
背景色を指定してる場合とそうでない場合
指定してる場合はどこでもクリックしてオブジェクトを選択できますが
そうでない場合、端しかオブジェクトの選択が出来ません

私はこれも不自由と思ってますが、使い方によっては背面に
あるオブジェクトもすぐ選択できるようになったとか・・・

こんな操作方法を待ってた人には人には、歓迎されてるかも?

<5529> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月29日 木曜日 15時29分10秒
> # 角丸めの独自ウィンドウは見てくれ向上だけで他の利点が無いのなら、
> # 開発陣の余剰工数消化用に実装したかもしれませんね。

# う〜む!
# やってもらいたい事や直していただきたい事は
# いっぱいあるのですけれどね!? ;-)
<5528> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月29日 木曜日 15時23分25秒
>movewin.exeへの組み込みは指定方法が複雑になるので需要が有れば別プログラムとして
>対応しますが、どうでしょうか?

別に movewin.exe への組み込みは必要ありません。
このウィンドウのハンドルを知りたいなんて、そう
はいないと思いますし・・・ (^^ゞ

もしあったらいいかもしれないとツールは、クラス
名やタイトルの指定、あるいは、この「変数管理」
などの任意のウィンドウを ShowWindow API で任意
のウィンドウ状態にする。表示とか非表示も含めて・・・
それと、SetWindowPos API を使った HWND_TOPMOST
な設定でしょうか?


例えば、DynaCall を使った WSH だと、次のような
スクリプトで「桐」が他のアプリより絶対前にいて
殿様的な状態になりますよね! (^^;
Set UserWrap1 = CreateObject("DynamicWrapper")
Set UserWrap2 = CreateObject("DynamicWrapper")
UserWrap1.Register "user32.dll", "FindWindowA", "I=ss", "f=s", "r=l"
UserWrap2.Register "user32.dll", "SetWindowPos", "I=lllllll", "f=s", "r=l"

'桐を「常に手前に表示」
UserWrap2.SetWindowPos UserWrap1.FindWindowA ("Kiri9", vbNullString), -1, 0, 0, 0, 0, &H0002 + &H0001
<5527> Re:桐V9の変数管理ウインドウ/T.Samura 2004年07月29日 木曜日 13時44分37秒
桐V9の変数管理ウインドウを特定するならEnumWindows()とEnumChildWindows()を使って
全てのウインドウオブジェクトを列挙して、変数管理ウインドウ固有の情報(桐V8でなら
Class[Static] Title[変数名(&M) :]など)を持つスタティックコントロールオブジェク
トを見つけて GetWindow(hwnd, GW_OWNER)などで属するトップレベルウインドウを求めれ
ば見つかるかもしれません。
movewin.exeへの組み込みは指定方法が複雑になるので需要が有れば別プログラムとして
対応しますが、どうでしょうか?

# 角丸めの独自ウィンドウは見てくれ向上だけで他の利点が無いのなら、
# 開発陣の余剰工数消化用に実装したかもしれませんね。
<5526> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月29日 木曜日 11時17分37秒
>角丸めの独自ウィンドウ

ついでに書いておくと、Windows のデフォルトで持っている
ダイアログであれば、警告メッセージやエラーメッセージ
など表示された状態で Ctrl + C すると、そのウィンドウ内
のメッセージをクリップボードにコピーする事ができました。
これは、桐も桐ver8 まではそうでした。

でも、桐ver9 からは独自仕様になって、このような標準的な
使い方もできなくなりました。
エラーが発生してそれを報告しなくてはならない場合でも
いちいち手入力して打ち直して書き写す必要があります。

そんな面倒な面も増えています。 (-_-;
<5525> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月29日 木曜日 11時10分30秒
>角丸めの独自ウィンドウ

下記の機能紹介を見ればいくつか角丸めウィンドウが
見られると思います。

多くのダイアログ形式のウィンドウがこのようになって
います。でも、ダイアログでも「ファイルパレット」は角がある
し、タイトルバーありの通常のウィンドウです!

機能紹介
http://www.kthree.co.jp/2seihin/1kiri9/4kiri_catalogue/index.html
<5524> Re:桐V9の変数管理ウインドウ/hidetake 2004年07月29日 木曜日 10時57分07秒
>これって、桐V9の変数管理ウインドウは表示時のみ「変数管理」キャプションが出て、非表示
>時には消されるのでしょうか? それとも表示・非表示に関わらずキャプション無しでしょうか? 

これはいつもキャプション無しです。
と言うか、桐ver9 から妙な見た目を気にして、タイトルバー無しで
ウィンドウ自体が角丸めの独自ウィンドウになっています。

例えば「バージョン情報ウインドウ」も一緒ですが、これもタイトル
バー無しで角丸めですが、
movewin.exe #32770 NULL 0 0 200 100 306
なんてやると、ウィンドウ上の表示のためのオブジェクトで
「桐のバージョン情報」と言うタイル表示も1つのオブジェクトに
なっていて、移動した「システム情報(S)」とボタンは、この
タイトルウィンドウの下に描かれます。「桐のバージョン情報」
の方が上になるので、これからはみ出した部分をクリック
しなければ操作できなくなります。


なお、この「システム情報(S)」ボタンを押した結果は、青いタイ
トルウィンドウを持つノーマルなウィンドウなので、なんと
間の抜けた一貫性の使用なのですよね・・・

あとは「環境設定」とか、検索とか絞り込みとか、並べ替え
とか印刷とか、条件を設定するところはこのキャプション無し
タイトルウィンドウ無しの角丸めのウィンドウになっています。
デザインだけでなく、中の使い方の方も変わって、悲しげさん
はじめ改善して欲しいと要望は出されています。そんな代物
です。 :-)
<5523> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月29日 木曜日 10時45分46秒
> movewin versio1.12

どうもありがとうございました! _o_
<5522> 桐V9の変数管理ウインドウ/T.Samura 2004年07月29日 木曜日 10時40分52秒
<5518>
> したが、movewin.exe Kiri9 NULL 0 0 800 600 99999 とやってみましたが、
> 06:19:50 hWnd[0x40426] ID[0] Class[#32770] Title[]
これって、桐V9の変数管理ウインドウは表示時のみ「変数管理」キャプションが出て、非表示
時には消されるのでしょうか? それとも表示・非表示に関わらずキャプション無しでしょうか? 

クラス名のみだとFindWindow()で特定しきれませんからEnumWindows()でウインドウを列挙し
て、列挙したウインドウハンドルの一つ一つから変数管理を特定する「何か」を見つける事に
なります。DynaCall でEnumWindows()のコールバック関数が使えるか、特定する「何か」が
有るかがポイントになります。(GetWindowLong() の GWL_ID が使えるかも)

表示・非表示に関わらずキャプション無しなら、力技で編集可能なリソースエディタで
変数管理のダイアログにキャプション「変数管理」を書き込んでFindWindow()を使う手
も有ります。
eXeScope ソフトを自由にカスタマイズできるリソースエディタ
http://www.vector.co.jp/vpack/browse/pickup/pw3/pw003953.html
取扱種別:シェアウェア 動作環境:WindowsXP/Me/2000/98/95/NT
<5521> Re:ドロップダウンリストのクラス名を教えてください/T.Samura 2004年07月29日 木曜日 08時53分48秒
「ほっ!」の movewin versio1.11 を削除して 1.12 をアップしました。
デバッグモードオフでログが作られるバグ修正版です。失礼しました。
# グローバル変数の使用を嫌いすぎてはいけない

> と ID[0] でした。だから、これらは ID は持っていない?
> という事で、ID からハンドルを探し出すのは無理なのですよね?
親子関係は有るはずですが、(Parent...) と続かない行はEnumWindows()
で見つかるトップレベルウインドウで、(Parent...)と続く行は EnumChildWindows()
で見つかる子ウインドウなので、変数管理やファイルパレットはトップレベルウインドウ
に分類されます。ID からのハンドル探しは無理の様ですね。
余裕が有ったら他のAPIを探してみます。
# Windowsプログラムは API探しが労力の半分を占めます。
<5520> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月29日 木曜日 07時31分23秒
> movewin versio1.11

fModeDebug=0
にしてもログファイルは作られるようです。
07:26:40
07:26:41
07:29:28
中身のない実行時間だけのログです。
これってふつうの利用には煩わしいです。 (^^;
<5519> re:Excelの関数のvlookupのように/たゆー 2004年07月29日 木曜日 06時56分23秒

>MSのExcelの関数のvlookupのように、同じ表の中で商品コードなどを
>参照しながら、一番最近の他項目のデータを複写するということはできないんでしょうか?
桐で、「Excelのvlookup」に似た関数はで「表引き」というのがあります
ただし、別表を参照する関数です

質問の意味を理解できないままの答えですが、

>同じ表の中で商品コードなどを参照しながら、
これは、検索でできます。

>他項目のデータを複写する
項目値を変数にでも代入し、複写でも行えば可能です

もう少し、なにがしたいのかを理解できれば・・・・
<5518> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月29日 木曜日 06時30分18秒
> movewin versio1.11

T.Samura さん! ボタンまでとか移動できるのですね (@_@;
す・ば・ら・し・い!


「変数管理」の ID についてもついでに調べられるかと思い
ましたが、movewin.exe Kiri9 NULL 0 0 800 600 99999 と
やってみましたが、
06:19:50 hWnd[0x40426] ID[0] Class[#32770] Title[]
となって ID[0] でした。なお、「ファイルパレット」も
06:19:50 hWnd[0x503b2] ID[0] Class[#32770] Title[桐ファイルパレット]
と ID[0] でした。だから、これらは ID は持っていない?
という事で、ID からハンドルを探し出すのは無理なのです
よね?
<5517> Re:ドロップダウンリストのクラス名を教えてください/T.Samura 2004年07月28日 水曜日 23時05分50秒
「ほっ!」に movewin versio1.11 アップしました。チャイルドウインドウ(ボタン等)
が移動できます。EnumChildWindows() を使ったら子ウインドウすべての列挙ができたので
トップレベルウインドウはクラス名かタイトルで指定し、子ウインドウはIDで指定します。
チャイルドウインドウの操作には、ある程度ツールが使える知識が必要になります。
<5516> 丸山 2004年07月28日 水曜日 14時19分24秒
在庫管理に使いたいのですが、MSのExcelの関数のvlookupのように、同じ表の中で商品コードなどを参照しながら、一番最近の他項目のデータを複写するということはできないんでしょうか?これができれば在庫管理は完璧になると思うのですが。
<5515> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月28日 水曜日 00時32分07秒
T.Samura さん、ありがとうございます。

そのうちに試してみます。
とわ言ってもリソ−スエディタなんて持っていないし
使った事もないし・・・ (^^;

今はあまり遊んでいる時間も無いのでそのうちに・・・

取りあえずは、先に紹介した ProcessWalker を使えば
表示・非表示の切り替えは事は可能だし、1度出して
おけば、結構長持ちします。 (^^;
まぁ〜、原因不明のトラブルにおちいった時のデバッグ
で使えれば簡単に確認できるかなぁ〜?と思ったもの
ですから! (^^ゞ
<5514> Re:ドロップダウンリストのクラス名を教えてください/T.Samura 2004年07月27日 火曜日 23時50分24秒
hidetake さん、どうも。私は桐V9持ってないのでわかりませんが細部でV8との違いが
多いみたいですね。EXCEL対応位かと思ってバージョンアップしませんでした。お話から
するとドロップダウンリストは能動的にサイズ変更していそうですね。複数のコント
ロールのまとめて制御しているみたい。一旦外部からの移動が効いても桐が修正しそうです。
似たアプリケーションだとメモ帳などはEditコントロールをクライアントエリアに置いて
ウインドウサイズが変わるつど(WM_SIZEメッセージに呼応して)Editコントロールの
サイズを変更してクライアントエリアいっぱいに移動させています。

> 「変数管理」のハンドルを取得するためのうまい手だてって、どうすれば良いのでしょう? (^^;
GetDlgItem(hwndDlg, idControl)ではどうでしょう? hwndDlgに桐のウインドウハンドル、
idControlに kfwres.dll(たぶん)をリソ−スエディタで解析した変数管理ダイアログの
ID番号を入れれば取得できるかも?
>GetDlgItem関数は、 ダイアログ ボックスだけでなく、 任意の親ウィンドウと子ウィンドウ
>のペアに対しても使えます。hwndDlgパラメータが親ウィンドウを指定し、 子ウィンドウが
>一意の識別子 (CreateWindow関数またはCreateWindowEx関数を使用して子ウィンドウを作
>成したときにhMenuパラメータに指定された識別子) を持っていれば、 GetDlgItem関数は子
>ウィンドウのハンドルを返します。
<5513> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月27日 火曜日 23時16分08秒
T.Samura さん、こんばんは。

そこまでして実際にうまく動作するものなのでしょうか?

桐の入力支援ボタンのドロップダウンリストは、例えば
長い値が設定されていたとして、それが表示された場合は
基本的には、フォームの幅に収まる範囲内で表示されます。

そして、その値のところに実際にフォーカスが当たった
段階でフォームをはみ出してまで、基本は右方向に伸びて
全部の値を表示しようとします。

右方向のデスクトップに制限があるとかで入りきれない
場合は今度ははみ出せない分が左方向に伸びて全部を表示
しようとします。
まずはフォームの幅も見て描画されているようです。

中の処理がどうなっているのかわからないので、無理
矢理動かせたとして、実際にどう動くのかやってみない
とわからないでしょうが? どうなのでしょうね?


# 桐もver9 になって、みょうな見栄えを気にして
# キャプションの無いウィンドウが多用されるように
# なったため、ダイアログなどクラス名は特定できて
# もキャプションで確定できないので、movewin など
# は実に使いづらい状態となっています。
#
# デバッグ用にいつでもどこでも、非表示状態で隠さ
# れている「変数管理」を呼び出そうと、WSH で
# API を呼び出せる DynaCall を使い
# Set UserWrap1 = CreateObject("DynamicWrapper")
# Set UserWrap2 = CreateObject("DynamicWrapper")
# UserWrap1.Register "user32.dll", "FindWindowA", "i=ss", "f=s", "r=l"
# UserWrap2.Register "user32.dll", "ShowWindow", "i=ll"
# UserWrap2.ShowWindow UserWrap1.FindWindowA ("#32770","変数管理"), 1
# なんて言うスクリプトを作ってみましたが、桐ver8
# では有効なものの桐9-2004 で動かすためのうまい
# 手だてが見つかりません! (;_;)
# 「変数管理」のハンドルを取得するためのうまい
# 手だてって、どうすれば良いのでしょう? (^^;
#
# 桐9 だとキャプションの無い #32770 なダイアログ
# っていっぱいあるのです。
<5512> Re:ドロップダウンリストのクラス名を教えてください/T.Samura 2004年07月27日 火曜日 22時13分13秒
ドロップダウンリストというと項目に値集合を設定した場合に▽ボタンで出るリストでしょう
か? クラス名を得るツールなどではツールをアクティブにした瞬間にリストが消えるので判
りませんがエディットボックスならクラス名は「K3Edit」です。試しに桐V8のバージョン情報の
ダイアログのOKボタンを移動しようとすると、ダイアログはクラス名「#32770」で移動できま
すが、OKボタンはクラス名「Button」を指定しても移動できませんでした。だからドロップ
ダウンリストのクラス名が判っても movewin.exe では移動できないかと思います。

たぶんWindowsAPIではボタンやリストはコントロールというオブジェクトなので movewin.exe
で使っている FindWindow() や EnumWindows() ではウインドウ(ハンドル)が得られません。
桐のプログラム(たぶん kfwres.dll)内で指定しているコントロールIDを探して
GetDlgItem() 関数でウインドウ(ハンドル)を得れば移動できると思いますが、
movewin.exe の変更が必要なのとドロップダウンリストはダイアログ内のオブジェクトでなく
表編集クライアントエリアにCreateWindow()で作られたオブジェクトなのでコントロールIDを
探すのが非常に困難だと予想されます。

movewin.exe の変更は興味は有りますが十分な理由と使い道が無ければ労力を使っての作成
までには至りません。TOMさんはどういう理由でドロップダウンリストの移動をしたいの
でしょうか、なにか切実な理由があるのかお聞かせ頂ければ、約束はできませんが対応する
かもしれません。理由(要望)によっては桐の機能で解決できるかもしれませんし。
<5511> Re:ドロップダウンリストのクラス名を教えてください/hidetake 2004年07月27日 火曜日 17時43分10秒
ドロップダウンリストって、ウィンドウを動かせるような代物
ではないのでは無いですか?

そもそもテキストボックスにぶら下がって表示されるものです
し、可変で自分自身だけで成り立つようなものでもないと思い
ます。

桐の場合、入力支援ボタンのドロップダウンリストは最大表示
行数も指定できるし、表示幅も与えられた値に応じて、相当幅
までは表示してくれますしねぇ〜


クラス名を扱うようなソフトを使う場合、やはり自分で調べら
れるようで無いと厳しいと思います。使い方によって危険性
さえも無いとは言えないでしょうから? :-)
<5510> ドロップダウンリストのクラス名を教えてください/TOM 2004年07月27日 火曜日 17時05分06秒
お世話になります。

以前<5467>で質問させて頂いたので、しつこくて申し訳ないのですが、
何卒、何卒、お願いします。

(ひょっとして、ドロップダウンリストの移動は無理なのでしょうか?)

<5509> とりあえずタイトルの件/TOM 2004年07月27日 火曜日 16時56分41秒
お世話になります。
悲しげさん、うにんさん、どうもありがとうございます。
色々と勉強になります。

私はてっきり、「re」が返信(return)で、「fw」が往信(forward)だと思ってました。
<5508> re: fwとは? /うにん 2004年07月26日 月曜日 19時50分18秒
reは省略形でなくそれ自体1つの単語なのです。
http://www.excite.co.jp/dictionary/english_japanese/?search=re&match=beginswith&dictionary=NEW_EJJE&block=41696&offset=1354
だから、そこの用例を見ると本当はre:などと記号で区切る必要もないようです。
<5507> fwとは? /悲しげ 2004年07月26日 月曜日 19時31分26秒
Forward(FW)とは一般的には「電子メールなどの内容をそのままほかの相手に転送すること」を指すものだと私は理解しています。
掲示板(BBS)へのコメントは、「転送」ではないし、当然「メール」でもないと思うので、タイトルに "FW" とあるのは、私としては何だかちょっと違和感が・・・。(^^;)
BBSでのコメントタイトルの頭は、"Re" が一般的ではないでしょうか(ReplyとかResponseとか)?

<5506> fw:更新中の行の項目訂正?/TOM 2004年07月26日 月曜日 19時24分35秒
ごめんなさい。<5505>間違えて送ってしまいました。
お世話になります。

悲しげさん、どうもありがとうございます。
「項目値代入」コマンドというものがあるんですね。
早速、多用しちゃいそうです。

>う〜ん、お尋ねの件は、現在処理対象行についてなんですよね?
>とすれば、なぜここで「直前行」云々の引用4行が出てくるのか、その
>意図がイマイチ判らないので、さりげなく無視させていただいて(^^;)
そうですね、やっぱり意味不明ですね。
私は、てっきり更新中は項目値の訂正が出来ず、コマンド機能からのみ
訂正や削除の処理が出来るのだと思いっきり勘違いしていました。

それで、あの4行を頂いた時に、プログラム上"未定義にするオブジェクト"の
フォーカスの設定を禁止にしていたので、さらに1行(フォーカス移動)が必要になり、
透明なコマンドボタン(フォーカス禁止)に、頂いた「2行目〜4行目」+「フォーカス移動」の
4行を設定し、もとのコマンドボタンは"直前行"と"手続きの実行"の2行にし
"手続き実行"からイベントに入り、そこから"メソッド呼び出し @透明ボタン.実行()"で
一連の流れが出来た時には、これで更新中も項目値を変更出来る(この時点では削除だけ)と
喜んだのです。

送る前にはいつも何回か読み返すんですけど、どう説明したらよいものやら。
今回も意味不明になりそうです・・・
<5505> fw:更新中の行の項目訂正?/TOM 2004年07月26日 月曜日 18時57分14秒
う〜ん、お尋ねの件は、現在処理対象行についてなんですよね?
とすれば、なぜここで「直前行」云々の引用4行が出てくるのか、その
意図がイマイチ判らないので、さりげなく無視させていただいて(^^;)

<5504> Re>5503 訂正(^^;) /悲しげ 2004年07月26日 月曜日 17時23分15秒
「入力後」イベントで「表示モード」ってことは有り得ませんでしたね。(^^;)
「更新モード取得」メソッド関連の行と「表示モード」「行訂正」の行は
削除して下さい。(^^;)
<5503> Re>5502 更新中の行の項目訂正 /悲しげ 2004年07月26日 月曜日 17時19分14秒
う〜ん、お尋ねの件は、現在処理対象行についてなんですよね?
とすれば、なぜここで「直前行」云々の引用4行が出てくるのか、その
意図がイマイチ判らないので、さりげなく無視させていただいて(^^;)

現在更新中のモードのまま、他項目値の値を更新するには「項目値代入」
コマンドを使います。(ちなみに、表示モードで他項目値を更新する時
は「行訂正」コマンドを使います)
で、ともかく項目1の値を入力したら項目2の値を自動的に書き換えたい
のであれば、イベントとしては「入力後」か「ソース値更新」を使うの
が一般的だと思います。例えば
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
手続き定義開始 t項目1::入力後(参照 文字列 &編集文字列,・・・・
 変数宣言 自動,長整数{&更も}
 method @フォーム.更新モード取得(&更も)
 if(&更も=0) /*表示モード*/
  行訂正 [項目2]=ほにゃらら
 else
  項目値代入 [項目2]=ほにゃらら
 end
手続き定義終了
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
のように。
※項目2をどのような値に変更したいのかが不明なので、仮に"ほにゃらら"
 としていますが、本当は項目1の値を使って変えたいのですよね?
<5502> 更新中の行の項目訂正?/TOM 2004年07月26日 月曜日 16時52分38秒
お世話になります。

以前、うにんさんに「直前行で複写された行の特定の項目値を取り消す方法?」
を教えて頂きました。
>直前行
>フォーカス移動 未定義にするオブジェクト
>すべて選択
>削除

例えば、行挿入または行訂正で項目1、項目2に値を入力した後、そのままの更新モードで
項目1に戻った時又は項目1を再度更新した時、項目2の値を変更する方法はないでしょうか?
こんな感じで、更新状態のまま?(ファンクションキーが青いままなので・・・)。

宜しくお願いします。


<5501> re:<5500>/TOM 2004年07月23日 金曜日 17時18分32秒
お世話になります。

hidetakeさん、ありがとうございます。
KIRI9.HLPで上手くいきました。

Copyright (C) 2000 CGI Arkadia All rights reserved.
Script written by Shintaro Wakayama.
BBS-TypeN Ver.2 Preview4
remodel advice by hidetake