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


   書き込み数 : 5750件


<5750> re:項目表示の行数指定方法/たゆー 2004年11月10日 水曜日 20時22分31秒

>長いデータであれば下の段に順次表示させたいのですができません。
>改行文字「/」を使用しても表の入力ではきくのですが、フォームでは効きません。
>横3センチの中で30文字入力してあるデータの表示どうすればできますか?
これは、テキストオブジェクト等で、下方に、折り返し表示という
ことでよろしいでしょうか

テキストオブジェクトの属性で、表示行数(L)を確認ください
初期は「0」になってると思いますが、ほかの数字になってませんか
「0」になってても一行しか表示されない場合は再度ご連絡お願いいたします

まさか、フォントの高さが6センチくらいあるとかではないですよね

<5749> カード形式での項目表示について/ET 2004年11月10日 水曜日 14時42分36秒
簡単な顧客管理のテープルとフォームをつくりました。フォームの画面で
内容項目を横3センチで縦6センチの幅でつくりデータを入力しましたが
横に表示するにして、3センチの幅でしか表示できません。
長いデータであれば下の段に順次表示させたいのですができません。
改行文字「/」を使用しても表の入力ではきくのですが、フォームでは効きません。
横3センチの中で30文字入力してあるデータの表示どうすればできますか?
縦ワクは余裕あるのですが、ご指導下さい。
<5748> re:IEのお気に入りをTbl化/たゆー 2004年11月09日 火曜日 21時22分50秒
お気に入りのでも、登録先のHPや作成方法の違いかもしれませんが

例1.
[InternetShortcut]
URL=http://www.******.com/ ・・・の、2行だけ

例2.
[DEFAULT]
BASEURL=・・・・・ここと
[InternetShortcut]
URL=・・・・ここが、違う場合もある

例3.
IconFile=http://・・・・・・・/favicon.ico
アイコンファイルの指定がある

まだまだ、調べなくては・・・しかし「URL=」を取得すればいいような感じもする

<5747> re:IEのお気に入りをTbl化/たゆー 2004年11月09日 火曜日 21時09分28秒

早速調べてみました。そこで、ひとつ発見しました
Win2000・WinXPともに保存されてる場所は
「C:\Documents and Settings\tayu\Favorites\桐関連」ですが

XPはフォルダ名が「お気に入り」と表示されてます?
(エクスプローラでみたとき)

もしかしてXPでは「kirdata」というフォルダに「桐データ」と
名前をつけるのが可能?

いずれにしても、プログラム作成には関係ないですが・・・。

次の休みでも読み込みプログラムを作成してみます。

<5746> IEのお気に入りをTbl化/たゆー 2004年11月09日 火曜日 13時04分28秒

先日、IEのお気に入りを桐のTbl化の話がでました。
いま手元に桐がないので、今後の資料の為に、メモを残しておきます。

Win95・・フォルダー「C:\WINDOWS\Favorites」
ここに、登録名+URL(拡張子)で、入っています
お気に入りが、フォルダになってれば、そのままフォルダに格納されてます
拡張子が「URL」になってるだけで、テキストファイルです

内容例:
ここのTOPページを「桐のホームページ」として登録した場合

ファイル名:桐のホームページ.URL
ファイルの内容は

[DEFAULT]
BASEURL=http://www2u.biglobe.ne.jp/~s_tanaka/

[InternetShortcut]
URL=http://www2u.biglobe.ne.jp/~s_tanaka/
Modified=C0AC063610C6C40143

「Modified」とは・・・? ですが、これなら、ファイル検索後
テキストで読み込めば簡単にテキスト化できそうですね

ちなみに他のOSは、帰宅後調べてみたいと思います

<5745> 作品紹介/たゆー 2004年11月07日 日曜日 15時18分37秒
T.samuraさんの作品です。(現在「ほ!」にあるものと同じです)

152 「閉じる」ボタンの無効他 
・ウインドウ右上の「閉じる」[×]ボタンを無効にします。その他機能有り。

151 指定されたウィンドウの表示状態を設定する
・指定されたウィンドウの表示状態を設定する swwin110.lzh

150n・特定のウインドウの位置とサイズを変更する mvwin112.lzh
は、150より、swwin100.lzhを削除したものと同じです

T.samuraさんいつもありがとうございます。

<5744> メールの日付/たゆー 2004年11月06日 土曜日 22時02分23秒

先ほど届いたメールですが

>evan napoletano meds special zone for more saving and convenience 2004 11/7(日) 14:03 2KB

私の時計はいま、2004/11/06 10:03 です

<5743> re:モニタの画面解像度/たゆー 2004年11月06日 土曜日 21時53分22秒

ところで、
>QUXGA Wide 3,840×2,400 9,216,000ピクセル
こんなのあるの?・・・・あるんですね

