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


   書き込み数 : 5700件


<5700> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 21時40分39秒
>桐が内部で保持しているステータスバー有無の変数値の取得はまず出来ないので、
>なにかステータスバー有無を外部プログラムから調べる方法か、
>外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。
>どなたかアイデアをお持ちでないでしょうか。

あとは、これだけを成し遂げようとすれば msctls_statusbar32 な
ウィンドウの現在のスタイルを取得して WS_VISIBLE な 0x10000000
が立っていれば表示状態で、そうでなければ非表示状態ではあります。

このスタイルを外部から設定しても、桐のメニューバーのステータス
バーの状態も一致(追従)することから、ポップアップメニューが出る
段階で桐はこの msctls_statusbar32 のスタイルを取得して WS_VISIBLE
な状態かどうか判別し、メニューにチェックを表示しているのでは
無いでしょうか?

<5699> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 21時32分45秒
>外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。
>どなたかアイデアをお持ちでないでしょうか。

無理矢理やろうとすれば、桐のシステムウィンドウに対し
Alt + v を Sendkeys する方法あるのでしょうが・・・
スマートな方法では無いですしね!
<5698> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 21時06分06秒
>外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。
>どなたかアイデアをお持ちでないでしょうか。

表示のポップアップ(だけ)を出す方法はわからないですけど
次のような方法で、桐に WPARAM値 として 0xE801 (59393)
を PostMessage すれば、ステータスバーの表示/非表示は
切り替えられるのですよね! トグル方式になってしまう
けど・・・

postmessage.js (DynaCall + JScript の場合)
-----------------------------------------------------------
var WM_COMMAND = 0x0111;
var UserWrap = WScript.CreateObject("DynamicWrapper");
UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=s", "r=h" );
UserWrap.Register ( "USER32.DLL", "PostMessageA", "i=huuu", "f=s", "r=l" );
var hWnd = UserWrap.FindWindow( "Kiri9", 0 );
var result = UserWrap.PostMessageA( hWnd, WM_COMMAND, 0xE801, 0 );
-----------------------------------------------------------

あと、桐での WPARAM値を調べた限り書いておきます。
随分前に調べたものです。
印刷-一覧表                     WPARAM値 0x8012 (32786)
外部データベース接続 WPARAM値 0x8060 (32864)
ファイルパレット WPARAM値 0xA030 (41008)
ヘルプ表示 WPARAM値 0xA032 (41010)
トレース出力ウィンドウ WPARAM値 0xA035 (41013)
トレース出力ウィンドウの設定 WPARAM値 0xA037 (41015)
変数管理 WPARAM値 0xA300 (41728)
表の検査/修復 WPARAM値 0xA301 (41729)
参照整合性 WPARAM値 0xA302 (41730)
環境設定 WPARAM値 0xA310 (41744)
利用者コード WPARAM値 0xA330 (41776)
開く WPARAM値 0xE101 (57601)
プリンタの変更 WPARAM値 0xE106 (57606)
クリップボードコピー WPARAM値 0xE122 (57634)
バージョン情報 WPARAM値 0xE140 (57664)
桐の終了 WPARAM値 0xE141 (57665)
ツールバー WPARAM値 0xE800 (59392)
ステータスバー WPARAM値 0xE801 (59393)
<5697> Re>5692 開始時フォーカスの指定(2) /悲しげ 2004年10月29日 金曜日 20時19分33秒

No.5692 で wrote

>一括処理からフォームを立ち上げた場合、

これってどう「立ち上げた」のでしょう?

もしもフォームの立ち上げ方が「フォーム呼び出し」コマンドとか、
「メソッド呼び出し/実行」コマンドからコマンドボタン「開く」
とかなら、フォームに設定した「フォーム開始」イベントはそのまま
実行されそうな気が・・・・。

あるいは「ウィンドウ作成」コマンドからなら、これを「立ち上げ
る」と称するにはちょっと違和感がありますが、ヘルプにある書式
例では

  ウィンドウ作成 フォーム,ハンドル=&hWnd,カーソル位置=@bOK

となっているので、この例だと、コマンドボタン"bOK"が初期フォー
カスになりそうな気が・・・。

E-Mail

<5696> Re>5692 開始時フォーカスの指定 /悲しげ 2004年10月29日 金曜日 20時07分05秒

イベントからあえて古典一括へ戻すっつーのは、何だか逆行のようで
私としては超不思議な感じがいたしますし(^^;)、少なくとも私はやっ
たことがないので外している可能性大ですが・・・・

試行その1
あるコマンドボタン(仮称「b開始時」)を新設し、その機能とパラを
次のようにする。
  フォーカス移動  "b終了"
