[pear_error: message="Success" code=0 mode=return level=notice prefix="" info=""]
JUGEMテーマ:HSP 季節が秋に入ろうとしてる。 HSPにとっては注意していかなきゃいけない季節の変わり目。 気温、気圧、天候、服装、気分、体調‥ 階段をガクッと踏み外すみたいな油断が大敵😝 これからだんだん寒くなっていくことが寂しく、少し怖くもある。 寝る時間とか、スマホ使用時間とか、食べ物とか、体温調節とかできることやろう。 私に欠かせないものは感情日記。これはいつもやってることだけど、気分を書き記しとけば気持ちの移り変わりが時...
めんまの缶詰 | 2019.09.11 Wed 13:23
標準命令にオブジェクトを消去するclrobj命令がありますが、当たり前の事ですが一度破棄したオブジェクトは元に戻すことはできません。 一時的に消したいような場合のとき、態々削除してまた作成するのは処理の無駄です。 ShowWindow関数を使うことで、gsel命令でウインドウを非表示にするかの如くオブジェクトを非表示にすることができます。 サンプル: /* オブジェクトの表示・非表示サンプル */ #uselib "user32" #func ShowWindow "ShowWindow" int,int #define SW_HIDE 0x00 #define SW_SHOW 0x05 chkbox "テス...
HSP雑記 | 2010.04.12 Mon 07:14
if文において、"○○が真であれば、違えば"というものがありますが、「違えば」に更に条件を加えたものがelseifです。 Perl言語だとelsifってやつです。 ifを入れ子にすればいいだけの話なのですが、これがあった方が綺麗なソースが書けます。 HSPにはないのでマクロにしました。 マクロサンプル: #define global elsif else:if #define global elseif else:if a=2 if a=1{ mes "1です" }elseif a=2{ mes "2です" }
HSP雑記 | 2010.04.12 Mon 07:00
主にツール系のアプリを作っていると、設定画面やその他色々で複数のウインドウが必要になります。 こういう場合は、あらかじめ非表示でウインドウを作っておき、必要になったときだけgsel命令等で表示するという方法がよく使われます。 しかしウインドウが増えてくると管理も面倒臭くなり、余分にメモリも消費します。 そもそも「非表示にしておく」というのが私的には気持ち悪く感じられます。 そこで、必要なときになったらその場でウインドウを作成し、要らなくなったら消す(破棄)場合はどうすればよいのかということでサン...
HSP雑記 | 2010.04.06 Tue 22:33
COMを使ってショートカットを作成してみます。 COMだとごちゃごちゃするのでモジュール化しました。 サンプルはほとんどヘルプの丸写しです。(COMはまだ初心者なのです) サンプル: /* ショートカットの作成サンプル */ #define CLSID_ShellLink "{00021401-0000-0000-C000-000000000046}"//シェルリンクオブジェクトのクラスID #define IID_IShellLinkA "{000214EE-0000-0000-C000-000000000046}"//IShellLink インターフェースのインターフェースID #define IID_IPersistFile "{0000010b-0000...
HSP雑記 | 2010.04.05 Mon 22:57
前回の記事ではHSPでのラジオボタン設置方法を書きました。 が、この方法には落とし穴があります。 HSPのチェックボックスは一度ラジオボタンにスタイルを変更すると状態が変数に反映されなくなってしまうのです。 状態を知るにはsendmsgなどで状態取得用のメッセージ(BM_GETCHECK)を一々飛ばさなくてはなりません。 こんな面倒な取得方法はHSPの利点にもそぐわない感じがするのでモジュール化しました。 10/4/4バグを修正 モジュール: /*==========================================================================...
HSP雑記 | 2010.03.30 Tue 15:49
ラジオボタンとはチェックボックスに似たチェック部分の丸いオブジェクトのことで、同じグループ内で一つしかチェックできないという特徴があります。 チェックボックスはchkbox命令として標準命令で設置できますが、例によってラジオボタン用の命令はありません。 そこでsendmsg命令でチェックボタンのスタイル※をラジオボタンに変え、またグループ化する為にwin32APIのSetWindowLongA関数でグループ化します。 ※オブジェクトは元々は全てウインドウで、それにウインドウスタイルというものが設定されて様々な形・動作になって...
HSP雑記 | 2010.03.30 Tue 15:40
標準命令のexist命令はファイルのサイズを取得する命令ですが、ファイルの存在チェックにもよく使われます。 というか、命令名がexistなので存在チェックがメインなのかもしれませんね。 ただ、exist命令だと一々実行後にstat値を調べなくてはならないので効率が悪いです。 そして何より、大きなファイルだと結果がおかしくなることがあります。 この仕様はギガ単位のファイルを操作する場合に致命的です。 そこで関数として一発でifれて、また巨大ファイルでも正常に存在を取得できて、尚且つexistより若干ほんのりちょっ...
HSP雑記 | 2010.03.29 Mon 06:54
シューティングゲーム作成などで、弾を斜めなど半端な角度で飛ばしたいときは、ラジアンを実数にして返すsin,cos関数が役に立ちます。 sin(サイン),cos(コサイン)とは高校の数学で習う三角関数に登場する単位ですが、そう難しいものでもありません。 Wikiに分かりやすい説明があったので、初めての方は学んでみてください。 http://hspdev-wiki.net/?DevMagazin%2F%BB%B0%B3%D1%B4%D8%BF%F4 今回は簡単な説明を踏まえたサンプルと、その応用の簡単な弾幕サンプルを書きました。 (Wikiの最初のサンプルを色々改変) 対象座標...
HSP雑記 | 2010.03.27 Sat 08:31
circle命令では左上と右下の座標を指定して円形を描きますが、私が円を描く場合は大抵が円を中心に描きたいときのみです。 そこで、円の中心となる座標を指定し後に全体の横幅・縦幅を指定できるモジュールのようなものがあれば便利だなーと思い作ってみました。 boxfはおまけなのですが、円と違い塗り潰して描画しかできないので一緒に作りました。 モジュール: /*================================================================================================== 基点を中心とした図形描画モジュール cbo...
HSP雑記 | 2010.03.25 Thu 00:49
全18件中 1 - 10 件表示 (1/2 ページ)