>QUXGAワイド(3,840×2,400ドット)、1,677万色フルカラー表示に対応した
>22.2インチTFT液晶ディスプレイ・・・

我が家の車が買えてしまう・・・おどろきです
http://www.watch.impress.co.jp/pc/docs/article/20010626/ibm.htm

ただし情報は(2001年6月26日)かも?

<5742> re:attribのコマンドでもどりました/うにん 2004年11月06日 土曜日 20時12分10秒
とりあえず、よかったですね。
元のファイルと同じ場所だとしたら、何かのソフトが勝手に作ったバックアップ
ということもなさそうだし?
(XPの復元でCMDファイルが古いのに戻されるという話がありましたよね)
<5741> モニタの画面解像度/たゆー 2004年11月06日 土曜日 16時53分47秒
・15型 XGA アナログ入力対応
・17型 SXGA デジタル/アナログ入力対応
のように記載されてる場合があります。

「画面解像度」
呼称                  解像度(横×縦)    画素数 
QVGA (Quarter-VGA)       320×  240        76,800ピクセル 
CGA              640×  240       153,600ピクセル 
VGA               640×  480       307,200ピクセル 
SVGA (Super-VGA)          800×  600       480,000ピクセル 
XGA                     1,024×  768       786,432ピクセル 
Quad-VGA                1,280×  960     1,228,800ピクセル 
SXGA (Super-XGA)        1,280×1,024     1,310,720ピクセル 
SXGA+                   1,400×1,050     1,470,000ピクセル 
UXGA (Ultra-XGA)        1,600×1,200     1,920,000ピクセル 
QXGA (Quad-XGA)         2,048×1,536     3,145,728ピクセル 
QUXGA (Quad-Ultra-XGA)  3,200×2,400     7,680,000ピクセル 
QUXGA Wide              3,840×2,400     9,216,000ピクセル 
 
参考までに
http://e-words.jp/p/r-screensize.html

<5740> attribのコマンドでもどりました/ET 2004年11月06日 土曜日 00時32分51秒
うにんさん。attrib のコマンドで元のファイルにもどりました。
ちゃんとシステムと隠しコマンドチェックがはずれていました。
ふしぎですが現実に起きております。どうしてそんなことになるのでしょうね。
もう一度コンピュータを初期化したほうがよいのでしょうかね。
とりあえずありがとうございました。
<5739> re:Yahooにも地域版が?/たゆー 2004年11月05日 金曜日 22時19分12秒

T.Samuraさん情報ありがとうございます
台風やその他気になったとき退社前によく確認してましたが、
いままで「地方は?」と気にしたことはなかったです

ところで、
>JR東日本だけのようですね。
>http://help.yahoo.co.jp/help/jp/transit/transit-01.html
>> Yahoo!路線情報とは、全国の鉄道や航空路線の経路探索と、JR東日
>> 本の一部路線の運行情報が表示されるサービスです。

残念ながら、上記URLは(私のパソコン?環境では)表示できません
(パソコンの画面が真っ白です)が、ソースの表示であるていど確認できました。

これで、疑問が解けました。ありがとうございます
「とりあえず、東京を」・・・・・

ps.携帯電話のカバー率も「90数%」と人口比率で表示してあります。
とりあえず、東京等大都市をカバーすれば率は上がりますね。
私の実家は、携帯のカバー率からはずれているような地域です
アンテナがたちません

ps-2.明日は仕事です
<5738> Re: Yahooにも地域版が?/T.Samura 2004年11月05日 金曜日 21時58分24秒
JR東日本だけのようですね。
http://help.yahoo.co.jp/help/jp/transit/transit-01.html
> Yahoo!路線情報とは、全国の鉄道や航空路線の経路探索と、JR東日
> 本の一部路線の運行情報が表示されるサービスです。

運行情報だけなら各JRが出しているようです。
JR東海の例 http://shinkansen.jr-central.co.jp/traininfo/
<5737> Re: Yahooにも地域版が?/T.Samura 2004年11月05日 金曜日 21時36分27秒
東海地方からアスセスしてもJR東日本のようです。
全くの想像ですが、「路線」を選んだ後のページは
> こんにちは、 ゲスト さん 駅登録の設定 - ログイン
とゲストでのログイン扱いなので、ゲストのデフォルトが東京、
会員登録してログインすると居住地のJRの情報が出るとか?
<5736> Re:Yahooにも地域版が? 2004年11月05日 金曜日 21時24分28秒
うちも東日本だから参考にならんけど一応、と見に行ってみたら、
関連ニュースの「鉄道事故」に「教諭脱線 中2女生徒と校内で性行為(産経新聞)」
なんてのが(?_?)
<5735> Yahooにも地域版が?/たゆー 2004年11月05日 金曜日 20時58分48秒

