HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0520
24299chk box9未解決


24299

リンク

2009/5/20(Wed) 20:46:42|NO.25289

検索したんですが難しすぎて 質問させていただきます。
 chk boxで、チェックが入っていないときは、ボタンを半透明にして押せないようにして、
  チェックが入っているときはボタンが現れて押せるようにするスクリプトを教えてください。

◆.謄ストボックスにもじを入れる前に"クリックして文字を入力"と表示して、
  クリックしたら文字が消えて文章を入力できるようにする方法をおしえてください。



この記事に返信する


Team AziOGroup

リンク

2009/5/20(Wed) 21:14:27|NO.25290

1の方は、β版HSPのenableobjを使えば簡単に無効化、有効化が可能ですが、
β版以外の場合、付属のobj.asを利用すれば簡単に出来ます。


#include "obj.as" objsize 100,20 button "有効にする",*Yuko button "無効にする",*Mukou chkbox "チェックボックス",A stop *Yuko objgray 2,0 stop *Mukou objgray 2,1 stop

objgray は パラメータ1にオブジェクトの番号。
パラメータ2には 0=有効 1=無効

2のほうは、WindowsAPIを利用したほうが早そうです



abast

リンク

2009/5/20(Wed) 21:22:38|NO.25291

なんでOpenHSPではobjgrayをやめてenableobjとかいう長い名前にしたんでしょうね。
objgray推奨。



レノス

リンク

2009/5/20(Wed) 21:31:07|NO.25292

// 長文失礼します。

> スクリプトを教えてください
こういう質問の仕方は、ダメ。これは、「わからないから代わりにやってくれ」と同意義です。

#1
こういうのはループを使って、オブジェクトの状態を監視するのが定石です。( ループは repeat )

chkbox のチェックが入っていないときは、ボタンを無効にします。
HSP3.2 β2 なら objenable 命令で無効にすればいいのですが、
それ以前なら結構面倒でして、Win32 API の EnableWindow という関数( 命令みたいなもの )を使います。

#uselib "user32.dll" // ← 使いたいAPI関数の居場所 #func EnableWindow "EnableWindow" int,int
EnableWindow の使い方は検索してください。
ボタンのハンドルは objinfo( [ボタンのID], 2 ) と書きます。

追記:Team AziOGroupさんのやり方の方がずぅーっと楽でした。失礼。

chkbox のチェックが入っているときは、ボタンを有効にします。
ほとんど↑と同じことです。


#2
これもループで監視するのが定石です。
キー入力フォーカスが mesbox に当たってる状態か、当たっていないかを判定するのですが、
フォーカスがあるかないかは objsel 命令を使って調べます。
mesbox の文字列を変えるには、objprm 命令を使います。

ついでに:
ちなみに、WM_COMMAND というウィンドウメッセージを oncmd 命令で捕まえる、という方法もあります。
詳しくは Advanced HSP や Let's HSP (のHSP命令講座、oncmd)あたりを参照してください。

ついでに #2:
丸で囲まれた数字は、ウェブ上では使ってはいけません。
機種依存文字といって、コンピュータによっては見れせん。
( 半角の片仮名も同様。 )

> objenable
objgray では有効化できるかどうかわからないから、ですかねぇ。
EnableWindow と合わせただけかも知れませんが。

あ、llmod3 と衝突するのを恐れた、って可能性もありますね。



窓口

リンク

2009/5/20(Wed) 21:36:10|NO.25293

ウインドウズではオブジェクトは全てウインドウとして扱われていますので
 ↓△箸癲EnableWindow 関数を使用すれば可能です。
標準命令の objinfoでウインドウハンドルを取得してください。


#include "user32.as" a = 10 input a : input_00_hwnd = objinfo(stat,2) EnableWindow input_00_hwnd , 0

に関しては、WindowFromPoint 関数を使う方法があります。
マウスの下にウインドウがあれば
システム変数statにウインドウハンドルが入る仕組みになっております


#include "user32.as" a=1 input a mes "タイトルにウインドウハンドルが表示されます" repeat mx = ginfo_mx : my = ginfo_my WindowFromPoint mx,my title str(stat) wait 1 loop



窓口

リンク

2009/5/20(Wed) 22:00:14|NO.25294

objgray
objenable
objsel
はじめて知りました、勉強になります。

レノス さん
すみません気をつけます



窓口

リンク

2009/5/20(Wed) 23:08:55|NO.25297

修正します
×マウスの下にウインドウがあれば
○指定したスクリーン座標の上にウインドウがあれば



24299

リンク

2009/5/22(Fri) 21:15:49|NO.25321

ここで質問しているワケは、
自分には、あまり技術がないのでここに頼るしかないからです。
みなさん私が面倒くさがりやだと思っている方がいるのかもしれないのですが、
それは、『誤解』で、私にはここにしか頼れないのです。

…ということで長くなっててしまいましたがこれからよろしくお願いします…



レノス

リンク

2009/5/22(Fri) 21:28:25|NO.25324

> 主
つまり、ここまでの返答を読んでも解決できなかった、ということでよろしいですか。
もしそうなら、具体的に何が分からないのかを教えてくれると、もう少し突っ込んだ解説、説明、返答ができます。

※ 少なくともレノスは面倒臭がり屋だなぁとは思っていません、ご安心を。

> 私にはここにしか頼れないのです
Google:
http://www.google.co.jp/webhp?sourceid=navclient&hl=ja&ie=UTF-8
このサイトで、インターネットにあるほぼすべての文章を検索できます。
「HSP」などの単語をググれば( =Googleで検索すれば )、他にも多くのサイトに行くことができます。

また、HSPTV! の「ユーザHSP」のページから、HSPユーザー達のサイトに移動できます。



abast

リンク

2009/5/22(Fri) 22:36:12|NO.25333

本はいつでも君の味方さ



ONION software Copyright 1997-2021(c) All rights reserved.