その上で、フォームのオブジェクト属性/オプションタブから最下行
の「実行コマンド」/「開始時」を「b開始時」と設定する。

試行その2
開始時実行ボタンもイベントもメソッドも、何も設定しないとすれば、
フォームオープン直後のフォーカスはとにかく「オブジェクトリスト」
上で一番上にある(フォーカス可能な)オブジェクトであるからして、
懸案のボタンオブジェクト"b終了"を、[Shift]+[↑]で一番上に移動さ
せておく。

こんな辺りを試してみてはいかがでしょう?

E-Mail

<5695> Re: ステータスバーを表示しない/T.Samura 2004年10月29日 金曜日 19時34分22秒
多分桐はメニュー項目のチェックマークをつける(CheckMenuItem())タイミングを
[表示][ステータスバー]のメッセージ処理の直後でなく、その後使用者によりポップ
アップメニューがアクティブにされる直前(WM_INITMENUPOPUP メッセージが送られる)
に実行しているのが、外部プログラムからチェックマークを取得できない原因だと思う。

桐が内部で保持しているステータスバー有無の変数値の取得はまず出来ないので、
なにかステータスバー有無を外部プログラムから調べる方法か、
外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。
どなたかアイデアをお持ちでないでしょうか。
<5694> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 17時05分00秒
> 取り敢えず桐の場合は正しいチェック状態が得られ無いので
> MENU_CHECK / MENU_UNCHECK は上手く動きません。

どうしてなのでしょうかね!?

まぁ〜 showwin.exe Ver1.10 も作られたことだし、どうしても
必要であれば、こちらでも対応可能なわけだし、無理してこの
方式で対応しなくても良いのでは無いですか?

Access だったら、次のコマンドで制御が可能なわけだけれど
Application.SetOption "Show Status Bar", True
Application.SetOption "Show Status Bar", False