みなさんこんばんは、せっかく桐の話で盛り上がってるところに
別の話で恐縮ですが・・・

実は、今日まで、Yahooのメニューは全国一緒だと思ってました。が、
上から5行目くらいの「調べる」に「路線」がありますね
普段、「経路・料金検索」で利用させていただいてます。

疑問は、その下の運行情報という箇所があります。ここに、
「JR運行情報」という所がありますが、JR東日本の情報しか表示されません
これは地方によって違うのでしょうか?

・JR東日本以外は情報を出していない・・・そんなことはないと思う
・接続したパソコンの住所を調べて、近いところを表示・・・そんな面倒な事をするかな
・Yahooが東京に事務所があるから・・・・・?

上記は、私の勝手な推測です。
在京以外の方のご紹介頂けましたら幸いです。

<5734> re:こんなことがおきます/うにん 2004年11月05日 金曜日 12時56分07秒
なるほど。エクスプローラだと変更できないようになってるようです。

ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [[ドライブ:] [パス] ファイル名]
[/S [/D]]

+ 属性を設定します。
- 属性を解除します。
R 読み取り専用属性。
A アーカイブ属性。
S システム ファイル属性。
H 隠しファイル属性。
/S 現在のディレクトリとすべてのサブフォルダの一致するファイルを
処理します。
/D フォルダも処理します。

なので、隠しでシステムになってるのならコマンドプロンプトで
attrib -S -H 得意先.tbl
(両方同時に解除するのがみそ)でしょうね。

でも本当にそれが元の表ファイルなのかという問題もありますが...
場所は元の場所ですか?
<5733> attribのコマンドとは/ET 2004年11月05日 金曜日 11時09分20秒
うにん様、おはようございます。「attrib」のコマンドの
使い方がわかりません。ご指導下さい
<5732> re:こんなことがおきます/うにん 2004年11月05日 金曜日 09時24分39秒
謎ですね。でも元に戻らない原因は?
attribコマンドで戻せないんでしょうか?
<5731> こんなことがおきます/ET 2004年11月05日 金曜日 01時23分40秒
私の友人が桐Ver9で仕事をしております。
突然一括処理で作業していたら得意先.tblが消えてしまいました。
エキスプローラのオプションでシステムファイルの表示チェックを
はずしてさがすとあらわれて得意先.tblがウインドーズのシステムファイルに
変わっていました。そんなことが現実におきました。そんな経験
ありますでしょうか?びっくりです。得意先.tblはもう隠しファイルになっていて
もとにはもどりませんでした。
<5730> キーダウンのイベントについて・お礼/ET 2004年11月04日 木曜日 11時33分23秒
TOM様の方法でもアックン様の方法でも
どちらもためし、どちらも成功しました。
ありがとうございました。感謝!感謝!
<5729> re:キーダウンのイベントについて/うにん 2004年11月04日 木曜日 10時09分39秒
なるほど。もっともです。

ただ個人的にはどうもこの「キー変換」というのがよくわかりません。
KeyTranslateというのでスキャンコードと仮想キーコードの変換を制御するような名前なのですが
仮想キーコードはすでにこのイベントのパラメータで設定されちゃってます。

禁止できるキーが「カスタマイズキー 特殊キー ファンクションキー」となってますが
問題の「/」は「ただのキー」ですけどこれをカスタマイズキーと称してるんでしょうか。
<5728> re:キーダウンのイベントについて/TOM 2004年11月04日 木曜日 08時32分27秒
if ( &仮想キーコード = 109・・・ .or &仮想キーコード = 191 )
  メソッド呼び出し @フォーム.キー変換( 7 )
else
  メソッド呼び出し @フォーム.キー変換( 0 )
end

私はこれで動いています。
スラッシュメニューが出るのは表示モードの時なので、"処理中止"を外しても
「/」や「.」は入力されず、入力モードの時はそれらの入力は可能です。
まだまだ勉強中ですので、間違っていればどなたかご指摘下さい。
<5727> Re>キーダウンのイベントについて /アックン(=^・^=) 2004年11月03日 水曜日 15時22分35秒
あ、そっか。ではこんなふうに。

・メイン部
 var 整数{ &mode }

・キーダウン
 method @フォーム.更新モード取得( &mode )
 if ( &mode=0 .and(&仮想キーコード = 109 .or ・・・・ = 191 ) )
<5726> Re>キーダウンのイベントについて /うにん 2004年11月03日 水曜日 14時07分07秒
入力時の件は、@フォーム.更新モード取得 で0のときだけ処理中止すればいいかな?

私も環境設定にあったと思ったのですが見つかりませんでした。
<5725> Re>キーダウンのイベントについて /アックン(=^・^=) 2004年11月03日 水曜日 13時36分39秒
ETさん、こんにちは。
109と111は、テンキー上の / と - の仮想キーコードです。
キーボード上のは、189と191です。

下記のキーダウンイベントで、 - / キーを無効に出来ます。
ただこうすると、テキスト入力時に - / が使えなくなりますよ。
桐の環境設定で、/メニューの有効無効を選ぶことが出来なかったでしょうか?>おる

 if ( &仮想キーコード = 109 .or &仮想キーコード = 111 .or &仮想キーコード = 189 .or &仮想キーコード = 191 )
   メソッド呼び出し @フォーム.キー変換( 7 )
   &処理中止 = 1
 else
   メソッド呼び出し @フォーム.キー変換( 0 )
   &処理中止 = 0
 end
<5724> キーダウンのイベントについて/ET 2004年11月03日 水曜日 10時54分13秒
下記のイベントで[/]と[−]キーのフォーム編集表で桐の機能を使用しないようにしたいの
ですがどうしても桐の機能が効いてしまいます。どこがまちがっているのでしょうか?
ご指導下さい。お願いします。
手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止)
 if (&仮想キーコード=>109 .and &仮想キーコード=<111)
  メソッド呼び出し @フォーム.キー変換(7)
  &仮想キーコード=&仮想キーコード - 108
  変数宣言 文字列 { &オブジェクト名="a" }
 メソッド呼び出し &オブジェクト名.実行()
 &処理中止=1
 else
メソッド呼び出し @フォーム.キー変換(0)
&処理中止=0
 end
手続き定義終了
<5723> Re>業務連絡 /アックン 2004年11月02日 火曜日 19時00分04秒
いよいよ引越ですか。
カゼひかないようにね。ムリしないでよ。

アックン(=^・^=)
<5722> Re>業務連絡 /悲しげ 2004年11月02日 火曜日 00時28分51秒

この場をお借りして・・・・

もしかすると11月下旬までアクセス不能となるかもしれません。
と云う訳で、よろしく・・・。<(_ _)>

E-Mail

<5721> Re: ステータスバーを表示しない/T.Samura 2004年11月01日 月曜日 22時50分25秒
「ほっ!」に「閉じる」ボタンの無効 KIRITOOL.EXE V.1.32 をアップしました。
環境(画面描画の早さ)によって必要な時間が変わるので可変できるようにしました。
kiritool.exe と同一フォルダに置いた kiritool.ini で
MENUPOP_CHECK/MENUPOP_UNCHECK でのキーコードを送る押し下げ時間とキー間隔を変更可能になります。
<5720> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月31日 日曜日 20時09分57秒
えぇ〜と、私は今回の解決策として3つほど案を書きましたが
最初と2つめのフォームのタイマーを使った常駐処理は、対象
がフォームなどイベントを使えないものが対象あり、基本的に
テーブルだけで操作している場合などを目的としています。
フォームを使っていれば目的のオブジェクトの入力時に関わる
イベント内で movewin を使うのが無駄はないし、間違いも少
ないしうまく動作させることが出来ると思います。

2番目のフォームでのタイマーを使ったものは、この中でも
一番動作が不確実だと思います。
表引きウィンドウが開いている間はタイマーが止まるので、
表引きしている項目が連続している場合は、次の入力前に
movewin を実行させることが出来ないので、2つ目が目的を
達せられないという状況になるかと思います。
なるべくタイマーが切れ目なく動作させられるようにタイ
マー値を 0.1 秒にしてみましたが、そのおかげでマウス
カーソルが砂時計のままとなってしまいます。
なお、タイマーは 0.1 秒間隔でも movewin は 2.5秒間隔で
実行するようにして負荷はあがらないようにしてみたつもり
です。

あとは movewin の可能なウィンドウ設定もありますので
movewin.c のコメントを読んで、より希望にかなう動作になる
よう起動オプションなどを設定してみて下さい。

<5719> re:re:表引きウィンドの高さを設定可?/今村 誠 2004年10月31日 日曜日 18時37分11秒
hidetakeさんこんにちは、続けての表引きでウィンドが大きくならないのは
手続き定義開始 t市::ソース値更新()
   method ハンドル=&hwindow,@movewin.実行()