桐もせっかく 桐ver9 から実行制御コマンドでファンクション
バーの制御も可能になったわけだけれど、ステータスバーの
制御も付け加えて加えてくれたら良かったのに!?
あろはステータスバー上に任意な文字列を設定できるような
コマンドも? (^^;


ちなみに、ステータスバーの表示の状態は桐の場合、環境設定
ファイル(KIRI9.ENV)に記録されています。これを見ればステー
タスバーは表示されるように設定されているのか、非表示に
なっているのかわかります。起動前に、その情報を取り除いて
おくとデフォルトの表示状態になります。(で起動できます)
また、ウィンドウID(メニュー項目ID)も環境設定ファイル内に
ちゃんと記述されていたりするのですよね・・・
でも、このウィンドウID を書き換えたりすると桐は起動不可能
になったりするわけですが! 何故に環境設定ファイルにまで
ウィンドウID を指定しているのですかねぇ〜
<5693> Re: ステータスバーを表示しない/T.Samura 2004年10月29日 金曜日 16時17分06秒
やはり桐だと GetMenuState() でチェック状態を取得できません。
WINFDのスクロールバーのオンオフなどは思った動作をしてくれるのですが。
(kiritool.exe WinFD32Class MENU_CHECK 10248)
ワードやエクセルも図形のチェックマークを使用してますがメニューを実行時に
追加しているようでIDが判らず確認してません。

以下の様に一度[表示]をクリックしないと正しいチェック状態が得られません。
桐の状態→GetMenuState()の戻り値(0x0000は未チェック/0x0008はチェック済)
桐を起動(ステータスバー有り)→0x0000
[表示]クリック(ステータスバー有り)→0x0008
[表示][ステータスバー]クリックでステータスバー無し→0x0008
[表示]クリック(ステータスバー無し)→0x0000
[表示][ステータスバー]クリックでステータスバー有り→0x0000
[表示]クリック(ステータスバー有り)→0x0008
そのまま桐を終了し再起動(ステータスバー有り)→0x0000
[表示][ステータスバー]クリックでステータスバー無し→0x0008
[表示]クリック(ステータスバー無し)→0x0000
そのまま桐を終了し再起動(ステータスバー無し)→0x0000
[表示]クリック(ステータスバー無し)→0x0000

取り敢えず桐の場合は正しいチェック状態が得られ無いので MENU_CHECK / MENU_UNCHECK
は上手く動きません。
<5692> フォーカスの設定/TOM 2004年10月29日 金曜日 13時26分26秒
別の質問をしてよろしいでしょうか?

フォームにコマンドボタンを幾つか作っています。
フォームを立ち上げた時の初期位置として「終了」ボタンにフォーカスが来るように
"フォーム開始"イベントに設定しました。

フォームを直接立ち上げた場合、このイベントは機能するのですが、
一括処理からフォームを立ち上げた場合、「終了」ボタンにフォーカスが移りません。

"メソッド呼び出し・・・"は一括処理で使用出来ると書いていたので、イベントを削除し
一括処理に書き換えてみたのですがダメでした。

何が悪いのか分かりません。
お助け下さい。
宜しくお願いします。
<5691> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 11時28分07秒
> showwin.exe Ver1.10

ちなみに
showwin.exe HIDE Kiri9 NULL msctls_statusbar32 NULL
showwin.exe SHOW Kiri9 NULL msctls_statusbar32 NULL
では、桐のシステムウィンドウの書き換えが綺麗には終了しないようですね!?
多少ウィンドウを操作して再描画発生すれば正しく反映されるのですが・・・

なお、kiritool.exe Kiri9 MENU_CHECK 59393 の方は再描画も綺麗に行われ
ます。

いずれにせよ桐側でシステムウィンドウの再描画を行えば済む問題だとは思い
ますが?
<5690> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 11時17分22秒
>「ほっ!」に showwin.exe Ver1.10 アップしました。
>処理対象をチャイルドウインドウも指定できる様に機能追加。

> // 2004/10/29 FindWin.dll version1.10

下記のスクリプトで可能になりました! (^^)v

Set UserWrap1 = CreateObject("DynamicWrapper")
Set UserWrap2 = CreateObject("DynamicWrapper")
Set UserWrap3 = CreateObject("DynamicWrapper")

UserWrap1.Register "findwin.dll", "FindChildWin", "i=ssss", "f=s", "r=l"
UserWrap2.Register "user32.dll", "GetWindowLong", "I=ll", "r=l"
UserWrap3.Register "user32.dll", "SetWindowLong", "I=lll", "r=l"

hWnd = UserWrap1.FindChildWin ("Kiri9", "", "msctls_statusbar32", "")
nIndex = UserWrap2.GetWindowLong (hWnd, -16)
Call UserWrap3.SetWindowLong (hWnd, -16, nIndex XOR &H10000000)
<5689> Re: ステータスバーを表示しない/T.Samura 2004年10月29日 金曜日 11時15分35秒
症状確認しました。
チェック状態がうまく取得できない様です。メニューの[表示]を4回クリック(ポップ
アップメニューを2回表示させる)してから実行すると望んだ動作をするようです。
桐のメニュー項目のチェック表示がグラフィックを使っているせいか GetMenuState() が
ステータスバーが有るのにチェックされていないと返ってきます。
トグル動作では困るでしょうから少し調べます。

追伸
「ほっ!」に showwin.exe Ver1.10 アップしました。
処理対象をチャイルドウインドウも指定できる様に機能追加。

<5688> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 10時39分12秒
> この辺もバージョンによる動作の違いなのかな?

あれ? 桐ver8 も桐9-2004 も同じようですが? > T.Samura さん
<5687> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 10時36分24秒
>kiri9でもCHECKは"59393"で動きましたが、UNCHECKは動きませんでした。

成り行き上、書いておきますけど UNCHECK は無効なようですが
CHECK を繰り返すことで、ステータスバーの表示/非表示はトグル
方式で切り替わります。

この辺もバージョンによる動作の違いなのかな?
<5686> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 10時31分04秒
TOMさんへ

私は中身を理解して割り切って使う分には構わないと思いますよ
副作用とか危険性とか安全性の確認まで含めて!

そうやって使っていて、桐9-2005 や桐ver10 が出たときはどう
されますか?
最初はわからなくても理解して使っていれば何とか自分でも対処
出来るかも知れません?
でも、理解して使っておらずにただ張りぼてで、それが1つでは
なく、いくつもいくつも張りぼてで、それがそのまま動かなく
なったらどうしますか?

桐の内部の話であれば、管理工学研究所は基本的には上位互換で
バージョンがあがってもそんまま動くようにしてくれるでしょう・・・
でも、今までの話の多くは外部から桐を制御する話で、この部分
では管理工学研究所はあえて互換性を持たせていなかったり、
他にも内部的にはバージョンで大きく変わっているところが多々
あります。
<5685> re<5684>/TOM 2004年10月29日 金曜日 09時44分51秒
いつもお世話になります。

kiri9でもCHECKは"59393"で動きましたが、UNCHECKは動きませんでした。
また、桐を立ち上げた後、手動でステータスバーをアンチェックにしてから
kiritool.exeでCHECKをしようとしてもダメでした。

項目IDが違うのでしょうか?
リソースエディタでの調べ方が分からないので、そのままの"59393"で使ってみたら
動いたので、hidetakeさんによく指摘されているので言われそうな事は分かるんですが、
使えるかもと思うと使っちゃいたいんですよね〜。

出来れば、項目IDが"59393"で正しいのかどうか、また、ステータスバーのON/OFFは
手動が優先されるのかどうか知る事が出来ればうれしいです。
図々しくてすいません。
<5684> 「閉じる」ボタンの無効 KIRITOOL.EXE V.1.30/T.Samura 2004年10月28日 木曜日 22時39分07秒
「ほっ!」に「閉じる」ボタンの無効 KIRITOOL.EXE V.1.30 をアップしました。
コマンド追加 MENU_CHECK/MENU_UNCHECK ポップアップメニューにチェックする/チェックを外す
その他ドキュメント変更(KIRITOOL.TXT)

ポップアップメニューにチェックする/チェックを外す
[表示][ステータスバー]のメニュー項目ID が 59393 の場合(桐V8では59393)
(桐V8 表示:ファイルパレット:41008 ヘルプ:バージョン情報:57664 ファイル:開く:57601 等々)
(メニュー項目IDはリソースエディタ等で kfwres.dll(桐V8の場合) から探す)
(フリーのリソースエディタの例 NeXT VISiON(TM) Resource Explorer 1.1J
 http://www.vector.co.jp/soft/dl/win95/util/se065546.html

※私は桐V9を持っていないので桐V9のメニュー項目IDがわかりません。
 下の例の 59393 は桐V8の場合です。
 桐V9に対して操作する場合はリソースエディタでメニュー項目IDを調べて数値を指定して下さい。

ポップアップメニューのチェックマークを調べ未チェックならチェックする
 システム "kiritool.exe","Kiri8 MENU_CHECK 59393",自動クローズ=する,フルスクリーン表示=しない
ポップアップメニューのチェックマークを調べチェック済ならチェックを外す
 システム "kiritool.exe","Kiri8 MENU_UNCHECK 59393",自動クローズ=する,フルスクリーン表示=しない
<5683> RE:ステータスバーを表示しない/TOM 2004年10月28日 木曜日 19時00分10秒
T.Samuraさん、ド・モ・ONnojiさん、hidetakeさん、どうもありがとうございます。

>オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と
>作業指示するのはそれほど困難な事とは思えませんが。
"欲を出すのは止める事に"というのは、自動を諦めて仰られている方法を採るという事です。
>ニーズが高ければ作成してみますので連絡下さい。
誠にありがとうございます。
まだ、Ver9の社内導入には至っていませんが、もしの時は宜しくお願いします。

>プロパティ名:ステータスバー
>これ使えませんかね?
試してみたのですが、出来なかったので調べてみると、ヘルプのオブジェクト操作の設定で
「つぎのオブジェクト属性は、変更できません。」と書かれている下にステータスバーも
載ってました。
もし出来るのであれば、桐ウインドウにも出来るかもとか思ったのですが・・・  
<5682> そろそろ年賀状/たゆー 2004年10月28日 木曜日 18時26分39秒

今年もシーズンになりましたね。最近はメールとかで、すます方も
多いようですが、それはそれとして

実は年賀切手の存在は知ってましたが、年賀切手に、「お年玉付
年賀郵便切手」があるのですね。知りませんでした。

来年(2005年)
http://www.post.japanpost.jp/kitte_hagaki/hagaki/nenga_hakko/2005/hakko.html
今年(2004年)
http://www.post.japanpost.jp/kitte_hagaki/hagaki/nenga_hakko/2004/stamp.html

そのほかにも、光沢葉書(65円)も発売

いろいろ頑張ってるな〜

<5681> 書店戦争?/たゆー 2004年10月28日 木曜日 18時24分08秒

ちょっと専門書を探しにいってきました。地方の書店と違い
探したい本もすぐ見つかりました。

東京駅周辺はまさに書店戦争状態です。
http://search.yahoo.co.jp/bin/query?p=%bd%f1%c5%b9+%c0%ef%c1%e8&fr=top&hc=0&hs=0

<5680> Re: ステータスバーを表示しない/hidetake 2004年10月28日 木曜日 17時31分35秒
>オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と
>作業指示するのはそれほど困難な事とは思えませんが。

オペレータがファンクションバーは自分の好きなところに置きたいと
ドラッグして、フローティングタイプのファンクションバーにしたり、
あるいは右横が良いとか左横が良いとか操作したりすると、そこまで
しても今までの努力は・・・ と、言うこともあり得たりします。
<5679> Re: ステータスバーを表示しない/ド・モ・ONnoji 2004年10月28日 木曜日 17時16分13秒
たぶん、外しているとおもいますが…
桐ver.9からフォームのプロパティ(属性)に次のようなものが追加されていますが、

オブジェクト:フォーム
プロパティクラス:書式
プロパティ名:ステータスバー

これ使えませんかね?

<5678> Re: ステータスバーを表示しない/T.Samura 2004年10月28日 木曜日 17時02分31秒
>でも、無理との事ですので欲を出すのは止める事にします。
TOMさんへ、<5677> は <5676> を読まれた上での結論でしょうか。
オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と
作業指示するのはそれほど困難な事とは思えませんが。

操作者のスキルにばらつきが有り、どうしても自動でステータスバーを消したい場合は
kiritool.exe に機能追加する形で「メニューのチェックマークを調べチェック済なら
チェックを外す命令を送る」は対応可能かと思います。ニーズが高ければ作成してみま
すので連絡下さい。
<5677> RE:ステータスバーを表示しない/TOM 2004年10月28日 木曜日 15時10分51秒
T.Samuraさん、ありがとうございます。

イベント&コマンドのみで作ったプログラムを、一括処理中心の物に変更しようとしています。
許可作業である程度は制約出来ますが、桐ウインドウが表示されているとオペレーターによる
予見しない動きが出来そうで、また、画面上も若干見づらい気がして・・・

で、フォームのタイトルバーを無しにし、境界線をダイアログにした状態で、一括処理で
フォームの位置とサイズを調べ、ファンクションキー部分だけがフォームの下側に表示され、
1つのフォームに見えるよう桐ウインドウのサイズを設定しました。
フォーム側にタイトルバー(テキストですけど)を作り、最小化ボタンも付けました。

この状態ではファンクションキー側からドラッグされると桐ウインドウのサイズが
変わってしまうところを、頂戴しました"kiritool.exe"で制限出来ました。

何台かのパソコンで試していると(ステータスバーなしの場合、縦に+40)、ステータスバーの
表示されているものがあり、その場合、当然+40ではファンクションキーは表示されません。

フォーム表示
ウインドウリスト取得 &winhdl
ウィンドウ位置 取得, &winhdl, 位置=(&x,&y), サイズ=(&w,&h)
ウィンドウ位置 設定, -1, 位置=(&x,&y), サイズ=(&w,&h+40)
システム "kiritool.exe","Kiri9 DELETE SC_SIZE",\
     自動クローズ=する,フルスクリーン表示=しない

こんな感じで一括処理の中で桐ウインドウのサイズを設定しているので、
この時に、ステータスバーの非表示を設定出来ればと思いました。

でも、無理との事ですので欲を出すのは止める事にします。

<5676> Re: ステータスバーを表示しない/T.Samura 2004年10月28日 木曜日 12時02分43秒
失礼、桐でメニュー→表示→ステータスバーで、オンオフが可能でした。
これを外部から制御したいと言う事でしょうか?
<5675> Re: ステータスバーを表示しない/T.Samura 2004年10月28日 木曜日 11時43分10秒
ステータスバーというと桐ウインドウ最下行の「レディ」とか表示している部分ですよね。
ステータスバーの制御は桐が自前でしているので kiritool.exe では難しいと思います。
桐のステータスバー自体は msctls_statusbar32 というクラス名のチャイルドウインドウ
なのでダウンロードコーナー #150 の movewin.exe で移動自体はできそうですが、
hWnd[0x0db8] ID[59393] (Parent hWnd[0x0d5c] ID[212801608]) Class[msctls_statusbar32] Title[]
movewin.exe Kiri8 NULL 0 0 default default 59393
などで位置変更しても桐が画面を再描画すると元の位置に戻ってしまい実用上無理の様です。
桐自体がステータスバーの表示、非表示に対応しないと無理だと思うので管理工学研究所に
要望するのが解決策かと思います。

TOMさんは手段の可否をお尋ねですが、それに至る使用上の困っている点も沿えて相談された
方が、違った角度からの解決方法が寄せられるかもしれないので回答が得られやすいと思います。
先の桐ウインドウの境界線の件も、恐らくウインドウサイズを触られて元の位置・サイズに
するのが大変で相談されたと想像します。別の解決方法として movewin.exe で任意の
ウインドウ位置・サイズにする方法も取れたのではと思います。
<5674> re<5673>/TOM 2004年10月28日 木曜日 11時19分53秒
ヘルプ→トピックの検索→目次→一括処理&イベント処理→〃リファレンス
でキーワードを「キーダウン」とすろと"キーダウン(イベント)"が出ます。
そこに使用例が載ってます。
<5673> キーダウンのイベントについて/ET 2004年10月28日 木曜日 11時06分56秒
TOMさん、回答ありがとうございます。
キーダウン機能があることがわかりいろいろ
ためしたのですがうまく機能してくれません。
どういうふうにイベントにかくのですか?
ご指導下さい。よろしくお願いします。
<5672> ステータスバーを表示しない/TOM 2004年10月28日 木曜日 09時35分44秒
お世話になります。hw@東です。

"kiritool.exe"はステータスバーの表示、非表示も制御出来るのでしょうか?
もしそのような機能があるのでしたら方法をお教え頂けないでしょうか?

宜しくお願いします。
<5671> 教えてください/kei 2004年10月26日 火曜日 14時29分40秒
たゆさんへ/レスありがとうございました。そうです。WIN版の桐です。なんとか自分で解決できました。今後、DOSの頃に桐を使っていたのを思い出しながら、桐の操作を習得したいと思います。今後とも、分からないときには教えてください。よろしくお願いします。
<5670> re:桐ウインドウの境界線って/TOM 2004年10月26日 火曜日 14時13分49秒
お騒がせしました。
分かりました。ありがとうございます。

>桐で出来ること出来ないことそれらをまず理解し
>桐の基本となる使い方を理解し、積み上げていか
>ないで難しい要求だけで望んでも破綻しますよ?
ご忠告ありがとうございます。

難しい事は分かりませんが、ここでの皆様の回答は
大変助かっております。
これに懲りず、また、宜しくお願いします。
<5669> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 13時39分35秒
>Windows98で桐はVer9です。
>難しい説明は私には理解出来ませんので、出来ましたら、
>システム以降のVer9での書き方をズバリお教え頂けないでしょうか?

最初に書いたとおり基本的にはできない要求です。
それでもやると言うからには、その辺をちゃんと
理解した上でやらないと!?

桐で出来ること出来ないことそれらをまず理解し
桐の基本となる使い方を理解し、積み上げていか
ないで難しい要求だけで望んでも破綻しますよ?

まぁ〜、他人にお金を出して作ってもらうのでし
たら、それはそれで相手の技術やポリシーに関わ
ってくる内容になると思いますが?

技術的に可能かどうかの問題と自分自身だったら
やるかやらないかで考えると、今回のような方法
は、もし人に使ってもらう代物だったら使わない
でしょうね・・・
<5668> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 13時23分13秒
>度々で申し訳ないのですが、"kiritool.exe"ってどこにあるのでしょうか?
最初の質問のあとの直後のコメントをちゃんと読みませう!
<5667> re<5666>/TOM 2004年10月26日 火曜日 11時56分24秒
イベントを使っていいのであれば、
「キーダウン」というのがあります。
ちなみに、"/"keyは111、"-"keyは109、"・"keyは191です。

私はこれらを使っています。
<5666> スラッシュ(/)での桐の機能をとめる/ET 2004年10月26日 火曜日 11時10分29秒
スラッシュ(割り算)キーで表示する、桐の機能(行挿入・訂正・その他いろいろなキー)の
一覧をでないようにできるのでしょうか?
<5665> Re:re桐ウインドウの境界線って/TOM 2004年10月26日 火曜日 10時59分46秒
hidetakeさん、T.Samuraさん、早速のご回答ありがとうございます。

度々で申し訳ないのですが、"kiritool.exe"ってどこにあるのでしょうか?
PC本体にもオリジナルのCDにも見当たらないのですが、
どこかからダウンロードしないといけないのでしょうか?

宜しくお願いします。
<5664> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 10時33分37秒
>Windows98で成功する方法を探したら DELETE SC_SIZE コマンドで境界太さはそのままですが、
>ウインドウサイズ変更が禁止になりますので試して下さい。
>(目的は境界線太さの変更でなくサイズ変更の禁止ですよね?)
>このコマンドだとOS(98/2000/XP)に限らず使用可能かもしれません。

おぉ〜! 確かにこの方法ですと Windows98 機でも Windows XP でも
成功しました! (^_-)

DEL_WS と DELETE SC_SIZE の違いと言えば、DEL_WS の方だとスタイル
変更後、境界線にマウスカーソルが来ても、マウスカーソルは変化せず
ウィンドウサイズも変更できません。
それに対し、DELETE SC_SIZE の方だと、境界線上でマウスカーソル自体
はサイズ変更可のようにカーソルが変化しますが、実際にはサイズは
変更できない状態になります。

マウスカーソルの対応まで含めると、サイズ変更不可の設定は DEL_WS
の方が美しいですが、目的のサイズを変更できなくするには
DELETE SC_SIZE の方は OS を選ばない処理となるようです。
(桐のように仕方なく外部から制御する場合)
<5663> Re:桐ウインドウの境界線って/T.Samura 2004年10月26日 火曜日 10時20分53秒
失礼、桐V9ならクラス名が Kiri8 でなく Kiri9 になります。
DeleteMenu を使いシステムメニューの「ウインドウサイズ変更」を無効にする
システム "kiritool.exe","Kiri9 DELETE SC_SIZE" \
 ,自動クローズ=する,フルスクリーン表示=しない
システムメニューを標準に戻す
 システム "kiritool.exe","Kiri9 RESET",自動クローズ=する,フルスクリーン表示=しない
<5662> Re:桐ウインドウの境界線って/T.Samura 2004年10月26日 火曜日 10時14分58秒
TOMさんへ、Windows98だと DEL_WS コマンドは失敗します。
Windows98で成功する方法を探したら DELETE SC_SIZE コマンドで境界太さはそのままですが、
ウインドウサイズ変更が禁止になりますので試して下さい。
(目的は境界線太さの変更でなくサイズ変更の禁止ですよね?)
このコマンドだとOS(98/2000/XP)に限らず使用可能かもしれません。

DeleteMenu を使いシステムメニューの「ウインドウサイズ変更」を無効にする
 システム "kiritool.exe","Kiri8 DELETE SC_SIZE" \
  ,自動クローズ=する,フルスクリーン表示=しない
システムメニューを標準に戻す
 システム "kiritool.exe","Kiri8 RESET",自動クローズ=する,フルスクリーン表示=しない
<5661> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 10時00分35秒
>> Windows98で桐はVer9です。
> Windows98 と言う時点で、この手法やツールによる
> ウィンドウスタイルの書き換えは無理ですね。
> 残念ながら・・・

あれ? そうじゃなくって DEL_WS で無くって DEL_CS の方を
使えば Windows98 でも可能なのかな?
Windows98 機を引っ張り出してくるのが面倒くさい! 起動に
相当時間もかかるし・・・ (^^ゞ
<5660> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 09時54分46秒
> Windows98で桐はVer9です。

Windows98 と言う時点で、この手法やツールによる
ウィンドウスタイルの書き換えは無理ですね。
残念ながら・・・
<5659> Re:桐ウインドウの境界線って/hidetake 2004年10月26日 火曜日 09時46分50秒
> "kiritool.exe"はどこにもありませんでした。

桐の作品一覧表 #100
「閉じる」ボタンの無効 Ver 1.20 「 KRTL120.LZH 」(桐v7以降可)
http://mokuchan.hp.infoseek.co.jp/download/dl-list1.htm
http://mokuchan.hp.infoseek.co.jp/cgi-bin/down/lime.cgi?down=http://mokuchan.hp.infoseek.co.jp/download/file_100.lzh&name=100_%95%C2%82%B6%82%E9%83{%83^%83%93%96%B3%8C%F81.2
<5658> Re:re桐ウインドウの境界線って/TOM 2004年10月26日 火曜日 09時01分15秒
hidetakeさん、T.Samuraさん、ありがとうございます。

「システム "kiritool.exe","Kiri8 DEL_WS &H00040000"\...」を試してみたのですが、
まず、"kiritool.exe"は見つかりませんというメッセージが出ました。
エクスプローラで探したところ"kitools.dll"というのはありましたが"kiritool.exe"は
どこにもありませんでした。

Windows98で桐はVer9です。
難しい説明は私には理解出来ませんので、出来ましたら、
システム以降のVer9での書き方をズバリお教え頂けないでしょうか?

宜しくお願いします。
<5657> re:表定義されてる列と列の結合/たゆー 2004年10月25日 月曜日 23時02分31秒
もしかして・・・
>表定義されてる列と列の結合
とは、
[項目A]に"東京"、
[項目B]に"駅"・・・と入ってる場合、
[項目C]に"東京駅"・と、計算結果を出す方法ですか?

と、思ったりしてます
<5656> Re:桐ウインドウの境界線って/T.Samura 2004年10月25日 月曜日 22時58分17秒
<5653>を読む前に<5654>を投稿してしまいました。

> SetWindowLongPtr
64 ビット版 Windows では ADD_WS/DEL_WS(SetWindowLong())は×ということですね。
Windows95/98 ×/2000 XP ○/WIN64 × :ADD_WS/DEL_WS(SetWindowLong())
Windows95/98 ○/2000 XP ×/WIN64 ? :ADD_CS/DEL_CS(SetClassLong())
<5655> re:表定義されてる列と列の結合/たゆー 2004年10月25日 月曜日 22時55分56秒
keiさんこんばんは。
>15年ぶりに桐でデータベースを作成しようとしていますが、
15年前ってもちろんDOS版ですね。そのころとは定義画面や桐そのものも
違ってきてるかもしれませんが、WIN版になって便利になってます
是非使いこなしてくださいね

ところで、
>表定義されてる列と列の結合
との質問ですが、WIN版での答えでよろしいのでしょうか?

結合といってもたくさんの方法があります。
仮に「月表.tbl」1〜12、「日表.tbl」1〜31のデータが入ってて
1年のカレンダーを作成する方法とか、「商品マスタ.tbl」「売上・仕入.tbl」が
あって、現在の在庫を求める方法とかいろいろできると思います

もう少し具体的な内容をお書きいただければお答えできますが・・・
もし、WIN版桐でしたらインストールしたフォルダーにサンプルがありますので
それをお試しいただき、どの表をどうさわったとか記載いただければ
幸いです

桐の結合は強くて覚えれば仕事利用できると思います。
がんばってくださいね

<5654> Re:桐ウインドウの境界線って/T.Samura 2004年10月25日 月曜日 22時47分07秒
> Windows 95/98:hWnd パラメータで指定したウィンドウが
> SetWindowLong 関数を呼び出したスレッドと同じプロセス
> に属していないと、SetWindowLong 関数は失敗します。

まとめると
Windows95/98 ×/2000 XP ○ :ADD_WS/DEL_WS(SetWindowLong())
Windows95/98 ○/2000 XP × :ADD_CS/DEL_CS(SetClassLong())
他のアプリケーションから書き換えるというのがAPIの想定外の使い方とはいえ、
OS によって動作が違うのは困り物ですね。当然将来の新OSでの動作も不定と思えます。
プログラマから見ると SetWindowLong()/SetClassLong()はWIN32APIの基礎といえる
WindowsNT3.5からの関数なのでOSバージョンに依存しない振る舞いをして欲しく思います。
<5653> Re:桐ウインドウの境界線って/hidetake 2004年10月25日 月曜日 22時45分08秒
一応、のちのために? (^^;

> SetWindowLong() に Windows98SE は厳しく、XP/2000 は甘いという事は、
> OS 自体が XP/2000 が堅牢なので、アプリケーションへの動作制限が少ないのでしょうか。

SetWindowLong は、今後 32 ビット版 Windows と 64 ビット版 Windows の
両方ともと互換性のあるコードの記述のために SetWindowLongPtr に置き
換わるようですが、そちらだと

プラットフォーム SDK
SetWindowLongPtr
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_setwindowlongptr.asp

> hWnd
> ウィンドウのハンドルを指定します。呼び出し側スレッドとは
> 異なるプロセスに属しているウィンドウを hWnd パラメータで
> 指定すると、この関数は失敗します。

と再び、よそのプロセスからは制御できなくなってしまうよう
ですね!
<5652> Re:桐ウインドウの境界線って/hidetake 2004年10月25日 月曜日 21時59分11秒
> SetWindowLong 自体は遠い昔!閉じるボタンの制御で Access から桐を
> 制御したときも Windows98 で通ったはずではあるのですけどね!?

これは記憶違いでしたね! 出来なくてどうして?って不思議がって
いたのでした。 (^^ゞ
調べなおしたら一番最初は 1999年の初めの事でした。

なんか同じ事(間違い)を二人して繰り返していますね! > T.Samura さん (;_;)

と言うことで、Windows98/95 では桐のように直接 API を呼べない
アプリでは SetWindowLong を使って(外部から)ウィンドウスタイル
を書き換えるのは無理と言うことですね!


> Windows 95/98:hWnd パラメータで指定したウィンドウが
> SetWindowLong 関数を呼び出したスレッドと同じプロセス
> に属していないと、SetWindowLong 関数は失敗します。

これって昔調べたときは載っていたっけ? (?_?)
<5651> Re:桐ウインドウの境界線って/hidetake 2004年10月25日 月曜日 21時44分06秒
プラットフォーム SDK
SetWindowLong
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_setwindowlong.asp

> Windows 95/98:hWnd パラメータで指定したウィンドウが
> SetWindowLong 関数を呼び出したスレッドと同じプロセス
> に属していないと、SetWindowLong 関数は失敗します。

これですか!?
Copyright (C) 2000 CGI Arkadia All rights reserved.
Script written by Shintaro Wakayama.
BBS-TypeN Ver.2 Preview4
remodel advice by hidetake