手続き定義終了
比較値のソース値更新に上記の記述で確実にに広がるようです。
よってタイマーの12とフォーム開始と終了は削除しました。
ありがとうございました。
<5718> re:re:表引きウィンドの高さを設定可?/今村 誠 2004年10月31日 日曜日 16時55分32秒
hidetakeさん特別にサンプルまで作っていただいてありがとうございました。
一括から入っているのでイベントをそのまま現在のフォームにコピーしました。
最初のウィンドは一瞬右に表示された後左の方にデスクトップのサイズ1400*1050
で半分くらいの幅で思い通りに表示されました。私の説明が悪かったと思いますが
市町村(電話.tbl)の特定のすぐ後に違う表(〒.tbl)を表引きするのでそちらは大き
くなりませんでした。そのフォームを使用中はマウスの形状が砂時計のままでした。
一度大きくすれば2回目以降はそれを覚えていてくれるので何もしなくても、
ユーザーが大きくすればすむ話なのですが、データ入力が終わったら、普通は
メニューに戻るので、せっかく広げたウィンドが又一からやり直しになるのです。
表引きは依頼主と届け先で市町村で計2回町域で2回郵便番号で2回商品と運賃
で2回と結構煩わしく思っています。覚えなくていいので、デスクトップの高さと
同じで開くのが一番効率がいいと思っています。
もうちょっとスキルがアップしたら、再挑戦いたします。
大変参考になりました。
<5717> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月31日 日曜日 10時50分28秒
> あるいは、桐の起動と同時に、常駐する隠しフォームを立ち
> 上げ、それがタイマーで movewin を実行するというのも
> 1つの方法かな?

1つの方法としてのサンプル
http://pub.idisk-just.com/fview/VL5uq6YszmreeeDtINFqZbZ4PxUVp2La2c9ET4RUO9xE2FTkXEM5GS1EZ85WZ22IRWhd0JGjzQs/bW92ZXRsdXdpbg.lzh

ini ファイルの設定も含める必要があったので T.Samura さんの
movewin も一緒に入れさせていただきました。 _o_

TIME.WFM を常駐(開いた)状態で表引きを行うと、クラス名が
KiriPopupFrame なウィンドウの位置を指定場所に移動します。
ただ、桐のタイマーイベントは表引きウィンドウが開いている
間が止まってしまうので、表引きのタイミング(閉じて開く)
によっては移動がうまくいかない場合もあります。

TIME.WFM の常駐確認は「ファイルパレット」の「編集表」で出来ます
し、常駐解除したい場合は、同じディレクトリに作られる
TIMER.TXT と言うサイズ 0 バイトのファイルを削除すると
自ら常駐解除します。後はご自由に?・・・
<5716> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月31日 日曜日 07時41分12秒
> フォームを前提とするならば一番最初に書いたように、フォームの
> 入力支援ボタン関係のイベントから movewin を呼び出す、最初に
> 出た #5452 以降のコメントそのものの内容だと思いますが?

入力支援ボタンで開くのか、あるいは必要な時だけ入力支援ボタンが
自動的に開くようにするのか、あるいは、表引きしたいフォームの
条件で、それを判定させるイベント内で呼び出すようにするのか?とか
多少の工夫は必要でしょうが?
<5715> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月31日 日曜日 07時36分34秒
> 以下のメッセージがでて実行できませんでした。

先に書いたスクリプトは OS 標準環境そのままでは
動きません。API を呼ぶための仕組みの DynaCall
をインストールして使う必要があります。
それと、WMI を使っていますので、2000 以上の
OS が必要となります。9x系だと WMI を別途インス
トールする必要があります。

DynaCall の使用に必要なファイルやインストール
方法は #5713 に書いたリンク先にあります。


> フォーム形式編集で会話方式で比較値[電話番号]を入力した直後
> にソース値更新イベントで空白や携帯電話やIP電話では候補を順
> に選び、普通の番号の場合に表引きウィンドが開いて住所を特定
> します。

フォームを前提とするならば一番最初に書いたように、フォームの
入力支援ボタン関係のイベントから movewin を呼び出す、最初に
出た #5452 以降のコメントそのものの内容だと思いますが?
<5714> re:re:表引きウィンドの高さを設定可?/今村 誠 2004年10月30日 土曜日 19時24分26秒
hidetakeさんこんにちは、できるかなと思って一括処理の冒頭に
 システム "c:\vbs\hyoubiki.vbs" と書きテストしましたが、
以下のメッセージがでて実行できませんでした。
「KU0115:実行可能なファイルではありません(c:\vbs\hyoubiki.vbs)」
ここにダウンロードした150番のファイルをすべてコピーしています。
桐を起動後に直接上記のファイルをダブルクリックしたら
Windows Script Hostのダイアログに
スクリプト: C:\vbs\hyoubiki.vbs
行:     43
文字:    1
エラー:   ステートメントがありません。
コード:   800A0400
ソース:   Microsoft VBScript コンパイルエラー
    OK
ちょっと私には難しいと思っています。

フォーム形式編集で会話方式で比較値[電話番号]を入力した直後
にソース値更新イベントで空白や携帯電話やIP電話では候補を順
に選び、普通の番号の場合に表引きウィンドが開いて住所を特定
します。
<5713> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月30日 土曜日 18時51分12秒
DynaCall に関しては WSH から Windows の API を呼び出そうとする
非常にやくざな?方法なので、必要な方は自分で DynaCall なり
DynamicWrapper で検索して、お調べ下さい!

なお、必要なファイルは下記にあります。

http://www.borncity.com/WSHBazaar/WSHDynaCall.htm
http://www.borncity.de/WSHBazaar/WSHDynaCall.htm
<5712> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月30日 土曜日 18時40分05秒
> あるいは、桐の起動と同時に、常駐する隠しフォームを立ち
> 上げ、それがタイマーで movewin を実行するというのも
> 1つの方法かな?

随分前に見えないフォームとして、タイマーを
有効に常駐するフォームを作成してアップしたと
思いますが、それでタイマーで実行しておくと
その状態でテーブルを会話形式で操作しても制御
可能なようです。

ただし、表引きウィンドウが開いたときはタイマー
イベントも停止するので、movewin の遅延実行
機能を有効にして使う必要があるようです。

タイマー間隔は 100ms では負荷が高すぎ、少なく
とも 500ms 以上にした方が良さそうです。
また mobewin.ini の設定は下記のような感じで・・・

[option]
fSleepEnable=1
iSleepMsec=500
iSleepCount=2
fExcuteAllWindow=0
fModeDebug=0
szSizeCascade=16

ただ、この方式ですと、毎回、シェル実行で実行
ファイルを起動させるわけで、負荷は相当高いです。

負荷を少なくするためには、タイマーの間隔を
長めにして、movewin.exe の起動待ち間隔や
起動待ち回数で設定する方法もあろうかと思います。

<5711> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月30日 土曜日 18時07分11秒
> 指定されなくてもいいので、デスクトップの高さと同じか
> 表示されているフォームと同じ高さが希望なのですが……
> どなたか試された方いらっしゃいますか?


> 表引きウィンドウの位置およびサイズは 0 , 0 , 800 , 1000
> に固定で設定しています。ウィンドウのサイズを取得する
> には GetWindowRect API を使えば可能ですが、これを使う
> (結果を受け取る)には「構造体」が必要なのですけれど
> DynaCall + VBS では相当面倒なので・・・ (^^;

スクリプト自身でウィンドウサイズや位置を取得するならば
構造体をわりと使いやすい JScript に、下記のスクリプトを
変えるか、それよりも桐側で必要な情報(桐のシステムウィン
ドウの位置やサイズ/デスクトップのサイズ)を取得して
引数で VBS に渡すという方法も1つではあります。


あるいは、桐の起動と同時に、常駐する隠しフォームを立ち
上げ、それがタイマーで movewin を実行するというのも
1つの方法かな?

<5710> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月30日 土曜日 17時53分42秒
あれ? T.Samura さんのコメントが先にありましたね! (^^;

> この辺も T.Samura の movewwin.exe を使えば一応は可能な
> 話ではあります。

さんが抜けました! _o_


一応書いては見たものの・・・ こんな事までやりますか? (^^ゞ
<5709> Re:表引きウィンドの高さを設定可?/hidetake 2004年10月30日 土曜日 17時50分33秒
一応、この辺の話は次の「表引きリストのサイズ」に通じる話題ですかね!?
http://www2u.biglobe.ne.jp/~s_tanaka/cgi-bin/bbs/bbs.cgi?function=logview_html&no=110#5452

この辺も T.Samura の movewwin.exe を使えば一応は可能な
話ではあります。
ただ、これを表引きで使用するとなると、フォームを使って
入力支援ボタンなど、あるタイミングで表引きウィンドウが
開かれ、そのタイミングで movewin を実行できれば良いの
ですが、会話方式で、しかも表形式で編集している状態でも
となると、結構工夫が必要です。

常駐して桐のウィンドウを見張り、そして表引きウィンドウ
があればそのウィンドウを操作(サイズ設定&移動)すると
言った仕組みが必要になってきます。
そこまでやるとなると、やはり管理工学研究所が桐自体で
対処して、前のウィンドウを記憶するような仕組みや、表
引きのウィンドウを設定できるような仕組みを持つのが
本来のあり方だと思います。


でも、そこで終わらせたらおもしろくないので、無理矢理
やろうとすると、出来ないわけではありません。
何でもやってしまおうとか、出来てしまうの(出来てしまう
と言って/書いてしまうの)も何ですが・・・ (^^ゞ
タダ実用的か、実用上問題ないかまではわかりません。

今回の例は VBS でしめしますが、前に書いた Excel の終了
を監視する VBS を基本に、桐が起動している間、表引き
ウィンドウの存在をチェックし、存在したら指定の場所に
指定の大きさに MoveWindow するスクリプトです。

桐を起動後、1度実行すると、桐の起動している間常駐
し続けます。桐が終了すると、常駐解除されます。

なお、この VBS では表引きウィンドウのハンドル取得
(存在確認)のために T.Samura さんの findwin.dll を
使っています。また、これらの操作のために WIN32API を
操るために DynaCall を使っています。

表引きウィンドウの位置およびサイズは 0 , 0 , 800 , 1000
に固定で設定しています。ウィンドウのサイズを取得する
には GetWindowRect API を使えば可能ですが、これを使う
(結果を受け取る)には「構造体」が必要なのですけれど
DynaCall + VBS では相当面倒なので・・・ (^^;
Set UserWrap1 = CreateObject("DynamicWrapper")
Set UserWrap2 = CreateObject("DynamicWrapper")
UserWrap1.Register "findwin.dll", "FindWinEx", "i=lssss", "f=s", "r=l"
UserWrap2.Register "user32.dll", "MoveWindow", "i=llllll", "f=s", "r=l"

For Each Process in GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT * FROM Win32_Process WHERE NAME='kiri9.exe'")
Call WaitExitKiri()
Next
msgbox "End!!!"
WScript.Quit

Sub WaitExitKiri()
Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
'SWbemLocatorオブジェクト作成
Set oService = Locator.ConnectServer 'SWbemServicesオブジェクト取得

On Error Resume Next 'ここからエラー処理を有効に。
Set oEvent = oService.ExecNotificationQuery _
("select * from __InstanceDeletionEvent within 1 " & _
"where targetinstance isa 'Win32_Process' " & _
"and targetinstance.Name = 'kiri9.exe' ")

'イベントクラス(__InstanceDeletionEventクラス。
'インスタンスの削除イベント)の作成。
'within 1 …該当イベントを1秒間隔でポーリング
'where targetinstance isa 'Win32_Process' …Win32_Processクラスのインスタンスを監視対象にする
'targetinstance.Name = 'kiri9.exe' …インスタンス名が、kiri9.exeであるものを選ぶ

Do
WScript.Sleep 100 'ループをまわしとく。100msec 待つ。

'表引きウィンドウの存在チェック
hWnd = UserWrap1.FindWinEx (0, "KiriPopupFrame", "", "Static", "複写する値を選んでください")
If hWnd And ( hWnd <> hWndOld ) Then '表引きウィンドウが存在し新規のウィンドウの場合。
UserWrap2.MoveWindow hWnd , 0 , 0 , 800 , 1000 , 1
End If
hWndOld = hWnd

Set oEvt = oEvent.NextEvent(500)
'SWbemEventSourceオブジェクトのNextEventメソッド。
'500msecでタイムアウトする。
If Err.Number = -2147209215 Then 'タイムアウトすると、上記のエラー発生。
Err.Clear
Else 'エラーが発生しない場合は、正常に終了したということとなる。
'MsgBox oEvt.TargetInstance.ExecutablePath & "が終了しました。"
'SWemObject(__InstanceDeletionEventクラス)のTargetInstanceプロパティ
'は、ターゲットインスタンスを返す。この場合はWin32_Processクラスのインスタンス。
Exit Do
End If
Loop
End Sub
<5708> Re: 表引きウィンドの高さを設定可?/T.Samura 2004年10月30日 土曜日 17時46分27秒
今村 誠さん、こんにちは。
過去ログ No110 の <5452> 以降が参考になると思います。
<5707> 表引きウィンドの高さを設定可?/今村 誠 2004年10月30日 土曜日 13時58分39秒
 こんにちは、外部プログラムからいろいろなウィンドを
大きくしたり位置を設定できそうで便利なのかなと思ったり
していますが、私が桐9を使っていて、こんなのがあったら
いいなと思うのは、表引きの時の表ウィンドの高さを前回の
高さを記憶してくれないかなということです。
 k3にも要望としてメールを送ったのですが、こんな事はで
きないですよね。
 横の幅は、イベントのメイン部に表示幅コマンドで設定で
きたので満足できるのですが、縦の長さの指定が毎回10行
で制限されているのが不満です。
 指定されなくてもいいので、デスクトップの高さと同じか
表示されているフォームと同じ高さが希望なのですが……
どなたか試された方いらっしゃいますか?
<5706> Re>5705 「誤別に」(^^;) /悲しげ 2004年10月30日 土曜日 13時56分34秒
>よりも、まず先に京都の方と誤別に相談する方が断然生産的ではなかろうか

「誤別に」ってのは「個別に」の誤打鍵です。(^^;)

E-Mail

<5705> Re>5702 開始時フォーカスの指定 /悲しげ 2004年10月30日 土曜日 11時52分12秒
TOMさん wrote

>"フォーム立ち上げ時"とは、一括処理でフォーム形式編集を
>指定する意味だったのですが、

はぁ、そうですか。そのように読みとれる人はまず居ないでしょうね。(^^;)
そもそも今回の質問は、一括処理vsイベントとかフォームの起動一般のよう
に、抽象的に風呂敷を広げずに

「フォーム形式編集」コマンドで、あるボタンに初期フォーカスを置くには
どうしたらいいでしょうか?

のようにでも尋ねれば、一発で済む話でしたね。(^^;)

>でも、イベントから一括処理に戻すのは逆行なんでしょうか?

私は経験上そう思っていると云うことです。
が、一般論化するつもりはありませんし、その時間もない。

>処理速度が一括処理の方が速いような気がするのは気のせいなのでしょうか?

多分、気のせいっつーか、イベントの方をタマタマ遅くなるように組んでし
まっているだけのような気がしないでもありません。特に画面描画回りでは
ちょっとしたコツが要りますし。いずれにせよこれ(速度関連)も好みとか
個別の問題であって、一般論化すべきものでもないと思います。

>京都でそれを指摘されたんですけど・・・

今回TOMさんが「イベントから一括処理に戻す」路線を選んだのは、どう
やら、先にお話のあった京都の会社の考え方に従っていることによるようで
すね。であるのならば、(その前提を省略して)ここで一般的に質問される
よりも、まず先に京都の方と誤別に相談する方が断然生産的ではなかろうか
と愚考いたします。

E-Mail

<5704> Re: ステータスバーを表示しない/hidetake 2004年10月30日 土曜日 11時08分28秒
> まぁ〜 showwin.exe Ver1.10 も作られたことだし、どうしても
> 必要であれば、こちらでも対応可能なわけだし、無理してこの
> 方式で対応しなくても良いのでは無いですか?

一応 shiwwin.exe を使った方法を書いておきます。

実行制御 ファンクションバー=しない
システム "showwin.exe","HIDE Kiri9 NULL msctls_statusbar32 NULL"
実行制御 ファンクションバー=する

なお showwin.exe は fFindChild=1 で 実行します。
<5703> Re: ステータスバーを表示しない/T.Samura 2004年10月30日 土曜日 08時23分46秒
「ほっ!」に「閉じる」ボタンの無効 KIRITOOL.EXE V.1.31 をアップしました。

  コマンド追加 MENUPOP_CHECK/MENUPOP_UNCHECK
[ALT][↓][→][→]...[→][ALT]のキーコードを送り、ポップアップメニューを表示させてから、
チェック状態を調べて要求と状態が違えば指定メニュー項目をクリックしたメッセージを送る。
(hidetakeさん。アドバイスに感謝します)

キー押し下げ待機時間は50msecにしましたが「1回では失敗し2回目で成功する」現象があれば、
長くしますので連絡下さい。
<5702> re:開始時フォーカスの指定/TOM 2004年10月30日 土曜日 07時17分20秒
おはようございます。自宅からです。
悲しげさん、どうもありがとうございました。

"試行その2"は質問させて頂く前にチェックしていたのですがダメでした。

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

"フォーム立ち上げ時"とは、一括処理でフォーム形式編集を指定する意味だったのですが、
起動時のボタンの有効/無効でうまく行きました。
大変助かりました。

でも、イベントから一括処理に戻すのは逆行なんでしょうか?
処理速度が一括処理の方が速いような気がするのは気のせいなのでしょうか?
京都でそれを指摘されたんですけど・・・

<5701> Re: ステータスバーを表示しない/hidetake 2004年10月29日 金曜日 22時19分31秒
> あとは、これだけを成し遂げようとすれば msctls_statusbar32 な
> ウィンドウの現在のスタイルを取得して WS_VISIBLE な 0x10000000
> が立っていれば表示状態で、そうでなければ非表示状態ではあります。

ちなみに、桐のステータスバーを表示されている場合にだけ消す
スクリプトは、T.Samura さんの findwin.dll と DynaCall を
使えば次のようなスクリプトでいけます。

別に showwin.exe を使っても良いのですが、ウィンドウの書き
換えが綺麗な PostMessage の方を使いました。
Set UserWrap1 = CreateObject("DynamicWrapper")
Set UserWrap2 = CreateObject("DynamicWrapper")
Set UserWrap3 = CreateObject("DynamicWrapper")
Set UserWrap4 = 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", "FindWindowA", "i=ss", "r=l"
UserWrap4.Register "user32.dll", "PostMessageA", "i=huuu", "f=s", "r=l"

hWnd = UserWrap1.FindChildWin ("Kiri9", "", "msctls_statusbar32", "")
nIndex = UserWrap2.GetWindowLong (hWnd, -16)
If (nIndex And &H10000000) Then
hWnd = UserWrap3.FindWindowA ("Kiri9", vbNullString)
Ret = UserWrap4.PostMessageA (hWnd, &H0111, 59393, 0)
End If
Copyright (C) 2000 CGI Arkadia All rights reserved.
Script written by Shintaro Wakayama.
BBS-TypeN Ver.2 Preview4
remodel advice by hidetake