'ひまわりエディタ+y バージョン=「1.00β46」 { 使い方とか。注意とか。 ・起動が遅いです。私のマシンよりいいスペックのマシン推奨。 私のマシン=CPU Celeron 500Mhzくらい + メモリ 192MByteくらい ・ブラウザの変更した時・タブ削除を使用しているのでver.1.82g以降をお使いください。 ・正規表現置換メニューでは文法のチェックをしていません。 同じく、メタ文字チェックをオンにした状態で検索した時もエラーが出る可能性があります。 どちらのエラーも基本的には無視して大丈夫だと思われます。 ・補完ウインドウはメモ部分をダブルクリックすると消えます。 ・コメント化は選択範囲の行頭に'を追加します。 ・コメント解除は選択範囲行頭の「'」「※」「//」を削除します。 ・右側のタブ部分にファイルドロップするとドロップしたファイルを開きます。 ・「ファイルドロップで内容を挿入」メニューのチェックがオフの場合、 ドロップしたファイルのパスが挿入されます。 ・「ラベルを見張る」は全体の行数が変更されるごとに検索タブにラベルが列挙されます。 私の環境ではオンにすると1テンポ遅れで列挙してくれます。 1500行を超えるファイルを編集中の場合はオフにしておいたほうが良さそうです。 ・「アイテム指定」は、選択範囲内の部品をコピーします。 フォームやパネル・スクロール上のアイテムを指定したいときに使ってください。 ・URL生成…ブラウザで表示中のローカルマニュアルのパスをWebマニュアルのアドレスに置換→コピーします。 ・マクロタブ右クリックで選択中のプログラムを編集できます。 ・ぶっちゃけ、マクロ作るなら直に書き足した方が簡単かも。 マクロを使いたいときはクリップボード経由もしくはDDE送信部を修正して下さい。 基本的に本家エディタと同じコマンドが使えます。 参照 http://hima.chu.jp/doc/editor/edit_dde.htm サーバ名とトピック名は本家エディタと違うので注意してください。 サーバ名:Himawari トピック名:commandy ・ランタイムやcommand.txt等を持っていない方はムラりさんのページのひまわり持ち運びパックをご利用ください。 http://hp.vector.co.jp/authors/VA032739/hima.htm } *既知の不具合 { ・アイテムプロパティーから新しいジャンルを作ろうとすると大失敗する。→不明 ・選択位置が行頭じゃないと変な位置にタブが挿入される。 } *更新履歴 { 20031222 1.00β46 ・正規表現置換用のダイアログを作った。 ・置換ダイアログで検索語・置換語を記録できない不具合を修正。 ・html・htmファイル編集中に「ブラウザで編集中の文書を表示」したときはブラウザで表示するように修正。 ・起動時のsecurity設定に関する動作を修正。 ・置換後、次のターゲットに移動するようにした。 ・確認動作を三択にした。「キャンセル」は検索中止。 ・インデント・アンインデント時に選択範囲を保持するように修正。 ・初起動時に新規のタブを開くようにした。 その他の更新履歴 http://www.isonly.net/~yuk_yt/prog/hpyhistory.txt } { 今後の予定 ・マクロタブ//3/4ほど終了 ・テンプレートタブ//マクロタブと同程度終了 ・ウインドウメニューに現在開いているタブの名前を表示。 ・配布用実行ファイル作成ダイアログの作成 ・ショートカットキーカスタマイズ//メニュー確定後、かな ・プロジェクトとして保存 ・新規作成ウィザード 余力があれば… ・高速化//あとは起動時のスピードを。 ・ヘルプ 対応しないつもりの機能。 <<意味がわからない>> ・プログラムを整形する ・最終行表示して停止 <<ファイルサイズが増えそうなので却下>> ・ツールメニュー ・マニュアル検索 ・効果音 ・デモを見る ・スキンというかツールバーやメニューへのイメージ表示 ・ヘルプ(マニュアル一式)→使いたいときはオンラインで。 <<私が使わない>> ・対話式実行ツール ・クリップボードタブ <<無意味っぽい>> ・関連付け ・マニュアルetc.のフォルダ変更 <<不評&方法がわからない>> ・一時停止 } 母艦は、「ひまわりエディタ+y」 起動フォーム表示。 「デバッグ機能を有効にしています...」を、起動表示。 デバッグ機能初期化 「バージョンを確認しています...」を、起動表示。 バージョンチェック 「ファイルを確認しています...」を、起動表示。 利用ファイルの有無確認 「DDE サーバを準備しています...」を、起動表示。 DDE受信処理を呼ぶ、『commandy』という、DDEサーバー作成。 関数設定 「メニューを読み込んでいます...」を、起動表示。 メニューの設定 「部品を作成しています...」を、起動表示。 部品の作成 「設定を読み込んでいます...」を、起動表示。 変数設定 設定読み込み 母艦の設定 エディタタブページの、ファイルドロップは、オン//ひまわりのバグが直るまでの辛抱(TT //母艦浮上 起動チェック//exeファイルにした時用。 描画処理反映。 security設定チェック 起動フォーム削除 待機。 *関数設定 「USER32」の、「DWORD GetMenu(DWORD)」を、「?」の、「メニュー取得」として、DLLを利用。 「USER32」の、「DWORD GetSubMenu(DWORD,DWORD)」を、「?,?」の、「サブメニュー取得」として、DLLを利用。 「USER32」の、「DWORD TrackPopupMenu(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD)」を、 「?,?,?,?,?,?,?」の、「ポップアップメニュー表示」として、DLLを利用。 「user32」の、「int IsZoomed(int)」を、「?を、」の、「最大化判定」として、DLLを利用。 //最大化されていなければ0が、最大化されていればそれ以外の数値が「それ」に入る。 戻る。 *変数設定 区切り文字=『\  \(\)\t;=「」"\\\{\}、。、。{}()※/'』&「『』`」 実行ファイル=「」//終了時に削除するためのnhp.bakパスリスト。 編集フラグ=0 書きかけ=0 元行=0 エディタナンバー=0 メインタイトルは、母艦。 母艦ハンドル=母艦の、ハンドル ファイル名配列=「」 命令ファイルを、開く。 「s#^[^|].*##kmg」で、正規表現置換。 「s#^\\|##kmg」で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 命令一覧=それ (母艦の、ハンドル)の、メニュー取得。 それ、1の、サブメニュー取得。 bメニューハンドル=それ。 (母艦の、ハンドル)の、メニュー取得。 それ、0の、サブメニュー取得。 bfメニューハンドル=それ。 bその他メニューの、可視は、オフ。 bお気に入りメニューの、可視は、オフ。 「補完」を、「?を、」で、関数定義。 『hima.chu.jp内を検索 http://www.google.co.jp/search?q={検索語}&hl=ja&lr=lang_ja&as_sitesearch=hima.chu.jp ひまわりのサイト内のページを検索します。マニュアル検索のかわりにどうぞ。』&「\n」& 『プログラミング質問板 http://www.eznavi.net/~himachan/cbbs/srch.cgi?no=0&word={検索語}&andor=and&logs=.%2Fcbbs.dat&PAGE=20 ひまわりチャンネル内のプログラミング質問掲示板(現在のログ)から検索します。質問する前に調べましょう。』&「\n」& 『プログラム掲示板 http://hima.chu.jp/cgi/prog-bbs/prog.cgi?range=all&keyword={検索語}&mode=find ひまわりプログラム掲示板からプログラムを検索します。プログラムの書き方を調べる時にどうぞ。』&「\n」& 『――――――――――』&「\n」& 『MSDNライブラリ(日本語) http://search.microsoft.com/search/results.aspx?st=b&View=ja-jp&na=82&qu={検索語} DLLを利用したいときなどに。』&「\n」& 『MSDNライブラリ(英語) http://search.microsoft.com/search/results.aspx?View=msdn&st=a&s=2&c=4&qu={検索語} DLLを利用したいときなどに。』&「\n」& 『――――――――――』&「\n」& 『goo 国語辞典 http://dictionary.goo.ne.jp/search.php?MT={検索語}&kind=jn&mode=0 掲示板に書き込むときなどに。正しい日本語を心がけましょう。』&「\n」& 『goo 和英辞典 http://dictionary.goo.ne.jp/search.php?MT={検索語}&kind=je&mode=0 メニューのアクセスキーで迷ったらどうぞ。』&「\n」& 『goo 英和辞典 http://dictionary.goo.ne.jp/search.php?MT={検索語}&kind=ej&mode=0&ej』&「\n」& 『――――――――――』&「\n」& 『google(日本語) http://www.google.com/search?num=50&lr=lang_ja&q={検索語}』&「\n」& 『google(Web全体) http://www.google.com/search?num=50&hl=ja&q={検索語}』&「\n」& 『google(イメージ) http://images.google.com/images?hl=ja&btnG=Google+%8C%9F%8D%F5&q={検索語}』&「\n」& 『Yahoo! JAPAN http://search.yahoo.co.jp/bin/search?p={検索語}』&「\n」& 『goo (日本語) http://search.goo.ne.jp/web.jsp?TAB=&MT={検索語}』&「\n」& 「」を、 カンマ区切りに変換。 トリム 検索サイトは、それ。 0列目を、表列コピー。 b検索サイトコンボの、アイテムは、それ。 その、値は、0 戻る。 *利用ファイルの有無確認 iniファイル=母艦のパス&「hpy.ini」//Tエディタ・各種設定用 マクロファイル=母艦のパス&「macro.txt」//マクロタブ目次 テンプレートファイル=母艦のパス&「template.txt」//テンプレートタブ目次 ファイル名配列=「」 ランタイムのパス&『tools\command.txt』が、存在。 もし、それ=1なら、命令ファイル=ランタイムのパス&『tools\command.txt』 違えば、命令ファイル=母艦のパス&『command.txt』 命令ファイルが、存在。 もし、それ=0なら、(命令ファイル&「が存在しません。\n終了します。」と、言う。おわり。) ランタイムのパス&『tools\gui.txt』が、存在。 もし、それ=1なら、部品ファイル=ランタイムのパス&『tools\gui.txt』 違えば、部品ファイル=母艦のパス&『gui.txt』 部品ファイルが、存在。 もし、それ=0なら、(部品ファイル&「が存在しません。\n終了します。」と、言う。おわり。) iniファイルが、存在。 もし、それ=0なら、iniファイルの作成。 マクロファイルが、存在 もし、それ=0なら、マクロファイルの作成。 テンプレートファイルが、存在 もし、それ=0なら、テンプレートファイルに、「」を、保存。 ランタイムのパス&「tools\\prop.txt」が、存在。 もし、それ=1なら、( ランタイムのパス&「tools\\prop.txt」を、開く。 カンマ区切りに変換。 1列目を、表列コピー。 プロパティテキストは、それ。 ) 違えば、プロパティテキストは、「」 戻る。 *設定読み込み エディタを、iniファイルから、Tエディタ設定を読込。 最近ファイル読み込み iniファイルの、INIファイル開く。 //母艦の位置・サイズを読み込む。 「母艦」の、「サイズ」を、INIファイル読む。 もし、それ<>「」なら、( 母艦の、サイズは、それ。 ) 「母艦」の、「最大化」を、INIファイル読む。 もし、それ=1なら、母艦最大化。 戻るフラグ=1 //ツールレイアウト 「母艦」の、「ツールレイアウト」を、INIファイル読む。 もし、それ<>「」なら、( 「タブページの、レイアウトは、{それ}。 メインスプリッターの、レイアウトは、{それ}。 ツール{それ}メニューの、値=1」を、ひまわりする。 ) 違えば、ツール左メニューの、値=1 //タブページの可視 「母艦」の、「タブ可視」を、INIファイル読む。 タブ表示メニューの、値は、それ。 タブページの、可視は、それ。 //タブページの幅 「母艦」の、「タブ幅」を、INIファイル読む。 もし、それ>190なら、タブページの、幅は、それ。 違えば、タブページの、幅は、190 スプリッタ移動。 「基本」の、「エディタ折り返し」を、INIファイル読む。 エディタ折り返すメニューの、値=それ。 エディタタブページの、折り返し=それ。 //ブラウザレイアウト 「母艦」の、「ブラウザレイアウト」を、INIファイル読む。 もし、それ<>「」なら、( 「ブラウザパネルの、レイアウトは、{それ}。 ブラウザモードスプリッターの、レイアウトは、{それ}。 ブラウザ{それ}メニューの、値=1」を、ひまわりする。 ) 違えば、ブラウザ下メニューの、値=1 //ブラウザの可視 「母艦」の、「ブラウザ可視」を、INIファイル読む。 ブラウザ表示メニューの、値は、それ。 ブラウザパネルの、可視は、それ。 ブラウザモードスプリッターの、可視は、それ。 //ブラウザの高さ 「母艦」の、「ブラウザ高さ」を、INIファイル読む。 もし、それ>1なら、ブラウザパネルの、高さは、それ。 //ブラウザの最小化 「母艦」の、「ブラウザ最小化」を、INIファイル読む。 もし、それ=1なら、bバー表示ボタンの、イベント 違えば、元高さ=ブラウザパネルの、高さ //ファイルドロップ 「基本」の、「ファイルドロップ」を、INIファイル読む。 ファイルドロップメニューの、値は、それ。 //bak削除 「基本」の、「bak削除」を、INIファイル読む。 bak削除メニューの、値は、それ。 //日本語 「基本」の、「日本語」を、INIファイル読む。 日本語メニューの、値は、それ。 //初期ウインドウ 「基本」の、「初期ウインドウ」を、INIファイル読む。 初期ウインドウメニューの、値は、それ。 //挿入区切り 「基本」の、「挿入区切り」を、INIファイル読む。 もし、それ<>「」なら、挿入区切りは、それ。 違えば、挿入区切りは、「、」 //ラベルを見張る 「基本」の、「ラベルを見張る」を、INIファイル読む。 ラベルを見張るメニューの、値は、それ。 //常に書きかけ 「基本」の、「常に書きかけ」を、INIファイル読む。 常に書きかけメニューの、値は、それ。 書きかけ=それ 母艦浮上//ひまわりさんのバグ修正待ち(TT b窓スプリッタイベント //書きかけ 「基本」の、「書きかけ」を、INIファイル読む。 もし、それ=1なら、書きかけ読み込み 違えば、( もし、(初期ウインドウメニューの、値=1)なら、( 新規イベント。 iniファイルが、存在。 もし、それ=1なら、( iniファイルを、開く。 「s#^\\[エディタ.*\\]#\\[エディタ{エディタナンバー-1}\\]#k」で、正規表現置換。 iniファイルに、保存。 「エディタ{エディタナンバー-1}」を、iniファイルから、Tエディタ設定を読込。 iniファイルを、開く。 「s#^\\[エディタ.*\\]#\\[エディタ\\]#k」で、正規表現置換。 iniファイルに、保存。 ) ) ) 戻るフラグ=0 INIファイル閉じる 戻る。 *最近ファイル読み込み iniファイルの、INIファイル開く。 「基本」の、「最近ファイル」を、INIファイル読む。 『>』を、「\n」に、置換。 反復( 「最近{回数}メニューの、テキストは、それ&『(&{回数-1})』。」を、ひまわりする。 その、可視は、オン。 ) INIファイル閉じる。 戻る。 *起動チェック //exeファイルにした時用。ファイルドロップしたときはそれを読み込む それ=コマンドライン引数 『s#^.*##k』で、正規表現置換。 『s#^\r?\n##k』で、正規表現置換。 もし、存在=1なら、タブ開く。 戻る。 *書きかけ読み込み iniファイルの、INIファイル開く。 「基本」の、「ファイル名配列」を、INIファイル読む。 INIファイル閉じる。 「>>」を、「\n」に、置換。 反復( aa=それ もし、(それ#1#0<>「」)なら、( それ=それ#1#0 タブ開く。 ) 違えば、( 新規イベント。 ) もし、(aa#2#0=1)なら、( //編集=1 母艦のパス&「hpy.bak」から、「{aa#0#0}.txt」を、合成ファイル取り出す。 その、テキストは、それ。 a=エディタタブページの、値 ファイル名配列#2#a=「1」//編集フラグ=オン b=エディタタブページの、テキスト (b#a)、1、RIGHT。 もし、それ<>「*」なら、( b#a=(b#a)&「*」 エディタタブページの、テキストは、b ) ) ) iniファイルの、INIファイル開く。 「基本」の、「ツールタブ値」を、INIファイル読む。 タブページの、値は、それ。 「基本」の、「エディタタブ値」を、INIファイル読む。 エディタタブページの、値は、それ。 INIファイル閉じる。 戻る。 *母艦の設定 終了イベントに、終了処理設定。 母艦の、変更した時は、母艦ステータス書き込み。 その、背景色は、ウインドウ色。 戻る。 *終了イベント 母艦ステータス書き込み。 bak削除イベント。 a=0 もし、書きかけ=1なら、( iniファイルの、INIファイル開く。 (タブページの、値)を、「基本」の、「ツールタブ値」へ、INIファイル書く。 INIファイル閉じる。 もし、ファイル名配列=「」なら、おわり。 保存パスは、「」 ファイル名配列の、「\n」を、「>>」に、置換。 iniファイルの、INIファイル開く。 「基本」の、「ファイル名配列」へ、INIファイル書く。 書きかけを、「基本」の、「書きかけ」へ、INIファイル書く。 (エディタタブページの、値)を、「基本」の、「エディタタブ値」へ、INIファイル書く。 INIファイル閉じる。 ファイル名配列を、反復( もし、(それ#2#0<1)なら、続ける。 「エディタ{それ#0#0}」を、その単語に特定。 (その、テキスト)を、TEMPのパス&「{それ#0#0}.txt」に、保存。 保存パスに、「{TEMPのパス}{それ#0#0}.txt\n」を、足す。 ) 保存パスを、母艦のパス&『hpy.bak』に、ファイル合成。 ) 違えば、( 全て閉じるイベント もし、c=2なら、( 終了イベントに、終了処理設定。//終了キャンセルの場合は終了処理再設定の後、待機or戻る。 ) ) もし、c=0なら、おわり。 戻る。 *bak削除イベント iniファイルの、INIファイル開く。 「基本」の、「bak削除」を、INIファイル読む。 INIファイル閉じる。 もし、それ<>1なら、戻る。 実行ファイルを、反復( もし、存在=1なら、それを、ファイル完全削除。 ) 戻る。 *メニューの設定 bお気に入りメニューを、作る。 b本家メニューを、メニュー追加。 その、テキストは、「日本語プログラム言語『ひまわり』(&J)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/」 b各種掲示板メニューを、メニュー追加。 その、テキストは、「各種掲示板(&B)」 b各種掲示板メニューに、bb質問板メニューを、メニュー追加。 その、テキストは、「プログラミング質問掲示板(&Q)」 その、イベントは、ブラウザの、URLは、「http://www.eznavi.net/~himachan/cbbs/cbbs.cgi」 b各種掲示板メニューに、bbプログラム板メニューを、メニュー追加。 その、テキストは、「プログラム掲示板(&P)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/cgi/prog-bbs/prog.cgi」 b各種掲示板メニューに、bb交流の板メニューを、メニュー追加。 その、テキストは、「交流の板(&E)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/cgi/bbs/bbs.cgi?id=himawari」 b各種掲示板メニューに、bbバグ板メニューを、メニュー追加。 その、テキストは、「バグ報告の板(&B)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/cgi/bbs/hima_bug/cbbs.cgi」 b各種掲示板メニューに、bb共同作業板メニューを、メニュー追加。 その、テキストは、「共同作業の板(&G)」//group work その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/cgi/bbs-to/cbbs.cgi」 b各種掲示板メニューに、bbリンク板メニューを、メニュー追加。 その、テキストは、「リンク板(&L)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/cgi/bbs/bbs.cgi?id=himawari-link」 ' b各種掲示板メニューに、bbメニューを、メニュー追加。 ' その、テキストは、「(&)」 ' その、イベントは、ブラウザの、URLは、「」 bマニュアルメニューを、メニュー追加。 その、テキストは、「ひまわりマニュアル(&M)」 その、イベントは、( ランタイムのパス&『doc\index.htm』が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&『doc\index.htm』 違えば、ブラウザの、URLは、「http://hima.chu.jp/doc/index.htm」 ) b履歴メニューを、メニュー追加。 その、テキストは、「ひまわりの履歴(&H)」 その、イベントは、( ランタイムのパス&『history.txt』が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&『history.txt』 違えば、ブラウザの、URLは、「http://hima.chu.jp/download/history.txt」 ) b一覧メニューを、メニュー追加。 その、テキストは、「命令一覧(&W)」 その、イベントは、( ランタイムのパス&『doc\command.htm』が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&『doc\command.htm』 違えば、ブラウザの、URLは、「http://hima.chu.jp/doc/command.htm」 ) bユーザーサイトメニューを、メニュー追加。 その、テキストは、「ユーザーサイト(&U)」 bユーザーサイトメニューに、buひまスメメニューを、メニュー追加。 その、テキストは、「ひまわりのススメ(&S)」 その、イベントは、ブラウザの、URLは、「http://www.isonly.net/~yuk_yt/himawari/」 bユーザーサイトメニューに、buひまわりの倉庫メニューを、メニュー追加。 その、テキストは、「ひまわりの倉庫(&B)」 その、イベントは、ブラウザの、URLは、「http://www.geocities.jp/moka21/teatime/soft/himawari/」 bユーザーサイトメニューに、buひまわりでいこうメニューを、メニュー追加。 その、テキストは、「ひまわりでいこう(&G)」 その、イベントは、ブラウザの、URLは、「http://koji.chu.jp/」 bユーザーサイトメニューに、buひまわり物語メニューを、メニュー追加。 その、テキストは、「ひまわり物語(&T)」 その、イベントは、ブラウザの、URLは、「http://www.geocities.co.jp/SiliconValley/1588/」 bユーザーサイトメニューに、bu熱血MultiWebメニューを、メニュー追加。 その、テキストは、「熱血MultiWeb(&N)」 その、イベントは、ブラウザの、URLは、「http://mypage.odn.ne.jp/home/nekketu_multi_web/」 bユーザーサイトメニューに、bu区切りメニューを、メニュー追加。 その、テキストは、「-」 bユーザーサイトメニューに、buユーザーリンクメニューを、メニュー追加。 その、テキストは、「ユーザーサイトリンク集(&U)」 その、イベントは、ブラウザの、URLは、「http://www.isonly.net/~yuk_yt/himawari/link/p.html」 ' bユーザーサイトメニューに、buメニューを、メニュー追加。 ' その、テキストは、「(&)」 ' その、イベントは、ブラウザの、URLは、「」 bお気に入り_IEお気に入りメニューを、メニュー追加。 その、テキストは、「IEお気に入り(&I)」 お気に入りのパス&「*.url」の、全ファイル列挙。 //お気に入りメニュー作成・改悪ルーチン by kobachi お気に入りのパス&「*.url」の、全ファイル列挙。 反復( ファイルパスは、それ。 ファイルパスを、開く。 それの、-1列目から、「=」を、表ピックアップ。 もし、((それの、「URL」)<>「」)なら、ターゲットURLは、それの、「URL」。 でなければ、ターゲットURLは、それの、「BASEURL」。 //ターゲットURLが存在した場合にのみメニューを作成 もし、ターゲットURLが、「」でなければ、( ファイルパスの、お気に入りのパスを、「bお気に入り\\IEお気に入り\\」に、置換。 『s#(.*)\..*#$1#kmg』で、正規表現置換。 メニューパス作成。 「その、イベントは、ブラウザの、URLは、『{ターゲットURL}』。」を、ひまわりする。 ) ) //お気に入りメニュー作成・改悪ルーチン by kobachi end bその他メニューを、作る。 b文書表示を、メニュー追加。 その、テキストは、「編集中のプログラムをブラウザで表示」 その、イベントは、b表示イベント b文書表示区切りを、メニュー追加。 その、テキストは、「-」 b実行メニューを、メニュー追加。 その、テキストは、「表示中のプログラムを実行」 その、イベントは、b実行イベント b貼り付けメニューを、メニュー追加。 その、テキストは、「表示中のプログラムをエディタで開く」 その、イベントは、b貼り付けイベント b貼り付け区切りメニューを、メニュー追加。 その、テキストは、「-」 bマクロ登録メニューを、メニュー追加。 その、テキストは、「表示中のプログラムをマクロに追加」 その、イベントは、bマクロ登録イベント bテンプレート登録メニューを、メニュー追加。 その、テキストは、「表示中のプログラムをテンプレート・ライブラリに追加」 その、イベントは、bテンプレート登録イベント bライブラリ保存メニューを、メニュー追加。 その、テキストは、「表示中のプログラムをライブラリとして保存」 その、イベントは、bライブラリ保存イベント bライブラリ区切りメニューを、メニュー追加。 その、テキストは、「-」 bURL生成メニューを、メニュー追加。 その、テキストは、「URL生成」 その、イベントは、bURL生成イベント b他ブラウザメニューを、メニュー追加。 その、テキストは、「表示中のページを標準のブラウザで開く」 その、イベントは、(もし、(メモの、可視=0)なら、((ブラウザの、URL)を、起動。)) ' bメニューを、メニュー追加。 ' その、テキストは、「」 ' その、イベントは、bイベント ファイルメニューを、作る。 その、テキストは、「ファイル(&F)」。 ファイルメニューに、新規メニューを、メニュー追加。 その、テキストは、「新規(&N)」。 その、ショートカットキーは、「Ctrl+N」。 その、イベントは、新規イベント。 ファイルメニューに、開くメニューを、メニュー追加。 その、テキストは、「開く(&O)」。 その、ショートカットキーは、「Ctrl+O」。 その、イベントは、開くイベント 最近開いたファイルメニューを、メニュー追加。 その、テキストは、「最近開いたファイル(&R)」。 10回( 「最近開いたファイルメニューに、最近{回数}メニューを、メニュー追加」を、ひまわりする。 その、可視は、オフ その、イベントは、最近ファイルイベント。 ) 区切り1メニューを、メニュー追加。 その、テキストは、『-』 ファイルメニューに、上書き保存メニューを、メニュー追加。 その、テキストは、「上書き保存(&S)」。 その、ショートカットキーは、「Ctrl+S」。 その、イベントは、保存イベント ファイルメニューに、名前を付けて保存メニューを、メニュー追加。 その、テキストは、「名前を付けて保存(&A)...」 その、ショートカットキーは、「Ctrl+Shift+S」。 その、イベントは、保存イベント 区切り2メニューを、メニュー追加。 その、テキストは、『-』 実行ファイルメニューを、メニュー追加。 その、テキストは、「配布用実行ファイルの作成(&M)...」 その、イベントは、実行ファイル作成イベント。 区切り3メニューを、メニュー追加。 その、テキストは、『-』 書きかけ終了メニューを、メニュー追加。 その、テキストは、「書きかけ終了(&Q)」 その、イベントは、(書きかけ=1。おわり。) 終了メニューを、メニュー追加。 その、テキストは、「終了(&C)」 その、イベントは、おわり。 編集メニューを、作る。 その、テキストは、「編集(&E)」。 編集メニューに、ラベル挿入メニューを、メニュー追加。 その、テキストは、「ラベル挿入(&L)」 その、イベントは、( 「{アクティブエディタ}の、選択文字列は、『*』。」を、ひまわりする。 ) その、ショートカットキーは、「Alt+Ctrl+S」 区切り4メニューを、メニュー追加。 その、テキストは、『-』 編集メニューに、引数補完メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&H)」 その、イベントは、「引数」を、補完 その、ショートカットキーは、「Ctrl+H」 編集メニューに、単語補完メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 その、イベントは、「単語」を、補完 その、ショートカットキーは、「Ctrl+Space」 区切り5メニューを、メニュー追加。 その、テキストは、『-』 編集メニューに、インデントメニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&I)」 その、イベントは、( アクティブエディタを、その単語に特定。 d=その、選択位置 c=バイト数(そ)-d-(その、選択文字数) それ=その、選択文字列。 『s#^#\t#kmg』で、正規表現置換。 その、選択文字列は、それ。 その、選択位置は、d その、選択文字数は、((バイト数(そ))-d-c) ) 編集メニューに、アンインデントメニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&U)」 その、イベントは、( アクティブエディタを、その単語に特定。 d=その、選択位置 c=バイト数(そ)-d-(その、選択文字数) それ=その、選択文字列。 『s#^\t##kmg』で、正規表現置換。 その、選択文字列は、それ。 その、選択位置は、d その、選択文字数は、((バイト数(そ))-d-c) ) 区切り6メニューを、メニュー追加。 その、テキストは、『-』 編集メニューに、コメント化メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&C)」 その、イベントは、( 「それ={アクティブエディタ}の、選択文字列。」を、ひまわりする。 『s#^#'#kmg』で、正規表現置換。 「{アクティブエディタ}の、選択文字列は、それ。」を、ひまわりする。 ) 編集メニューに、コメント解除メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&O)」//comment off…あってる? その、イベントは、( 「それ={アクティブエディタ}の、選択文字列。」を、ひまわりする。 『s#^'##kmg』で、正規表現置換。 『s#^//##kmg』で、正規表現置換。 『s#^※##kmg』で、正規表現置換。 「{アクティブエディタ}の、選択文字列は、それ。」を、ひまわりする。 ) 区切り7メニューを、メニュー追加。 その、テキストは、『-』 編集メニューに、全て選択メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&A)」 その、イベントは、( 「{アクティブエディタ}の、全て選択を実行。」を、ひまわりする。 ) 区切り8メニューを、メニュー追加。 その、テキストは、『-』 編集メニューに、ファイル名挿入メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&F)」 その、イベントは、( 「*」の、読込ファイル選択。 もし、それ=「」なら、戻る。 「{アクティブエディタ}の、選択文字列は、それ。」を、ひまわりする。 ) 編集メニューに、ファイル埋め込みメニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&E)」 その、イベントは、( 「*」の、読込ファイル選択。 もし、それ=「」なら、戻る。 それを、開く。 BASE64エンコード。 72バイトで、行揃え 「{アクティブエディタ}の、選択文字列は、それ。」を、ひまわりする。 ) アイテム指定メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&M)」 その、イベントは、( 「それは、{アクティブエディタ}の、選択文字列。」を、ひまわりする。 もし、それ=「」なら、戻る。 「エラーを無視。 {それ} (母艦の、アイテム)の、\"\n\"を、『\\n』に、置換。 コピー。おわり。母艦浮上。」を、TEMPのパス&「1.txt」に、保存。 「\"{ランタイムのパス}himawari.exe\" \"{TEMPのパス}1.txt\"」を、起動。 ) 検索メニューを、作る。 その、テキストは、「検索(&S)」。 検索メニューに、検索lメニューを、メニュー追加。 その、テキストは、「検索(&F)」。 その、ショートカットキーは、「Ctrl+F」。 その、イベントは、検索イベント。 検索メニューに、次を検索メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&N)」 その、ショートカットキーは、「F3」。 その、イベントは、次を検索イベント。 区切り9メニューを、メニュー追加。 その、テキストは、『-』 検索メニューに、置換メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&R)」 その、ショートカットキーは、「Ctrl+R」。 その、イベントは、置換イベント。 検索メニューに、正規表現置換メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&E)」 その、イベントは、( もし、(エディタタブページの、テキスト=「」)なら、戻る。 もし、(正規コンボの、テキスト=「」)なら、正規コンボの、値は、0 アクティブエディタを、その単語に特定。 もし、(その、選択文字列=「」)なら、(正規チェックは、0。正規チェックの、有効は、0) 違えば、正規チェックは、1 正規表現置換フォームの、可視は、1 母艦の、有効は、0 ) 区切り10メニューを、メニュー追加。 その、テキストは、『-』 指定行へ移動メニューを、メニュー追加。 その、テキストは、「指定行へ移動(&Z)」 その、ショートカットキーは、「F4」。 その、イベントは、指定移動イベント。 区切り11メニューを、メニュー追加。 その、テキストは、『-』 検索メニューに、ラベル列挙メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&L)」 その、ショートカットキーは、「Ctrl+L」。 その、イベントは、サブルーチン列挙。 表示メニューを、作る。 その、テキストは、「表示(&V)」。 左タブメニューを、メニュー追加。 その、ショートカットキーは、「Shift+Ctrl+Tab」。 その、テキストは、「1つ左のタブを表示(&L)」 その、イベントは、( a=(タブページの、テキスト) タブページの、値は、((タブページの、値)-1+行数(a))%行数(a) ) 右タブメニューを、メニュー追加。 その、ショートカットキーは、「Ctrl+Tab」。 その、テキストは、「1つ右のタブを表示(&R)」 その、イベントは、( a=(タブページの、テキスト) タブページの、値は、((タブページの、値)+1)%行数(a) ) 区切り17メニューを、メニュー追加。 その、テキストは、『-』 表示メニューに、タブ表示メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 タブページの、可視は、NOT((タブページの、可視))。 タブ表示メニューの、値は、タブページの、可視。 iniファイルの、INIファイル開く。 (タブページの、可視)を、「母艦」の、「タブ可視」へ、INIファイル書く。 INIファイル閉じる。 ) 表示メニューに、ブラウザ表示メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 ブラウザパネルの、可視は、NOT((ブラウザパネルの、可視))。 ブラウザモードスプリッターの、可視は、(ブラウザパネルの、可視)。 ブラウザ表示メニューの、値は、ブラウザパネルの、可視。 iniファイルの、INIファイル開く。 (ブラウザパネルの、可視)を、「母艦」の、「ブラウザ可視」へ、INIファイル書く。 INIファイル閉じる。 ) 実行メニューを、作る。 その、テキストは、「実行(&R)」。 実行メニューに、試行メニューを、メニュー追加。 その、テキストは、「実行(&R)」。 その、ショートカットキーは、「F5」。 その、イベントは、実行イベント。 実行メニューに、一行づつ実行メニューを、メニュー追加。 その、テキストは、「一行づつ実行(&L)」。 その、イベントは、実行イベント。 //ひまわり試行停止メニュー by kobachi 実行メニューに、試行停止メニューを、メニュー追加。 その、テキストは、「停止(&S)」。 その、イベントは、( //ひまわりが起動していないとエラーが発生するので、これをトラップする ひまわり未起動エラーに、エラー処理設定。 「himawari」の、『command』に、『break』を、DDE送信。 エラーを警告。 ) //ひまわり試行停止メニュー by kobachi end 設定メニューを、作る。 その、テキストは、「設定(&Z)」。 エディタ設定メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 エディタ設定メニューに、詳細な設定メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&Z)」 その、イベントは、( エディタの、Tエディタ設定。 エディタを、iniファイルへ、Tエディタ設定を保存。 各エディタの設定読み込み ) エディタ設定メニューに、設定インポートメニューを、メニュー追加。 その、テキストは、「ひまわりエディタから設定をインポート(&I)」 その、イベントは、設定インポートイベント エディタ設定メニューに、エディタ折り返すメニューを、メニュー追加。 その、テキストは、「エディタタブを折り返す(&T)」 その、イベントは、( エディタ折り返すメニューの、値は、NOT((その、値)) エディタタブページの、折り返しは、エディタ折り返すメニューの、値。 iniファイルの、INIファイル開く。 (エディタ折り返すメニューの、値)を、「基本」の、「エディタ折り返し」へ、INIファイル書く。 INIファイル閉じる。 ) レイアウト変更メニューを、メニュー追加。 その、テキストは、「レイアウト変更(&A)」 レイアウト変更メニューに、ツールタブレイアウトメニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 ツールタブレイアウトメニューに、ツール左メニューを、メニュー追加。 その、テキストは、「左(&L)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 戻るフラグ=1 ツール右メニューの、値は、0 ツール左メニューの、値は、1 iniファイルの、INIファイル開く。 「左」を、「母艦」の、「ツールレイアウト」へ、INIファイル書く。 INIファイル閉じる。 戻るフラグ=0 タブページの、レイアウトは、左。 メインスプリッターの、レイアウトは、左。 ) ツールタブレイアウトメニューに、ツール右メニューを、メニュー追加。 その、テキストは、「右(&R)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 戻るフラグ=1 ツール左メニューの、値は、0 ツール右メニューの、値は、1 iniファイルの、INIファイル開く。 「右」を、「母艦」の、「ツールレイアウト」へ、INIファイル書く。 INIファイル閉じる。 戻るフラグ=0 タブページの、レイアウトは、右。 メインスプリッターの、レイアウトは、右。 ) レイアウト変更メニューに、ブラウザレイアウトメニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&T)」 ブラウザレイアウトメニューに、ブラウザ上メニューを、メニュー追加。 その、テキストは、「上(&A)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 戻るフラグ=1 ブラウザ下メニューの、値は、0 ブラウザ上メニューの、値は、1 iniファイルの、INIファイル開く。 「上」を、「母艦」の、「ブラウザレイアウト」へ、INIファイル書く。 INIファイル閉じる。 戻るフラグ=0 ブラウザパネルの、レイアウトは、上。 ブラウザモードスプリッターの、レイアウトは、上。 ) ブラウザレイアウトメニューに、ブラウザ下メニューを、メニュー追加。 その、テキストは、「下(&B)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 戻るフラグ=1 ブラウザ上メニューの、値は、0 ブラウザ下メニューの、値は、1 iniファイルの、INIファイル開く。 「下」を、「母艦」の、「ブラウザレイアウト」へ、INIファイル書く。 INIファイル閉じる。 戻るフラグ=0 ブラウザパネルの、レイアウトは、下。 ブラウザモードスプリッターの、レイアウトは、下。 ) 日本語メニューを、メニュー追加。 その、テキストは、「日本語入力を標準にする(&J)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 日本語メニューの、値は、NOT((日本語メニューの、値)) iniファイルの、INIファイル開く。 (日本語メニューの、値)を、「基本」の、「日本語」へ、INIファイル書く。 INIファイル閉じる。 ) 初期ウインドウメニューを、メニュー追加。 その、テキストは、「書きかけ終了をしなかった時、起動時に新規のタブを開いておく(&O)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 初期ウインドウメニューの、値は、NOT((初期ウインドウメニューの、値)) iniファイルの、INIファイル開く。 (初期ウインドウメニューの、値)を、「基本」の、「初期ウインドウ」へ、INIファイル書く。 INIファイル閉じる。 ) 区切り18メニューを、メニュー追加。 その、テキストは、『-』 作業フォルダ設定メニューを、メニュー追加。 その、テキストは、(その、テキスト)&「(&D)」 その、イベントは、( 「作業フォルダを指定してください。」と、言う。 「」の、フォルダ拡張選択。 もし、それ=「」なら、戻る。 作業フォルダは、それ。 iniファイルの、INIファイル開く。 作業フォルダを、「基本」の、「作業フォルダ」へ、INIファイル書く。 INIファイル閉じる。 ) ファイルドロップメニューを、メニュー追加。 その、テキストは、「ファイルドロップ時に内容を挿入(&V)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 ファイルドロップメニューの、値は、(NOT((ファイルドロップメニューの、値))) iniファイルの、INIファイル開く。 (ファイルドロップメニューの、値)を、「基本」の、「ファイルドロップ」へ、INIファイル書く。 INIファイル閉じる。 ) 区切り文字メニューを、メニュー追加。 その、テキストは、「命令挿入時、引数の区切り文字(&U)」 その、イベントは、( a=0 (a=0)で、ループ(『"," "、" " "のいずれか』と、尋ねる。 もし、それ=ダイアログキャンセルの値なら、戻る。 「[,、\ ]」で、正規表現マッチ。 もし、それ<>「」なら、(a=1;抜ける) ) iniファイルの、INIファイル開く。 「基本」の、「挿入区切り」へ、INIファイル書く。 INIファイル閉じる。 ) bak削除メニューを、メニュー追加。 その、テキストは、「エディタ終了時に.bakファイルを自動削除(&B)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 bak削除メニューの、値は、NOT((bak削除メニューの、値)) iniファイルの、INIファイル開く。 (bak削除メニューの、値)を、「基本」の、「bak削除」へ、INIファイル書く。 INIファイル閉じる。 ) 常に書きかけメニューを、メニュー追加。 その、テキストは、「書きかけ終了を標準にする(&W)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 常に書きかけメニューの、値は、NOT((常に書きかけメニューの、値)) 書きかけ=常に書きかけメニューの、値 iniファイルの、INIファイル開く。 (常に書きかけメニューの、値)を、「基本」の、「常に書きかけ」へ、INIファイル書く。 (常に書きかけメニューの、値)を、「基本」の、「書きかけ」へ、INIファイル書く。 INIファイル閉じる。 ) ラベルを見張るメニューを、メニュー追加。 その、テキストは、「ラベルを見張る(&L)」 その、イベントは、( もし、戻るフラグ=1なら、戻る。 ラベルを見張るメニューの、値は、NOT((ラベルを見張るメニューの、値)) iniファイルの、INIファイル開く。 (ラベルを見張るメニューの、値)を、「基本」の、「ラベルを見張る」へ、INIファイル書く。 INIファイル閉じる。 ) ' マクロインポートメニューを、メニュー追加。 ' その、テキストは、(その、テキスト)&「(&M)」 ' その、イベントは、マクロインポートイベント ' 送る登録メニューを、メニュー追加。 ' その、テキストは、「送るメニューに登録(&S)」 ' その、イベントは、( ' 「実行ファイル(*.exe)|*.exe|ひまわりファイル(*.hmw)|*.hmw」の、読込ファイル選択。 ' もし、それ=ダイアログキャンセルの値なら、戻る。 ' SENDTOのパスへ、ショートカット作成。 ' ) ウィンドウメニューを、作る。 その、テキストは、「ウィンドウ(&W)」 エディタ左タブメニューを、メニュー追加。 その、ショートカットキーは、「F7」。 その、テキストは、「前のウィンドウ(&P)」 その、イベントは、( a=(エディタタブページの、テキスト) もし、a=「」なら、戻る。 エディタタブページの、値は、((エディタタブページの、値)-1+行数(a))%行数(a) もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)なら、( //「元行」は「サブルーチン列挙」内で設定。 サブルーチン列挙 ) ) エディタ右タブメニューを、メニュー追加。 その、ショートカットキーは、「F8」。 その、テキストは、「次のウィンドウ(&N)」 その、イベントは、( a=(エディタタブページの、テキスト) もし、a=「」なら、戻る。 エディタタブページの、値は、((エディタタブページの、値)+1)%行数(a) もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)なら、( //「元行」は「サブルーチン列挙」内で設定。 サブルーチン列挙 ) ) 区切り19メニューを、メニュー追加。 その、テキストは、『-』 閉じるメニューを、メニュー追加。 その、テキストは、「編集中のウィンドウを閉じる(&W)」。 その、ショートカットキーは、「Ctrl+W」。 その、イベントは、閉じるイベント。 全て閉じるメニューを、メニュー追加。 その、テキストは、「編集中のウィンドウを全て閉じる(&A)」。 その、イベントは、全て閉じるイベント。 区切り20メニューを、メニュー追加。 その、テキストは、『-』 ヘルプメニューを、作る。 その、テキストは、「ヘルプ(&H)」。 Webメニューを、メニュー追加。 その、テキストは、「Web(&W)」 Webメニューに、ひまページメニューを、メニュー追加。 その、テキストは、「ひまわりホームページへ(&Z)」 その、イベントは、ブラウザの、URLは、「http://hima.chu.jp/」 Webメニューに、wマニュアルメニューを、メニュー追加。 その、テキストは、「マニュアル(&M)」 その、イベントは、bマニュアルメニューの、イベント。 Webメニューに、w命令一覧メニューを、メニュー追加。 その、テキストは、「命令一覧(&W)」 その、イベントは、b一覧メニューの、イベント。 Webメニューに、履歴メニューを、メニュー追加。 その、テキストは、「ひまわり更新履歴(&X)」 その、イベントは、b履歴メニューの、イベント。 Webメニューに、Tエディタメニューを、メニュー追加。 その、テキストは、「Tエディタの設定について(&X)」 その、イベントは、ブラウザの、URLは、『http://www.isonly.net/~yuk_yt/himawari/tedit/』 ひまバージョンメニューを、メニュー追加。 その、テキストは、「ひまわりについて(&H)」。 その、イベントは、「日本語プログラム言語『ひまわり』\nver.\t{ひまわりバージョン}\ndate\t{ひまわり最終更新日}\nby クジラ飛行机 サマ」と、言う。 ヘルプメニューに、バージョン情報メニューを、メニュー追加。 その、テキストは、「バージョン情報(&V)」。 その、イベントは、「ひまわりエディタ+y\nver.{バージョン}\n\nby yuk」と、言う。 エディタタブポップアップを、作る。 エディタタブポップアップに、エディタタブ新規メニューを、メニュー追加。 その、テキストは、「新規(&N)」 その、イベントは、新規イベント。 エディタタブポップアップに、エディタタブ閉じるメニューを、メニュー追加。 その、テキストは、「閉じる(&W)」 その、イベントは、閉じるイベント。 マクロポップアップを、作る。 マクロポップアップに、マクロ起動メニューを、メニュー追加。 その、テキストは、「選択中のマクロを起動(&R)」 その、イベントは、マクロ起動 マクロポップアップに、マクロ開くメニューを、メニュー追加。 その、テキストは、「選択中のマクロを編集(&E)」 その、イベントは、マクロ編集イベント マクロポップアップに、マクロ区切りメニューを、メニュー追加。 その、テキストは、「-」 マクロポップアップに、マクロ_Pメニューを、メニュー追加。 その、テキストは、「プロパティ(&P)」 その、イベントは、「マクロ」の、tm_プロパティイベント。 マクロポップアップに、マクロ区切り2メニューを、メニュー追加。 その、テキストは、「-」 マクロポップアップに、Pマクロインポートメニューを、メニュー追加。 その、テキストは、「マクロインポート(&I)」 その、イベントは、マクロインポートイベント テンプレートポップアップを、作る。 テンプレートポップアップに、テンプレート起動メニューを、メニュー追加。 その、テキストは、「選択中のテンプレートを挿入(&I)」 その、イベントは、テンプレート挿入イベント テンプレートポップアップに、テンプレート取り込むメニューを、メニュー追加。 その、テキストは、「選択中のテンプレートを取り込む(&E)」 その、イベントは、テンプレート取り込むイベント テンプレートポップアップに、テンプレート開くメニューを、メニュー追加。 その、テキストは、「選択中のテンプレートを編集(&E)」 その、イベントは、テンプレート編集イベント テンプレートポップアップに、テンプレート区切りメニューを、メニュー追加。 その、テキストは、「-」 テンプレートポップアップに、tp_メニューを、メニュー追加。 その、テキストは、「プロパティ(&P)」 その、イベントは、「テンプレート」の、tm_プロパティイベント。 戻る。 *部品の作成 文字書体は、「MS UI Gothic」。 文字サイズは、10 //検索タブ上部品 部品配置間隔は、5 (5,5)に、移動。 検索コンボを、作る。 その、幅は、168 その、キー押した時は、もし、押されたキー=13なら、検索ボタンイベント。 検索ボタンを、作る。 その、Y=(その、Y)-3 その、幅は、40 その、高さは、20 その、イベントは、検索ボタンイベント。 (その、右側)に、新規ボタンを、作る。 その、幅は、40 その、高さは、20 その、イベントは、( 検索コンボの、テキストは、「」 行頭チェックは、0 メタ文字チェックは、0 ) (その、右側)に、サブルーチンボタンを、作る。 その、テキストは、「ラベル列挙」 その、幅は、80 その、高さは、20 その、イベントは、サブルーチン列挙 行頭チェックを、作る。 その、X=検索コンボの、X その、幅は、80 (その、右側)に、メタ文字チェックを、作る。 その、幅は、80 その、イベントは、( 行頭チェックの、有効は、NOT(メタ文字チェック) ) 部品配置間隔は、0 (0,0)に、移動。 検索パネルを、作る。 その、スタイルは、枠なし その、アイテムは、「メタ文字チェック\n検索コンボ\n検索ボタン\n新規ボタン\nサブルーチンボタン\n行頭チェック\n」 その、高さは、78 その、レイアウトは、「上」 検索リストを、作る。 その、イベントは、検索リストイベント。 その、レイアウトは、「全体」 //テンプレートタブ上部品 部品配置間隔=5 (5,5)に、移動 t追加ボタンを、作る。 その、テキストは、「+」 その、幅は、20 その、高さは、20 その、ヒントは、「アイテムを追加」 その、イベントは、「テンプレート」の、tm_追加イベント。 (その、右側)に、t削除ボタンを、作る。 その、テキストは、「-」 その、幅は、20 その、高さは、20 その、ヒントは、「選択中のアイテムを削除」 その、イベントは、「テンプレート」の、tm_削除イベント。 tパネルを、作る。 その、スタイルは、枠なし その、アイテムは、「t追加ボタン\nt削除ボタン\n」 その、高さは、30 その、レイアウトは、上 テンプレートツリーを、作る。 その、レイアウトは、「全体」 その、イベントは、「テンプレート」を、tm_ステータス表示。 その、ファイルドロップは、1 その、ファイルドロップした時は、「テンプレート」の、tm_ドロップイベント。 テンプレートファイルを、開く。 『s#,.*##kmg』で、正規表現置換。 その、アイテムは、それ。 もし、それ<>「」なら、その、「」を、ツリー展開。 その、編集は、オフ。 その、ポップアップは、テンプレートポップアップ //マクロタブ上部品 部品配置間隔=5 (5,5)に、移動 m追加ボタンを、作る。 その、テキストは、「+」 その、幅は、20 その、高さは、20 その、ヒントは、「アイテムを追加」 その、イベントは、「マクロ」の、tm_追加イベント。 (その、右側)に、m削除ボタンを、作る。 その、テキストは、「-」 その、幅は、20 その、高さは、20 その、ヒントは、「選択中のアイテムを削除」 その、イベントは、「マクロ」の、tm_削除イベント。 mパネルを、作る。 その、スタイルは、枠なし その、アイテムは、「m追加ボタン\nm削除ボタン\n」 その、高さは、30 その、レイアウトは、上 マクロツリーを、作る。 その、レイアウトは、「全体」 その、ダブルクリックした時は、マクロ起動。 その、イベントは、「マクロ」を、tm_ステータス表示。 その、ファイルドロップは、1 その、ファイルドロップした時は、「マクロ」の、tm_ドロップイベント マクロファイルを、開く。 『s#,.*##kmg』で、正規表現置換。 その、アイテムは、それ もし、それ<>「」なら、その、「」を、ツリー展開。 その、編集は、オフ。 その、ポップアップは、マクロポップアップ //部品タブ上部品 部品ツリーを、作る。 その、イベントは、部品ステータス表示。 その、ダブルクリックした時は、部品表示。 その、レイアウトは、「全体」 その、編集は、オフ。 //命令タブ上部品 命令ツリーを、作る。 その、イベントは、命令目次イベント。 その、編集は、オフ。 その、レイアウトは、「上」 命令リストを、作る。 その、ダブルクリックした時は、命令イベント。 その、イベントは、命令表示。 その、レイアウトは、「全体」 命令スプリッターを、作る。 その、レイアウトは、「上」 その、イベントは、( もし、(命令ツリーの、高さ<40)なら、命令ツリーの、高さ=40 ) タブページを、作る。//半角カナ使ってます。ごめん。 その、テキストは、「命令\n部品\n検索\nマクロ\nテンプレート・ライブラリ」 その、値は、4 その、アイテムは、「tパネル\nテンプレートツリー」 その、値は、3 その、アイテムは、「mパネル\nマクロツリー」 その、値は、2 その、アイテムは、「検索パネル\n検索リスト」 その、値は、1 その、アイテムは、「部品ツリー」 その、値は、0 その、アイテムは、「命令スプリッター\n命令ツリー\n命令リスト\n」 その、折り返しは、1 その、レイアウトは、左。 その、イベントは、( もし、(タブページの、値=2)かつ(ラベルを見張るメニューの、値=1)なら、( サブルーチン列挙 ) ) メインスプリッターを、作る。//先にスプリッタ作らないと失敗する(TT その、レイアウトは、左。 その、イベントは、スプリッタ移動。 エディタタブページを、作る。 その、レイアウトは、全体。 その、ファイルドロップは、1 その、ファイルドロップした時は、ファイルドロップイベント。 その、イベントは、( もし、(タブページの、値=2)かつ(ラベルを見張るメニューの、値=1)なら、( サブルーチン列挙 ) ) その、ポップアップは、エディタタブポップアップ エディタを、Tエディタとして、作成。 その、可視は、オフ//Tエディタ設定用 メインパネルを、作る。 その、アイテムは、「メインスプリッター\nタブページ\nエディタタブページ\n」 その、レイアウトは、全体。 //ブラウザパネル上部品 文字サイズは、9 部品配置間隔は、8 「(9,7)」に、「戻る」を、「←」で、フラットボタン作成。 その、ヒントは、『戻る(Alt+←)』 その、イベントは、ブラウザの、ブラウザ戻る。 その右側に、「進む」を、「→」で、フラットボタン作成。 その、ヒントは、『進む(Alt+→)』 その、イベントは、ブラウザの、ブラウザ進む。 その右側に、「更新」を、で、フラットボタン作成。 その、イベントは、( もし、(ブラウザの、URL<>「」)なら、( それ=ブラウザの、URL ブラウザの、URLは、それ。 ) ) その右側に、「お気に入り」を、で、フラットボタン作成。 その、ヒントは、「お気に入りを表示」 その、イベントは、( X=((フラットパネルの、X)+(母艦の、X)+3+2) Y=((フラットパネルの、Y)+(フラットパネルの、H)+(ブラウザパネルの、Y)+(母艦の、Y)+42+1) bfメニューハンドル,2,X,Y,0,(母艦の、ハンドル),0の、ポップアップメニュー表示。 ) その右側に、「その他」を、「☆」で、フラットボタン作成。 その、ヒントは、「その他のメニュー」 その、イベントは、( X=((フラットパネルの、X)+(母艦の、X)+3+2) Y=((フラットパネルの、Y)+(フラットパネルの、H)+(ブラウザパネルの、Y)+(母艦の、Y)+42+1) bメニューハンドル,2,X,Y,0,(母艦の、ハンドル),0の、ポップアップメニュー表示。 ) その右側に、b検索ラベルを、作る。 その、テキストは、「検索」 その、X=5 その、Y=(その、Y)-2//凹凸が激しくなりパネルの幅が狭くなってしまっているため調節。 (その、右側)に、b検索コンボを、作る。 その、X=(その、X)-3 その、Y=(その、Y)-3 その、ヒントは、「Enterで検索開始」 その、キー押した時は、もし、押されたキー=13なら、b検索イベント。 (その、右側)に、b検索サイトコンボを、作る。 その、W=(その、W)-3 その、X=(その、X)-3 その、値は 0 その、編集は、オフ その、ヒントは、「Enterで検索開始」 その、キー押した時は、もし、押されたキー=13なら、b検索イベント。 その、イベントは、ステータスラベルは、(検索サイト#2#(b検索サイトコンボの、値)) その右側に、bアドレスラベルを、作る。 その、テキストは、「アドレス」 その、Y=(その、Y)-2 その、X=5 (その、右側)に、bアドレスコンボを、作る。 その、Y=(その、Y)-3 その、X=(その、X)-5 その、ヒントは、「Enterで表示中のアドレスに移動」 その、キー押した時は、( もし、押されたキー=13なら、( それ=bアドレスコンボの、テキスト 3文字、右端を切り取る。 もし、それ=「hmw」なら、( (bアドレスコンボの、テキスト)が、存在するか。 もし、それ=1なら、( (bアドレスコンボの、テキスト)を、開く。 メモの、テキストは、それ。 その、可視は、1 ) 違えば、(BEEP。戻る) ) 違えば、ブラウザの、URLは、bアドレスコンボの、テキスト。 bアドレスコンボの、アイテムは、「{その、テキスト}\n{その、アイテム}」 ) ) 描画処理反映。 (その、右側)に、bバー表示ボタンを、作る。 その、Y=(その、Y)+1 その、テキストは、「↓」 その、ヒントは、「ツールバーのみ表示」 その、高さは、18//(bアドレスラベルの、高さ)+4。 その、幅は、12 その、イベントは、( もし、(ブラウザパネルの、高さ=btbパネルの、高さ)なら、( もし、(元高さ>btbパネルの、高さ)なら、ブラウザパネルの、高さ=元高さ 違えば、ブラウザパネルの、高さ=200//初期値 ブラウザモードスプリッタイベント ) 違えば、( 元高さ=ブラウザパネルの、高さ ブラウザパネルの、高さ=btbパネルの、高さ ブラウザモードスプリッタイベント ) ) (その、右側)に、b閉じるボタンを、作る。 その、テキストは、「X」 その、ヒントは、「ブラウザを閉じる」 その、高さは、18//(bアドレスラベルの、高さ)+4。 その、幅は、12//その、高さ。 その、イベントは、ブラウザ表示メニューの、イベント。 b検索パネルを、作る。 その、スタイルは、枠なし その、アイテムは、「b検索ラベル\nb検索コンボ\nb検索サイトコンボ」 その、レイアウトは、左。 bアドレスパネルを、作る。 その、スタイルは、枠なし その、アイテムは、「bアドレスラベル\nbアドレスコンボ\nb閉じるボタン\nbバー表示ボタン\n」 その、レイアウトは、全体。 b窓スプリッターを、作る。 その、レイアウトは、左。 その、イベントは、b窓スプリッタイベント。 b窓パネルを、作る。 その、位置は、(0,0) その、アイテムは、「b窓スプリッター\nb検索パネル\nbアドレスパネル」 その、レイアウトは、全体。 その、マウス動かした時は、フラットオフ bメニューパネルを、作る。 その、アイテムは、「戻るラベル\n進むラベル\n更新ラベル\nお気に入りラベル\nその他ラベル\n」 その、レイアウトは、左。 その、幅は、180 その、マウス動かした時は、フラットオフ (その、アイテム)を、反復( 「{それ}の、ポケットは、『bメニューパネル』」を、ひまわりする。 ) 「bメニューパネル」に、フラット準備。 btbパネルを、作る。//ブラウザツールパーパネル その、スタイルは、枠なし その、レイアウトは、上 その、高さは、26 その、アイテムは、「bメニューパネル\nb窓パネル」 ブラウザを、作る。 その、レイアウトは、全体 その、イベントは、( もし、(ブラウザの、高さ=0)なら、bバー表示ボタンの、イベント。 ブラウザ移動先URLから、3文字、右端を切り取る。 もし、それ=「hmw」なら、( bアドレスコンボが、存在するか。 もし、それ=1なら、( メモの、可視は、1 bアドレスコンボは、ブラウザ移動先URL。 ) 違えば、メモの、可視は、0 ) 違えば、メモの、可視は、0 ) その、変更した時は、( bアドレスコンボは、ブラウザの、URL。 ) メモを、リッチエディタとして、作成。 その、レイアウトは、全体 その、編集は、オフ。 その、可視は、オフ ブラウザパネルを、作る。 その、スタイルは、枠なし その、レイアウトは、下 その、アイテムは、「メモ\nブラウザ\nbtbパネル」 その、高さは、200//最小値は75 ブラウザモードスプリッターを、作る。 その、レイアウトは、下 その、イベントは、ブラウザモードスプリッタイベント ブラウザモードパネルを、作る。 その、スタイルは、枠なし その、レイアウトは、全体。 その、アイテムは、「ブラウザモードスプリッター\nメインパネル\nブラウザパネル」 ステータスラベルを、作る その、フォントサイズは、9 その、テキストは、「」 その、位置は、(5,4) その、クリックした時は、ステータスラベルクリック。 ステータスパネルを、作る その、スタイルは、1 その、高さは、(ステータスラベルの、高さ)+9 その、アイテムは、「ステータスラベル」 その、レイアウトは、下。 その、クリックした時は、ステータスラベルクリック。 補完グリッドを、作る。 その、位置は、(0,0) その、ダブルクリックした時は、命令決定イベント。 その、キー押した時は、もし、押されたキー=13なら、命令決定イベント。 補完フォームを、作る。 その、可視は、オフ その、スタイルは、枠なし。 その、アイテムは、「補完グリッド」 その、幅は、補完グリッドの、幅 その、高さは、補完グリッドの、高さ 補完フォームを、最前面。 (10,10)に、移動 部品配置間隔=8。 ジャンルラベルを、作る。 (その、右側)に、ジャンルコンボを、作る。 その、Y=(その、Y)-4 その、X=75 その、幅は、215 p_ファイル名ラベルを、作る。 その、テキストは、「ファイル名」 その、X=10 その、Y=(その、Y)-4 (その、右側)に、p_ファイル名エディタを、作る。 その、X=75 その、Y=(その、Y)-4 その、幅は、185 その、ダブルクリックした時は、p_ファイル名エディタイベント。 (その、右側)に、p_ファイル選択ボタンを、作る。 その、テキストは、「...」 その、高さは、21 その、幅は、25 その、X=(その、X)-4 その、ヒントは、「ファイルを選択」 アイテム名ラベルを、作る。 その、Y=(その、Y)+4 その、X=10 (その、右側)に、アイテム名エディタを、作る。 その、X=75 その、Y=(その、Y)-4 その、幅は、215 p_説明ラベルを、作る。 その、テキストは、「説明」 その、X=10 (その、右側)に、p_説明エディタを、作る。 その、X=75 その、Y=(その、Y)-4 その、幅は、215 p_OKボタンを、作る その、テキストは、「OK」 その、幅は、100 その、高さは、22 その、Y=(その、Y)+4 その、X=82 (その、右側)に、p_cancelボタンを、作る。 その、テキストは、「キャンセル」 その、幅は、100 その、高さは、22 その、イベントは、p_キャンセルイベント。 プロパティフォームを、作る。 その、可視は、0。 その、閉じた時は、p_キャンセルイベント。 その、アイテムは、「ジャンルラベル\np_ファイル名ラベル\nアイテム名ラベル\np_説明ラベル\nジャンルコンボ\np_ファイル名エディタ\np_ファイル選択ボタン\nアイテム名エディタ\np_説明エディタ\np_OKボタン\np_cancelボタン\n」 その、背景色は、ウインドウ色 その、スタイルは、3 その、幅は、300 その、高さは、160 プロパティフォームを、最前面。 (10,10)に、移動。 JPラベルを、作る。 その、テキストは、「ジャンル名」 (その、右側)に、JPエディタを、作る。 その、Y=その、Y-4 その、幅=150 JP登録アイテムラベルを、作る。 その、テキストは、「現在このジャンルに登録されているアイテム」 JPアイテムラベルを、作る。 その、位置は、(3,3) (JP登録アイテムラベルの、下側)に、JPアイテムスクロールを、作る。 その、アイテムは、「JPアイテムラベル」 その、幅は、175 その、高さは、80 その、X=30 JPOKボタンを、作る。 その、テキストは、「OK」 その、幅は、その、幅+25 その、X=12 その、イベントは、jp_OKイベント (その、右側)に、JPキャンセルボタンを、作る。 その、テキストは、「キャンセル」 その、幅は、JPOKボタンの、幅 その、イベントは、jp_キャンセルイベント JPフォームを、作る。 その、可視は、0。 その、タイトルは、「プロパティ」 その、閉じた時は、jp_キャンセルイベント。 その、アイテムは、「JPラベル\nJP登録アイテムラベル\nJPエディタ\nJPアイテムスクロール\nJPOKボタン\nJPキャンセルボタン\n」 その、背景色は、ウインドウ色 その、スタイルは、3 その、幅は、235//JP登録アイテムラベルの、幅+20 その、高さは、180//JPキャンセルボタンの、Y+JPキャンセルボタンの、高さ+7 JPフォームを、最前面。 a=部品配置間隔 //置換ダイアログ 文字サイズは、9 文字書体は、「MS UI Gothic」。 部品配置間隔=12。 (10,13)に、移動 変換前ラベルを、作る。 その、テキストは、「検索する文字列」 (その、右側)に、変換前コンボを、作る。 その、Y=(その、Y-4) その、X=110 その、幅=150 その、キー押した時は、もし、押されたキー=13なら、次を検索ボタンイベント その、変更した時は、( それ=エディタタブページの、テキスト 置換フォームの、ポケットは、((エディタタブページの、値)-1+行数(それ))%行数(それ) ) (変換前ラベルの、下側)に、変換後ラベルを、作る。 その、テキストは、「置換後の文字列」 (その、右側)に、変換後コンボを、作る。 その、Y=(その、Y-4) その、X=110 その、幅=150 その、キー押した時は、もし、押されたキー=13なら、次を検索ボタンイベント 部品配置間隔=1。 (その、下側)に、 大文字チェックを、作る。 その、テキストは、「大文字・小文字を区別する(&D)」//distinction(区別する) その、幅は、200 その、X=10 置換メタ文字チェックを、作る。 その、テキストは、『\n=改行 \t=タブ文字 \\=\(&E)』 その、幅は、200 先頭からチェックを、作る。 その、テキストは、「先頭から検索(&T)」 その、幅は、200 その、イベントは、もし、先頭からチェックなら、選択範囲チェック=0 選択範囲チェックを、作る。 その、テキストは、「選択範囲のみ置換(&S)」 その、幅は、200 その、イベントは、(もし、選択範囲チェックなら、(先頭からチェック=0。検索文字列=「」)) 全タブチェックを、作る。 その、テキストは、「全てのタブを対象(&L)」 その、幅は、200 動作確認チェックを、作る。 その、テキストは、「置換動作の確認(&P)」 その、幅は、200 (267,8)に、移動。 部品配置間隔=5。 次を検索ボタンを、作る。 その、幅は、95 その、テキストは、(その、テキスト)&「(&N)」 その、イベントは、次を検索ボタンイベント 置換ボタンを、作る。 その、幅は、95 その、テキストは、(その、テキスト)&「(&R)」 その、イベントは、置換ボタンイベント 全て置換ボタンを、作る。 その、幅は、95 その、テキストは、(その、テキスト)&「(&A)」 その、イベントは、全て置換ボタンイベント 連続置換ボタンを、作る。 その、幅は、95 その、テキストは、(その、テキスト)&「(&X)」 その、イベントは、連続置換ボタンイベント 置換キャンセルボタンを、作る。 その、幅は、95 その、テキストは、「キャンセル(&C)」 その、イベントは、置換キャンセルイベント。 置換フォームを、作る。 その、可視は、オフ その、幅は、367 その、高さは、170 その、背景色は、ウインドウ色。 その、スタイルは、ダイアログスタイル。 その、閉じた時は、置換キャンセルイベント。 その、アイテムは、「変換前ラベル\n変換後ラベル\n変換前コンボ\n変換後コンボ\n先頭からチェック\n大文字チェック\n置換メタ文字チェック\n選択範囲チェック\n全タブチェック\n動作確認チェック\n次を検索ボタン\n置換ボタン\n全て置換ボタン\n連続置換ボタン\n置換キャンセルボタン\n」 置換フォームを、最前面。 文字サイズは、10 部品配置間隔=5。 (10,10)に、移動。 正規ラベルを、作る。 その、テキストは、「's/置換前/置換後/オプション'の形式でコマンドを指定してください。」 正規コンボを、作る。 その、幅は、(正規ラベルの、幅-10) その、X=15 その、キー押した時は、もし、押されたキー=13なら、正規置換イベント。 その、アイテムは、「s///kmg\ns/^//kmg\ns/\\r\\n//kmg\n」 正規チェックを、作る。 その、テキストは、「選択範囲のみ」 その、X=15 正規OKボタンを、作る。 その、テキストは、「&OK」 その、幅は、(その、幅)+10 その、X=(正規コンボの、幅)/2+10-(その、幅) その、イベントは、正規置換イベント。 (その、右側)に、正規キャンセルボタンを、作る。 その、テキストは、「キャンセル(&C)」 その、幅は、(正規OKボタンの、幅) その、イベントは、正規キャンセルイベント。 正規表現置換フォームを、作る。 その、可視は、オフ。 その、幅は、(正規ラベルの、幅+20)。 その、高さは、110。 その、背景色は、ウインドウ色。 その、スタイルは、ダイアログスタイル。 その、閉じた時は、正規キャンセルイベント。 その、アイテムは、「正規ラベル\n正規コンボ\n正規チェック\n正規OKボタン\n正規キャンセルボタン\n」 正規表現置換フォームを、最前面。 部品配置間隔=a。a=「」 あいてむ=「」 命令ファイルを、開く。 『s#^\|.*##kmg』で、正規表現置換。 『s#\r?\n##kmg』で、正規表現置換。 「+」を、「\n」に、置換 トリム 反復( 1個目の、「-」を、「\n-」に、単置換。 (それ#1)の、「-」を、「\n{それ#0}\\」に、置換。 あいてむに、それを、足す。 ) 命令ツリーの、アイテムは、それ。 あいてむ=「」 部品ファイルを、開く。 『s#,.*##kmg』で、正規表現置換。 『s#^([^*])#\-$1#kmg』で、正規表現置換。 『s#\r?\n##kmg』で、正規表現置換。 『s#*#\n#kmg』で、正規表現置換。 トリム 反復( 1個目の、「-」を、「\n-」に、単置換。 (それ#1)の、「-」を、「\n{それ#0}\\」に、置換。 あいてむに、それを、足す。 ) 部品ツリーの、アイテムは、あいてむ。 マクロツリーの、ファイルドロップは、1 テンプレートツリーの、ファイルドロップは、1 戻る。 *スプリッタ移動 もし、(タブページの、可視=0)なら、戻る。 検索コンボの、幅は、(タブページの、幅)-18 もし、戻るフラグ=1なら、戻る。 もし、(タブページの、幅<190)なら、タブページの、幅=190 //タブページの、幅を、書き込む iniファイルの、INIファイル開く。 (タブページの、幅)を、「母艦」の、「タブ幅」に、INIファイル書く。 INIファイル閉じる 戻る。 *b窓スプリッタイベント もし、(b検索パネルの、幅<220)なら、b検索パネルの、幅=220 違えば、(もし、(bアドレスパネルの、幅<115)なら、b検索パネルの、幅=(b窓パネルの、幅)-115) ここから 「a」を、ローカル変数。 a=部品配置間隔 部品配置間隔=1 b検索コンボの、幅は、(b検索パネルの、幅)-180 b検索サイトコンボの、位置は、b検索コンボの、右側 bアドレスコンボの、幅は、(bアドレスパネルの、幅)-47-24 bバー表示ボタンの、Xは、(bアドレスパネルの、幅)-(bバー表示ボタンの、幅)-(b閉じるボタンの、幅)-1 b閉じるボタンの、Xは、(bアドレスパネルの、幅)-(b閉じるボタンの、幅)-1 部品配置間隔=a ここまで 戻る。 *ブラウザモードスプリッタイベント もし、(ブラウザパネルの、高さ<=btbパネルの、高さ)なら、( ブラウザパネルの、高さ=btbパネルの、高さ bバー表示ボタンの、ヒントは、「ブラウザを広げる」 その、テキストは、「↑」 ) 違えば、( bバー表示ボタンの、ヒントは、「ツールバーのみ表示」 その、テキストは、「↓」 ) もし、戻るフラグ=1なら、戻る。 描画処理反映。 //ブラウザパネルの高さを、書き込む iniファイルの、INIファイル開く。 もし、bバー表示ボタン=「↓」なら、( (ブラウザパネルの、高さ)を、「母艦」の、「ブラウザ高さ」に、INIファイル書く。 「0」を、「母艦」の、「ブラウザ最小化」に、INIファイル書く。 ) 違えば、( 「1」を、「母艦」の、「ブラウザ最小化」に、INIファイル書く。 ) INIファイル閉じる 戻る。 *母艦ステータス書き込み もし、戻るフラグ=1なら、戻る。 戻るフラグ=1 もし、(母艦の、幅<500)なら、母艦の、幅は、535 もし、(母艦の、高さ<350)なら、母艦の、高さは、350 戻るフラグ=0 母艦ハンドルを、最大化判定。 もし、それ=0なら、a=0 違えば、a=1 iniファイルの、INIファイル開く。 aを、「母艦」の、「最大化」に、INIファイル書く。 もし、a=0なら、( a=母艦の、サイズ もし、(母艦の、Y<1)なら、a#1#0=1//バグ対策 もし、(母艦の、X<1)なら、a#0#0=「(1」 aを、「母艦」の、「サイズ」に、INIファイル書く。 ) INIファイル閉じる もし、(ブラウザモードパネルの、可視=1)なら、b窓スプリッタイベント。 戻る。 //メニューサブルーチン *作業フォルダ設定 iniファイルの、INIファイル開く。 「基本」の、「作業フォルダ」を、INIファイル読む。 INIファイル閉じる。 もし、それ<>「」なら、作業フォルダは、それ。 戻る。 *新規イベント ファイル名配列は、ファイル名配列&「{エディタナンバー},\n」//エディタ番号,保存ファイル名 エディタタブページの、テキストは、「{エディタタブページの、テキスト}新規\n」 タブの作成 エディタナンバー=エディタナンバー+1 もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)なら、サブルーチン列挙。 戻る。 *開くイベント ' 保存確認。 ' もし、a=ダイアログキャンセルの値なら、戻る。 作業フォルダ設定。 「ひまわりスクリプト(*.hmw)|*.hmw|テキストファイル(*.txt)|*.txt|全てのファイル(*.*)|*.*」の、 読込ファイル選択。 もし、それ=ダイアログキャンセルの値なら、戻る。 *タブ開く b=それ 反復( 長いファイル名取得。 a=それ ファイル名配列の、1列目から、それを、表検索 もし、それ>=0なら、( エディタタブページの、値は、それ。 続ける。 ) もし、(存在(a)=0)なら、( bの、aを、「」に、置換 続ける。 ) それ=エディタタブページの、値 もし、(ファイル名配列<>「」)かつ(ファイル名=「」)なら、( アクティブエディタを、その単語に特定。 もし、(その、テキスト=「」)なら、( ファイル名配列#1#それ=a ファイル名配列#2#それ=0 aを、開く。 その、テキスト=それ a=ファイル名を切り出す(a)。 それ=エディタタブページの、テキスト それ#(エディタタブページの、値)=a エディタタブページの、テキストは、それ。 続ける。 ) ) ファイル名配列は、ファイル名配列&「{エディタナンバー},\"{a}\"\n」//エディタ番号,保存ファイル名,編集フラグ aから、ファイル名を切り出す。 エディタタブページの、テキストは、「{エディタタブページの、テキスト}{それ}\n」 タブの作成 aを、開く。 「エディタ{エディタナンバー}の、テキストは、それ」を、ひまわりする。 エディタナンバー=エディタナンバー+1 ) bを、『s#^\r?\n##kmg』で、正規表現置換。 トリム b=それ もし、戻るフラグ=1またはb=「」なら、戻る。 もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)なら、サブルーチン列挙。 bの、「\n」を、「>」に、置換。 b=それ iniファイルの、INIファイル開く。 「基本」の、「最近ファイル」を、INIファイル読む。 それ=「{b}>{それ}」 「>」を、「\n」に、置換。 0列目をキーに、表重複項目削除。 「\n」を、「>」に、置換。 11個目の、「>」を、「」に、単置換 『s#(.*>).*#$1#kg』で、正規表現置換。 「基本」の、「最近ファイル」へ、INIファイル書く。 INIファイル閉じる。 最近ファイル読み込み。 戻る。 *タブの作成 行数(ファイル名配列) その、値は、それ-1。 「エディタ{エディタナンバー}を、Tエディタとして、作成。」を、ひまわりする。 その、レイアウトは、全体。 その、変更した時は、エディタイベント その、ファイルドロップした時は、エディタドロップ。 その、ダブルクリックした時は、エディタクリック もし、(日本語メニューの、値=1)なら、「エディタ{エディタナンバー}の、IMEは、オン」を、ひまわりする。 その、ファイルドロップは、1 エディタタブページの、アイテムは、「エディタ{エディタナンバー}」。 「エディタ{エディタナンバー}の、ファイルドロップは、1」を、ひまわりする。//ひまわりさんのバグ修正待ち(TT) 「エディタ{エディタナンバー}」に、注目。 描画処理反映 iniファイルが、存在。 もし、それ=1なら、( iniファイルを、開く。 「s#^\\[エディタ.*\\]#\\[エディタ{エディタナンバー}\\]#k」で、正規表現置換。 iniファイルに、保存。 「エディタ{エディタナンバー}」を、iniファイルから、Tエディタ設定を読込。 iniファイルを、開く。 「s#^\\[エディタ.*\\]#\\[エディタ\\]#k」で、正規表現置換。 iniファイルに、保存。 ) 戻る。 *最近ファイルイベント それ=イベントオブジェクトの、テキスト 4文字、右端削除。 a=それ 存在 もし、それ=0なら、( BEEP 戻る ) それ=a。 タブ開く。 戻る。 *保存イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 a=エディタタブページの、値 ファイル名が、存在 もし、(それ=0)または(イベントオブジェクトの、名前=「名前を付けて保存メニュー」)なら、( 「それ={アクティブエディタ}#0」を、ひまわりする。 「m#^(['※]|//)(.*)#k」で、正規表現マッチ。 ダイアログ初期値=それ#3 「ひまわりスクリプト(*.hmw)|*.hmw|テキストファイル(*.txt)|*.txt|全てのファイル(*.*)|*.*」の、書込ファイル選択。 もし、それ=ダイアログキャンセルの値なら、戻る。 ファイル名配列#a=「{ファイル名配列#0#a},\"{それ}\",1」 ダイアログ初期値=「」 ) もし、(ファイル名配列#2#a<>1)なら、戻る。 「{アクティブエディタ}を、『{ファイル名}』に、保存。」を、ひまわりする。 ファイル名配列#2#a=0 b=エディタタブページの、テキスト ファイル名から、ファイル名を切り出す。 b#a=それ エディタタブページの、テキストは、b 戻る。 *保存確認 もし、(エディタタブページの、テキスト=「」)なら、戻る。 a=エディタタブページの、値 もし、(ファイル名配列#2#a=1)なら、( c=0 それ=エディタタブページの、テキスト それ=それ#a もし、それ=「新規*」なら、( 「それ={アクティブエディタ}の、テキスト」を、ひまわりする もし、それ=「」なら、戻る。 ) それ=エディタタブページの、テキスト 「{それ#a}は変更されています。\n保存しますか?」と、三択。 もし、それ=1なら、保存イベント。 違えば、c=それ。 ) 戻る。 *実行ファイル作成イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 ランタイムのパス&『tools\bin\hima_exe.exe』が、存在するか。 もし、それ=1なら、( 「どちらを作成しますか?」を、「ランタイムを含む実行ファイル\nランタイム無しのミニ実行ファイル」の、ボタンで選択。 もし、それ=ダイアログキャンセルの値なら、戻る。 もし、それ=「ランタイムを含む実行ファイル」なら、作成ファイル=1 違えば、作成ファイル=0 ) 違えば、作成ファイル=1 アクティブエディタを、その単語に特定。 もし、(その、テキスト=「」)なら、( ステータスラベルは、「実行ファイルの作成に失敗しました。」。 戻る。 ) 「実行ファイル(*.exe)|*.exe」の、書込ファイル選択。 もし、それ=ダイアログキャンセルの値なら、戻る。 ファイル名は、それ。 「{TEMPのパス}himawari.hmw」に、(その、テキスト)を、保存。 もし、作成ファイル=1なら、( 「{TEMPのパス}himawari.hmw」と、「」から、ファイル名へ、ひまわり実行ファイル作成。 ) 違えば、( 「{TEMPのパス}himawari.hmw」と、「」から、ファイル名へ、ひまわりミニ実行ファイル作成。 ) //kobachiさんThanks! ' 「{TEMPのパス}himawari.hmw」に、(その、テキスト)を、保存。 ' 「{TEMPのパス}himawari.hmw」を、「{TEMPのパス}himawari.obj」へ、ファイル合成。 ' ' もし、作成ファイル=1なら、( ' //ランタイムと結合 ' 「@copy /b \"{ランタイムのパス}himawari.exe\"+\"{TEMPのパス}himawari.obj\" 」& ' 「\"{ファイル名}\">\"{母艦のパス}make.log\"\n@exit」を、「{TEMPのパス}make.bat」に、保存。 ' ) ' 違えば、( ' //ランタイム無し用実行ファイルと結合 ' 「@copy /b \"{ランタイムのパス}tools\\bin\\hima_exe.exe\"+」& ' 「\"{TEMPのパス}himawari.obj\" \"{ファイル名}\">\"{母艦のパス}make.log\"\n@exit」を、 ' 「{TEMPのパス}make.bat」に、保存。 ' ) ' 「{TEMPのパス}make.bat」を、起動。 戻る。 *閉じるイベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 a=エディタタブページの、値 保存確認。 もし、c=2なら、戻る。 ファイル名配列の、a行目を、行削除。 ファイル名配列は、それ エディタタブページの、aを、タブ削除。 ' 反復( ' エディタタブページの、値は、回数-1 ' その、アイテムは、「エディタ{それ#0#0}」 ' ) ' ' それ=エディタタブページの、テキスト ' a行目を、行削除 ' エディタタブページの、テキストは、それ。 ' もし、(a<行数(それ))なら、エディタタブページの、値は、a ' 違えば、エディタタブページの、値は、a-1 もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)かつ(戻るフラグ=0)なら、( //「元行」は「サブルーチン列挙」内で設定。 サブルーチン列挙 ) 戻る。 *全て閉じるイベント 戻るフラグ=1 c=0 (エディタタブページの、テキスト)を、反復( エディタタブページの、値は、0 閉じるイベント。 もし、c=2なら、抜ける。 ) 戻るフラグ=0 戻る。 *実行イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 a=エディタタブページの、値 アクティブエディタを、その単語に特定。 それ=その、テキスト 『s#\s##kmg』で、正規表現置換。 もし、それ=「」なら、戻る。 もし、ファイル名=「」なら、仮実行ファイル=母艦のパス&「nhp.bak」 違えば、( ファイル名から、パスを切り出す。 仮実行ファイル=それ&「nhp.bak」 ) 「\n{その、テキスト}」を、仮実行ファイルに、保存。 もし、(イベントオブジェクトの、名前=「一行づつ実行メニュー」)なら、cw=「-linestop 」 違えば、cw=「」 実行ファイルに、仮実行ファイル&「\n」を、足す。 もし、セキュリティーレベル設定=1なら、セキュリティーつき実行。 違えば、「\"{ランタイムのパス}himawari.exe\" {cw}\"{仮実行ファイル}\"」を、起動。 戻る。 //検索タブのイベント *検索イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 ダイアログIMEの状態=1 「検索したい文字または語を入力してください。」と、尋ねる。 もし、それ=「」ならば、戻る。   検索語は、それ。 アクティブエディタを、その単語に特定。 (その、テキスト)の中で、それが、何文字目。 もし、それ<1ならば、(BEEP。ステータスラベルは、「検索終了:0件」。) 違えば、( その、選択位置は、それ-1。 その、選択文字数は、バイト数(検索語) (その、テキスト)で、検索語の、出現回数。 ステータスラベルは、「検索終了:{それ}件」 ) 戻る。 *次を検索イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 もし、検索語=「」ならば、戻る。   アクティブエディタを、その単語に特定。 元位置=(その、選択位置)+(その、選択文字数)//選択文字数はバイト数が返る (その、テキスト)、0、元位置、MIDB。 (その、テキスト)で、1個目の、それを、「」に、単置換 検索文字列=それ 検索文字列の中で、検索語が、何文字目。 もし、それ<1ならば、( その、選択位置は、元位置。 ステータスラベルは、「検索終了:0件」。 ) 違えば、( その、選択位置は、それ+元位置-1。 その、選択文字数は、バイト数(検索語) ) 戻る。 *置換イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 置換フォームの、可視は、1 それ=エディタタブページの、テキスト その、ポケットは、((エディタタブページの、値)-1+行数(それ))%行数(それ) 検索文字列=「」 // 母艦の、有効は、0 戻る。 *次を検索ボタンイベント もし、(変換前コンボの、テキスト=「」)なら、戻る もし、(先頭からチェック=1)かつ(検索語<>変換前コンボの、テキスト)なら、「{アクティブエディタ}の、選択位置は、0」を、ひまわりする。 アクティブエディタを、その単語に特定。 元位置=(その、選択位置)+(その、選択文字数)//選択文字数はバイト数が返る 検索文字列を、文字列として扱う。 もし、選択範囲チェックなら、( もし、検索文字列=「」なら、( アクティブエディタを、その単語に特定。 検索文字列は、その、選択文字列 それ=「{その、選択位置}\n{バイト数((その、テキスト))-元位置}」 選択範囲チェックの、ポケットは、それ 元位置=それ#0 ) 違えば、( それ=選択範囲チェックの、ポケット アクティブエディタを、その単語に特定。 (その、テキスト)、0、(バイト数((その、テキスト))-(それ#1))、MIDB。 それで、1個目の、MIDB(それ,0,元位置)を、「」に、単置換。 検索文字列=それ ) ) 違えば、( アクティブエディタを、その単語に特定。 (その、テキスト)、0、元位置、MIDB。 (その、テキスト)で、1個目の、それを、「」に、単置換。 検索文字列=それ ) 検索語は、変換前コンボの、テキスト。 もし、大文字チェック=0なら、(検索文字列は、大文字変換(検索文字列)。検索語は、大文字変換(検索語)。) もし、置換メタ文字チェックなら、「検索語は、\"{検索語}\"」を、ひまわりする。 アクティブエディタを、その単語に特定。 検索文字列の中で、検索語が、何文字目。 もし、それ>0なら、( アクティブエディタに、注目。 その、選択位置は、それ+元位置-1。 その、選択文字数は、バイト数(検索語) 置換フォームに、注目。 ) 違えば、( もし、(全タブチェック=1)かつ(エディタタブページの、値<>置換フォームの、ポケット)なら、( 検索文字列=「」 検索語=「」 それ=エディタタブページの、テキスト エディタタブページの、値は、(((エディタタブページの、値)+1)%行数(それ)) 描画処理反映。 次を検索ボタンイベント。 ) 違えば、( 検索語=「」 ステータスラベルは、「検索完了」 変換前コンボの、変更した時。 ) ) それ=変換前コンボの、アイテム もし、(「{変換前コンボの、テキスト}」<>「{それ#0}」)なら、( 「{変換前コンボの、テキスト}\n」を、「」に、置換。 変換前コンボの、アイテム=「{変換前コンボの、テキスト}\n{それ}」 ) それ=変換後コンボの、アイテム もし、(「{変換後コンボの、テキスト}」<>「{それ#0}」)なら、( 「{変換後コンボの、テキスト}\n」を、「」に、置換。 変換後コンボの、アイテム=「{変換後コンボの、テキスト}\n{それ}」 ) 戻る。 *置換ボタンイベント もし、動作確認チェックなら、( c=0 「置換しますか?」と、三択。 もし、それ<>1なら、(c=それ。戻る。) ) もし、置換メタ文字チェックなら、「それは、\"{変換後コンボの、テキスト}\"」を、ひまわりする。 違えば、それ=変換後コンボの、テキスト 「{アクティブエディタ}の、選択文字列は、変換後コンボの、テキスト」を、ひまわりする。 もし、ステータスラベル=「検索完了」なら、ステータスラベル=「置換完了」。 違えば、次を検索ボタンイベント 戻る。 *全て置換ボタンイベント もし、選択範囲チェックでなければ、先頭からチェック=1。 連続置換ボタンイベント。 戻る。 *連続置換ボタンイベント ステータスラベルは、「」 (ステータスラベル<>『 』)で、ループ( もし、ステータスラベル=「置換完了」なら、( ステータスラベル=「置換完了 : {回数-1}件」。 抜ける。 ) 置換ボタンイベント もし、c=2なら、( ステータスラベル=「置換中断」。 抜ける。 ) ) 戻る。 *置換キャンセルイベント 置換フォームの、可視は、オフ。 その、ポケットは、「」 // 母艦の、有効は、1。 検索語=「」 戻る。 *正規置換イベント コマンドは、正規コンボの、テキスト。 アクティブエディタを、その単語に特定。 もし、(正規チェック=1)なら、それ=その、選択文字列。 違えば、それ=その、テキスト。 コマンドで、正規表現置換。 もし、(正規チェック<>1)なら、( その、選択位置=0。 その、選択文字数=バイト数((その、テキスト))。 ) その、選択文字列=それ。 (正規コンボの、アイテム)の、「{正規コンボの、テキスト}\n」を、「」に、置換。 「s///kmg\ns/^//kmg\ns/\\r\\n//kmg\n」を、「s///kmg\ns/^//kmg\ns/\\r\\n//kmg\n{正規コンボの、テキスト}」に、置換。 正規コンボの、アイテムは、それ。 *正規キャンセルイベント 正規表現置換フォームの、可視は、オフ。 母艦の、有効は、1 戻る。 *指定移動イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 「行数の入力」と、尋ねる。 もし、それ=ダイアログキャンセルの値なら、戻る。 もし、それ<1なら、( ステータスラベルは、「行数指定エラー : 1以上の数値を入力してください。」 戻る。 ) アクティブエディタを、その単語に特定。 その、行は、それ-1 (その、名前)に、注目 戻る。 *設定インポートイベント ランタイムのパス&「HIMAPAD.ini」が、存在。 もし、それ=0なら、戻る。 ランタイムのパス&「HIMAPAD.ini」を、開く。 それ=「{それ}\n\n」 「[TEditor]\n」から、「\n\n」までの、範囲を切り取る。 「TEditor」を、「エディタ」に、置換。 「a_」を、「hima_」に、置換。 aは、それ。 もし、それ=「」なら、戻る。 iniファイルを、開く。 bは、それ。 「[エディタ]\n」から、「\n\n」までの、範囲を切り取る。 bの、それを、aに、置換。 iniファイルに、保存。 各エディタの設定読み込み 戻る。 *各エディタの設定読み込み ファイル名配列を、「s#,.*##kmg」で、正規表現置換。 反復( 「iniファイルを、開く。 『s#^\\[エディタ.*\\]#\\[エディタ{それ}\\]#kmg』で、正規表現置換。 iniファイルに、保存。 エディタ{それ}を、iniファイルから、Tエディタ設定を読込。」を、ひまわりする。 ) iniファイルを、開く。 『s#^\[エディタ\d*\]#\[エディタ\]#kmg』で、正規表現置換。 iniファイルに、保存。 戻る。 *サブルーチン列挙 もし、(エディタタブページの、テキスト=「」)または(戻るフラグ=1)なら、戻る。 あいてむ=「」 アクティブエディタを、その単語に特定。 それ=その、テキスト 「s#^[^**].*##kmg」で、正規表現置換。 『s#^[**][//].*##kmg』で、正規表現置換。//"/**/"のコメント閉じは除く 「s#^[**]##kmg」で、正規表現置換。 //空白のあとのラベルもマッチさせたい場合は //「s#^\s*[^**].*##kmg」で、正規表現置換。 描画処理反映 反復( もし、それ=「」なら、続ける。 サブルーチン名は、それ。 回数を、4桁で、右寄せ。 あいてむは、あいてむ&「{それ} *{サブルーチン名}\n」 ) 検索リストの、アイテムは、あいてむ。 アクティブエディタを、その単語に特定。 それ=その、テキスト 元行は、行数(それ) 戻るフラグ=1 タブページの、値は、2 戻るフラグ=0 戻る。 *検索ボタンイベント もし、(検索コンボの、テキスト=「」)なら、戻る。 もし、(エディタタブページの、テキスト=「」)なら、戻る。 ステータスラベルは、「検索中」 もし、メタ文字チェック=0なら、( //メタ文字をクォート それ=検索コンボの、テキスト 『s#([\-.^$[\]\\*+?|()])#\\$1#kg』で、正規表現置換。 もし、行頭チェック=1なら、それ=「^{それ}」 検索式は、「m{文字(1)}{それ}{文字(1)}k」。 ) 違えば、検索式は、「m{文字(1)}{検索コンボの、テキスト}{文字(1)}k」。 あいてむ=「」 アクティブエディタを、その単語に特定。 それ=その、テキスト 反復( a=それ 検索式で、正規表現マッチ。 もし、それ=「」なら、続ける。 回数を、4桁で、右寄せ。 あいてむは、あいてむ&「{それ} : {a}\n」 ) 検索コンボの、アイテムは、「{検索コンボの、テキスト}\n{検索コンボの、アイテム}」 検索リストの、アイテムは、あいてむ。 タブページの、値は、2 ステータスラベルは、「検索完了 : {行数(あいてむ)}件」 戻る。 *検索リストイベント もし、(検索リストの、値<0)なら、戻る。 もし、(エディタタブページの、テキスト=「」)なら、戻る。 ステータスラベルは、検索リストの、テキスト。 (検索リストの、テキスト)を、「 : 」で、区切る。 トリム。 アクティブエディタを、その単語に特定。 「{その、名前}に、注目。」を、ひまわりする。 その、行は、(それ#0)-1 戻る。 //部品サブルーチン *補完 種別=引数取得 もし、(エディタタブページの、テキスト=「」)なら、戻る。 エディタクリック。 アクティブエディタを、その単語に特定。 a=その、選択文字列 もし、a=「」なら、戻る。 c=命令一覧 cを、『s#,.*##kmg』で、正規表現置換。 b=それ aの、出現回数。 もし、それ=0なら、( aから、送り仮名削除。 a=それ bで、aの、出現回数。 もし、それ=0なら、戻る。 ) もし、それ>1なら、( cの、0列目から、aを、表ピックアップ。 補完グリッドの、アイテムは、「命令,引数,説明\n{それ}」 その、値は、1 補完フォームの、位置は、(マウスX+(母艦の、X),マウスY+50+(母艦の、Y)) その、可視は、オン。 戻る。 ) bの、0列目から、「*{a}*」を、表曖昧検索 *補完イベント //補完処理 ステータスラベルは、「{c#3#それ} | {c#0#それ} | {c#1#それ} | {c#2#それ} | {c#4#それ}」 アクティブエディタを、その単語に特定。 もし、種別=「単語」なら、( その、選択文字列は、「{b#それ}。」 アクティブエディタを、その単語に特定。 その、選択位置は、(その、選択位置)+(バイト数((その、選択文字列)))-2 (その、名前)に、注目。 ) 違えば、命令イベント。 戻る。 *命令決定イベント 補完フォームの、可視は、オフ。 それ=補完グリッドの、アイテム a=それ#0#(補完グリッドの、値) もし、(エディタタブページの、テキスト=「」)なら、戻る。 bの、0列目から、aを、表検索 補完イベントに、飛ぶ *エディタイベント もし、戻るフラグ=1なら、戻る。 a=エディタタブページの、値 ファイル名配列#2#a=「1」//編集フラグ=オン b=エディタタブページの、テキスト (b#a)、1、RIGHT。 もし、それ<>「*」なら、( b#a=(b#a)&「*」 エディタタブページの、テキストは、b ) アクティブエディタを、その単語に特定。 それ=その、テキスト もし、(ラベルを見張るメニューの、値=1)かつ(タブページの、値=2)かつ(元行<>行数(それ))なら、( //「元行」は「サブルーチン列挙」内で設定。 サブルーチン列挙 ) 戻る。 *ファイルドロップイベント それ=イベントの値 タブ開く。 戻る。 *エディタドロップ アクティブエディタを、その単語に特定。 iniファイルの、INIファイル開く。 「基本」の、「ファイルドロップ」を、INIファイル読む。 INIファイル閉じる。 もし、それ=1なら、( イベントの値を、開く。 その、選択文字列は、それ。 ) 違えば、その、選択文字列は、イベントの値。 戻る。 *エディタクリック もし、(補完フォームの、可視=1)なら、( 補完フォームの、可視は、オフ。 戻る。 ) //ダブルクリックで選択位置付近の区切り文字と区切り文字の間を選択。 ステータスラベルは、「」 アクティブエディタを、その単語に特定。 b=その、選択位置//改行は2バイト。 MIDB((その、テキスト),0,b)。 b=それ 『s#.*\r?\n##kg』で、正規表現置換。 a=それ (その、テキスト)で、1個目の、bを、「」に、単置換。 1個目の、「\n」を、「\n\n」に、単置換。 1番目の、段落を切り出す。 「\n」を、「」に、置換。 「s#^([^{区切り文字}]*)[{区切り文字}].*#$1#kg」で、正規表現置換。 b=バイト数(それ) aを、『s#^.*[』&区切り文字&『]##kmg』で、正規表現置換。 aは、バイト数(それ)。 その、選択位置は、(その、選択位置)-a その、選択文字数は、a+b 命令一覧の、0列目から、(その、選択文字列)を、表検索。 もし、それ<0なら、( (その、選択文字列)から、送り仮名削除。 命令一覧の、0列目から、それを、表検索。 ) もし、それ<0なら、戻る。 ステータスラベルは、「{命令一覧#3#それ} | {命令一覧#0#それ} | {命令一覧#1#それ} | {命令一覧#2#それ} | {命令一覧#4#それ}」 戻る。 *ステータスラベルクリック ここから aを、ローカル変数 ステータスラベルの、「 | 」を、「\n」に、置換。 a=それ 行数。 もし、それ<2なら、戻る。 (a#0)が、数列。 もし、それ=0なら、戻る。 aの中で、「 || 」が、何文字目。 もし、それ>0なら、( //部品 もし、行数(a)=2なら、( //部品名 ランタイムのパス&「doc/command/gui/g{a#0}.htm」が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&「doc/command/gui/g{a#0}.htm」 ) 違えば、( ランタイムのパス&「doc/command/gui/p{a#0}.htm」が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&「doc/command/gui/p{a#0}.htm」 ) ) 違えば、( //命令関連 ランタイムのパス&「doc/command/descript/{a#0}.htm」が、存在。 もし、それなら、ブラウザの、URLは、ランタイムのパス&「doc/command/descript/{a#0}.htm」 違えば、ブラウザの、URLは、「http://hima.chu.jp/doc/command/descript/{a#0}.htm」 ) ここまで 戻る。 *部品表示 もし、(エディタタブページの、テキスト=「」)なら、戻る。 アクティブエディタを、その単語に特定。 部品アイテムの中で、「\\」が、何文字目 もし、それ=0なら、( もし、部品アイテム=『母艦』なら、戻る。 その、選択文字列は、「を、{部品アイテム}として、作成。\n」 アクティブエディタを、その単語に特定。 その、選択位置は、(その、選択位置)-バイト数(「を、{部品アイテム}として、作成。\n」) ) 違えば、( その、選択文字列は、「その、{部品ツリーの、選択文字列}は、」 アクティブエディタを、その単語に特定。 ) (その、名前)に、注目。 戻る。 *部品ステータス表示 部品アイテムは、イベントの値 ここから aを、ローカル変数。 イベントの値の中で、『\』が、何文字目。 もし、それ=0なら、( 部品ファイルを、開く。 「s#^*({部品ツリーの、選択文字列},.*\\r?\\n)#\\r\\n$1\\n#kmg」で、正規表現置換。 「☆\n{それ}」から、2番目の、段落を切り出す。 もし、それ=「」なら、(ステータスラベルは、部品ツリーの、選択文字列) 違えば、ステータスラベルは、「{それ#1#0} | {それ#0#0} || {それ#2#0}」 ) 違えば、( 部品ファイルを、開く。 「s#^({部品ツリーの、選択文字列},.*\\r?\\n)#\\r\\n$1\\n#kmg」で、正規表現置換。 2番目の、段落を切り出す。 もし、それ=「」なら、( 部品ファイルを、開く。 「s#^*({部品ツリーの、選択文字列},.*\\r?\\n)#\\r\\n$1\\n#kmg」で、正規表現置換。 「☆\n{それ}」から、2番目の、段落を切り出す。 もし、それ=「」なら、(ステータスラベルは、部品ツリーの、選択文字列) 違えば、a=「{それ#1#0} | {それ#0#0} || {それ#2#0}」 ) 違えば、a=「{それ#0#0} || {それ#2#0},{それ#3#0} | {それ#1#0}」 プロパティテキストの、0列目から、(部品ツリーの、選択文字列)を、表検索 もし、それ>-1なら、ステータスラベルは、「{それ} | {a}」 違えば、ステータスラベルは、a ) ここまで 戻る。 *命令表示 e=e+1 a=(命令リストの、テキスト) それ=「☆\n{命令一覧}」。 もし、(命令リストの、テキスト<>「?」)なら、(「s#^({a},.*\\r?\\n)#\\r\\n$1#kmg」で、正規表現置換。) 違えば、(「s#^(\\{a},.*\\r?\\n)#\\r\\n$1#kmg」で、正規表現置換。) 2番目の、段落を切り出す。。 ステータスラベルは、「{それ#3#0} | {それ#0#0} | {それ#1#0} | {それ#2#0} | {それ#4#0}」 戻る。 *命令目次イベント イベントの値の中で、『\』が、何文字目。 もし、それ<1なら、戻る。 イベントの値を、『\』で、区切る。 大分類=それ#0 小分類=それ#1 命令ファイルを、開く。 「{大分類}\n」から、「+」までの、範囲を切り取る。 「s#^-#\n\n-#kmg」で、正規表現置換。 「-{小分類}\n」から、「\n\n」までの、範囲を切り取る。 『s#,.*##kmg』で、正規表現置換。 「s#^[^|].*##kmg」で、正規表現置換。 「s#^\\|##kmg」で、正規表現置換。 トリム。 命令リストの、アイテムは、それ。 戻る。 *命令イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 iniファイルの、INIファイル開く。 「基本」の、「挿入区切り」を、INIファイル読む。 INIファイル閉じる。 もし、それ=「」なら、挿入区切りは、「、」 違えば、挿入区切りは、それ アクティブエディタを、その単語に特定。 ステータスラベルの、『 | 』を、「\n」に、置換。 「s#[|?]##kmg」で、正規表現置換。 「s#^ ##kmg」で、正規表現置換。 「,」を、挿入区切りに、置換。 もし、それ#2=「」なら、( アクティブエディタを、その単語に特定。 その、選択文字列は、「{それ#1}。」。 ) 違えば、( アクティブエディタを、その単語に特定。 c=「{それ#2}、{それ#1}。」 その、選択文字列は、c cの、バイト数 その、選択位置は、(その、選択位置)-それ ) (その、名前)に、注目。 戻る。 *バージョンチェック もし、(ひまわりバージョン-1.82<=0)なら、( ひまわりバージョンを、『s#[\d\.]##g』で、正規表現置換。 ASC。 もし、それ<102{f}なら、( 「このプログラムを利用するには最新のランタイムが必要です。\n」& 「バージョンアップしますか?」と、二択。 もし、それ=1なら、「http://hima.chu.jp/download/download.htm」を、起動。 おわり。 ) ) 戻る。 *DDE受信処理 /* // DDE command index new 新しいタブを開きます open ファイル名 ファイル名に指定したファイルを開きます。 save 現在編集中のファイルを保存します。 saveas ファイル名 ファイル名に指定したファイルへ編集中のプログラムを保存します。 insert 文字列 文字列を、現在のカーソル位置に挿入します。 getlabel ファイル名 プログラム中のラベルを列挙し、ファイル名へ保存します。 row 行番号 カーソルを行番号に移動します。 col 列番号 カーソルを列番号に移動します。 copy 現在選択中のテキストをクリップボードへコピーします。 paste クリップボードの内容を、エディタへ貼り付けます。 seltext_save ファイル名 選択中のテキストを、指定ファイルへ保存します。 seltext_open ファイル名 選択中のテキストを、指定ファイルの内容に書き換えます。 makeexe 配布用実行ファイルの作成ダイアログを表示します。 (編集中プログラムを実行ファイルに変換します。) takein ファイル名 ファイル名を取り込みます。 hima 文字列またはファイル名 文字列またはファイルの内容をひまわりします。 getfile ファイル名 ファイル名に編集中のファイル名を保存します。指定しなかった場合はコピーします。 //--DDE command index */ ここから 「引数\ncommand\n元文字列」を、ローカル変数。 元文字列=DDE文字列 DDE文字列で、1個目の、「 」を、「\n」に、単置換。 command=それ#0 引数=それ#1 commandで、条件分岐。 『new』の時、新規イベント。 「open」の時、(それ=引数。タブ開く。) 「save」の時、保存イベント。 「saveas」の時、( 引数から、パスを切り出す。 存在。 もし、それ=1なら、( アクティブエディタを、その単語に特定。 (その、テキスト)を、引数へ、保存。 ) ) 「insert」の時、( アクティブエディタを、その単語に特定。 その、選択文字列は、引数。 ) 「getlabel」の時、( 引数から、パスを切り出す。 存在。 もし、それ=1なら、( アクティブエディタを、その単語に特定。 それ=その、テキスト。 『s#^[^**].*##kmg』で、正規表現置換。 『s#^[\**][//].*##kmg』で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 引数に、保存。 ) ) 「row」の時、( アクティブエディタを、その単語に特定。 その、行は、引数+0。 ) 「col」の時、( アクティブエディタを、その単語に特定。 その、列は、引数+0。 ) 「copy」の時、( アクティブエディタを、その単語に特定。 (その、選択文字列)を、コピー。 ) 「paste」の時、( アクティブエディタを、その単語に特定。 その、選択文字列は、クリップボード取得。 ) 「seltext_save」の時、( 引数から、パスを切り出す。 存在。 もし、それ=1なら、( アクティブエディタを、その単語に特定。 (その、選択文字列)を、引数へ、保存。 ) ) 「seltext_open」の時、( 存在(引数)。 もし、それ=1なら、( アクティブエディタを、その単語に特定。 引数を、開く。 その、選択文字列は、それ。 ) ) 「makeexe」の時、実行ファイル作成イベント。 「takein」の時、( 引数が、存在。 もし、それ=1なら、( 取り込みリストの中で、引数が、何文字目。 もし、それ<1なら、( 引数を、取り込む。 取り込みリスト=「{取り込みリスト}{引数}\n」 ) ) ) ここまで 戻る。 *テンプレート挿入イベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 テンプレートファイルを、開く。 a=それ 0列目から、(テンプレートツリーの、ポケット)を、表検索。 a=(a#1#それ) 存在(a)。 もし、それ=0なら、戻る。 aを、開く。 a=それ アクティブエディタを、その単語に特定。 その、選択文字列は、a。 戻る。 *テンプレート取り込むイベント もし、(エディタタブページの、テキスト=「」)なら、戻る。 テンプレートファイルを、開く。 a=それ 0列目から、(テンプレートツリーの、ポケット)を、表検索。 a=(a#1#それ) 存在(a)。 もし、それ=0なら、戻る。 アクティブエディタを、その単語に特定。 その、選択文字列は、「『{a}』を、取り込む。」。 戻る。 *テンプレート編集イベント ここから aを、ローカル変数。 テンプレートファイルを、開く。 a=それ 0列目から、(テンプレートツリーの、ポケット)を、表検索。 a=(a#1#それ) 存在(a)。 もし、それ=0なら、戻る。 それ=a ここまで タブ開く。 戻る。 *テンプレートファイル選択イベント 「テキストファイル(*.txt)|*.txt|ひまわりライブラリ(*.xhmw)|*.xhmw|ひまわりスクリプト(*.hmw)|*.hmw|全てのファイル(*.*)|*.*」の、 tm_ファイル選択イベント 戻る。 *マクロ編集イベント ここから aを、ローカル変数。 マクロファイルを、開く。 a=それ 0列目から、(マクロツリーの、ポケット)を、表検索。 a=(a#1#それ) 存在(a)。 もし、それ=0なら、( a=「{ランタイムのパス}tools\\{a}」 存在(a)。 もし、それ=0なら、戻る。 ) それ=a ここまで タブ開く。 戻る。 *マクロ起動 ここから aを、ローカル変数。 マクロファイルを、開く。 a=それ 0列目から、(マクロツリーの、ポケット)を、表検索。 a=(a#1#それ) 作業フォルダ=「{ランタイムのパス}tools\\」 存在(a)。 もし、それ=1なら、(aを、起動。) 作業フォルダ=母艦のパス ここまで 戻る。 *マクロインポートイベント ランタイムのパス&『tools\tool.txt』が、存在 もし、それ=0なら、戻る。 あいてむ=「」 ランタイムのパス&「tools\\tool.txt」を、開く。 「\n」を、「」に、置換 「-」を、「\n」に、置換 トリム 反復( 1個目の、「|」を、「\n|」に、単置換。 (それ#1)の、「|」を、「\n{それ#0}\\」に、置換。 あいてむに、それを、足す。 ) マクロファイルに、保存 戻る。 *マクロファイル選択イベント 「ひまわりスクリプト(*.hmw)|*.hmw|実行ファイル(*.exe)|*.exe|テキストファイル(*.txt)|*.txt|全てのファイル(*.*)|*.*」の、 tm_ファイル選択イベント 戻る *tm_プロパティイベント(?の) tmに、引数取得。 「b={tm}ツリーの、ポケット」を、ひまわりする。 もし、b=「」なら、( ステータスラベルは、「アイテムが選択されていません。」 戻る。 ) bの中で、『\』が、何文字目。 もし、それ=0なら、( 「JPエディタ={tm}ツリーの、選択文字列」を、ひまわりする。 「それ={tm}ツリーの、アイテム」を、ひまわりする。 「s#^{JPエディタ}\\\\#\\\\#kmg」で、正規表現置換。 『s#^[^\\].*##kmg』で、正規表現置換。 『s#^\\##kmg』で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 JPアイテムラベルは、それ。 JPフォームの、ポケットは、tm その、可視は、1 母艦の、有効は、0 戻る。//ジャンルなら表示しない。 ) 「それ={tm}ツリーの、アイテム」を、ひまわりする。 『s#\\.*##kmg』で、正規表現置換。 0列目をキーに、表重複項目削除。 トリム。 ジャンルコンボの、アイテムは、それ。 //各ステータス。 bの、『\』を、「\n」に、置換。 (ジャンルコンボの、アイテム)の、0列目から、(それ#0)を、表検索。 ジャンルコンボの、値は、それ。 「アイテム名エディタは、{tm}ツリーの、選択文字列。」を、ひまわりする。 a=置換(b,『\』,『\\』) 「{tm}ファイルを、開く。」を、ひまわりする。 「s#^({a},)#\n\n$1#kmg」で、正規表現置換。 2番目の、段落を切り出す。 p_ファイル名エディタは、それ#1#0 p_説明エディタは、それ#2#0 a=「」 ジャンルコンボの、イベントは、p_編集フラグ=1 その、変更した時は、p_編集フラグ=1 アイテム名エディタの、変更した時は、p_編集フラグ=1 p_ファイル名エディタの、変更した時は、p_編集フラグ=1 p_説明エディタの、変更した時は、p_編集フラグ=1 p_編集フラグ=0 「p_ファイル選択ボタンの、イベントは、{tm}ファイル選択イベント。」を、ひまわりする。 p_OKボタンの、イベントは、tmの、tm_OKイベント。 プロパティフォームの、可視は、オン。 母艦の、有効は、オフ。 戻る。 *tm_ドロップイベント(?の) tmに、引数取得。 aを、ローカル変数。 イベントの値の、長いファイル名取得。 a=それ tmの、tm_追加イベント p_ファイル名エディタは、a aから、ファイル名を切り出す。 「.」を、「\n」に、置換。 アイテム名エディタは、それ#0 戻る。 *tm_追加イベント(?の) tmに、引数取得。 「それ={tm}ツリーの、アイテム」を、ひまわりする。 『s#\\.*##kmg』で、正規表現置換。 0列目をキーに、表重複項目削除。 トリム。 ジャンルコンボの、アイテムは、それ。 アイテム名エディタは、「」 p_ファイル名エディタは、「」 p_説明エディタは、「」 「p_ファイル選択ボタンの、イベントは、{tm}ファイル選択イベント。」を、ひまわりする。 p_OKボタンの、イベントは、「{tm}」の、tm_追加_OKイベント。 プロパティフォームの、可視は、オン。 母艦の、有効は、オフ。 戻る。 *tm_削除イベント(?の) tmに、引数取得。 「それ={tm}ツリーの、ポケット」を、ひまわりする。 『\』を、『\\』に、置換。 a=それ 『\』が、何文字目。 もし、それ=0なら、( ステータスラベルは、「ジャンルは削除できません。」 戻る。 ) 「{tm}ファイルを、開く。」を、ひまわりする。 「s#^{a},.*##kmg」で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 「{tm}ファイルに、保存。」を、ひまわりする。 0列目を、表列コピー。 「{tm}ツリーの、アイテムは、それ。」を、ひまわりする。 その、ポケットは、『』 もし、それ<>「」なら、「{tm}ツリーの、『』を、ツリー展開。」を、ひまわりする。 戻る。 *tm_追加_OKイベント(?の) tmに、引数取得。 「それ={tm}ツリーの、アイテム」を、ひまわりする。 「{ジャンルコンボの、テキスト}\\{アイテム名エディタ}」が、何文字目。 もし、それ>0なら、tmの、tm_OKイベント プロパティチェック もし、c=0なら、( //保存処理 それ=「{ジャンルコンボの、テキスト}\\{アイテム名エディタ},」& 「{p_ファイル名エディタ},{p_説明エディタ}」 『s#,$##kmg』で、正規表現置換。 a=それ 「{tm}ファイルを、開く。」を、ひまわりする。 c=それ 「s#^({ジャンルコンボの、テキスト}\\\\)#{文字(1)}$1#kmg」で、正規表現置換。 「s#^[^{文字(1)}].*##kmg」で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 「s#^{文字(1)}##kmg」で、正規表現置換。 トリム。 もし、それ=「」なら、( それ=「{トリム(c)}\n{a}」 ) 違えば、( cの、それを、「{それ}\n{a}」に、置換。 ) 「{tm}ファイルに、保存。」を、ひまわりする。 0列目を、表列コピー。 「{tm}ツリーの、アイテムは、それ。 その、ポケットは、『』 {tm}ツリーの、『』を、ツリー展開。」を、ひまわりする。 ) 違えば、BEEP c=0 プロパティフォームの、可視は、オフ。 ジャンルコンボの、テキスト=「」 母艦の、有効は、1 戻る。 *tm_OKイベント(?の) tmに、引数取得。 もし、p_編集フラグ=1なら、( プロパティチェック もし、c=0なら、( //保存処理 それ=「{ジャンルコンボの、テキスト}\\{アイテム名エディタ},」& 「{p_ファイル名エディタ},{p_説明エディタ}」 『s#,$##kmg』で、正規表現置換。 a=それ 「{tm}ファイルを、開く。」を、ひまわりする。 c=それ 「({tm}ツリーの、ポケット)の、『\\』を、『\\\\』に、置換。」を、ひまわりする。 cを、「s#^{それ},.*##kmg」で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 c=それ 「s#^({ジャンルコンボの、テキスト}\\\\)#{文字(1)}$1#kmg」で、正規表現置換。 「s#^[^{文字(1)}].*##kmg」で、正規表現置換。 『s#^\r?\n##kmg』で、正規表現置換。 「s#^{文字(1)}##kmg」で、正規表現置換。 トリム。 もし、それ=「」なら、( トリム(c) それ=「{それ}\n{a}」 ) 違えば、( cの、それを、「{それ}\n{a}」に、置換。 ) 「{tm}ファイルに、保存。」を、ひまわりする。 0列目を、表列コピー。 「{tm}ツリーの、アイテムは、それ。 その、ポケットは、『』 {tm}ツリーの、『』を、ツリー展開。」を、ひまわりする。 ) 違えば、BEEP c=0 ) *p_キャンセルイベント ジャンルコンボの、イベントは、「」 その、変更した時は、「」 アイテム名エディタの、変更した時は、「」 p_ファイル名エディタの、変更した時は、「」 p_説明エディタの、変更した時は、「」 プロパティフォームの、可視は、オフ。 母艦の、有効は、1 ジャンルコンボの、テキスト=「」 戻る *p_ファイル名エディタイベント p_ファイル名エディタを、『s#.*\\(.*)\..*#$1#kg』で、正規表現置換。 アイテム名エディタ=それ 戻る *tm_ファイル選択イベント(?の) 引数取得の、読込ファイル選択。 もし、それ=「」なら、戻る。 p_ファイル名エディタは、それ#0 もし、アイテム名エディタ=「」なら、p_ファイル名エディタイベント 戻る *tm_ステータス表示(?を) ここから 「a\nb」を、ローカル変数。 b=引数取得 「{b}ツリーの、ポケットは、イベントの値。」を、ひまわりする。 「{b}ファイルを、開く。」を、ひまわりする。 a=それ 0列目から、イベントの値を、表検索。 もし、それ<0なら、「ステータスラベルは、{b}ツリーの、選択文字列。」を、ひまわりする。 違えば、( それ=a#それ 『s#\\(.*)#\n$1#kg』で、正規表現置換。 (それ#1)の、「,」を、「 | 」に、置換。 ステータスラベルは、それ。 ) ここまで 戻る *プロパティチェック c=1 //ジャンルコンボは選択されているか。 もし、(ジャンルコンボの、テキスト=「」)なら、戻る //アイテム名エディタは記入されているか。 もし、(アイテム名エディタの、テキスト=「」)なら、戻る 作業フォルダ=ランタイムのパス&「tools\\」 p_ファイル名エディタが、存在するか。 作業フォルダ=母艦のパス もし、それ=0なら、戻る。 //ジャンルコンボ・アイテム名エディタ・p_説明エディタに「,\"」が使われていないか それ=ジャンルコンボの、テキスト 『s#[^,\\"]##kg』で、正規表現置換。 もし、それ<>「」なら、戻る。 それ=アイテム名エディタ 『s#[^,\\"]##kg』で、正規表現置換。 もし、それ<>「」なら、戻る。 それ=p_説明エディタ 『s#[^,\\"]##kg』で、正規表現置換。 もし、それ<>「」なら、戻る。 c=0 戻る。 //ジャンルプロパティ関連 *jp_OKイベント それ=JPエディタ 「s#[^ -/:-@\{-~\\[-`]##kmg」で、正規表現置換。 もし、それ<>「」なら、( ステータスラベルは、「ジャンル名の変更に失敗しました。半角記号は使えません。」 jp_キャンセルイベントに、飛ぶ ) 「{JPフォームの、ポケット}ツリー」を、その単語に特定。 もし、(その、選択文字列<>JPエディタ)なら、( 「{JPフォームの、ポケット}ファイルを、開く。」を、ひまわりする。 「s#^{その、選択文字列}\\\\#{JPエディタ}\\\\#kmg」で、正規表現置換。 「{JPフォームの、ポケット}ファイルに、保存。」を、ひまわりする。 その、選択文字列は、JPエディタ ) *jp_キャンセルイベント JPフォームの、ポケットは、「」 その、可視は、0 母艦の、有効は、1 戻る。 //ブラウザタブ(?)関連 *b表示イベント ファイル名を、『s#.*\.##kmg』で、正規表現置換。 もし、(それ=「htm」)または(それ=「html」)なら、(ブラウザの、URLは、ファイル名。戻る。) 「メモは、{アクティブエディタ}の、テキスト」を、ひまわりする。 メモを、最前面。 メモの、可視は、1 bアドレスコンボは、ファイル名 もし、(ブラウザの、高さ=0)なら、bバー表示ボタンの、イベント。 戻る。 *b実行イベント もし、URLチェックなら、戻る。 「\"{ランタイムのパス}himawari.exe\" \"{母艦のパス}nhp.bak\"」を、起動。 戻る。 *b貼り付けイベント もし、URLチェックなら、戻る。 新規イベント アクティブエディタを、その単語に特定。 「{母艦のパス}nhp.bak」を、開く。 その、テキストは、それ。 戻る。 *bマクロ登録イベント もし、URLチェックなら、戻る。 「ひまわりスクリプト(*.hmw)|*.hmw|テキストファイル(*.txt)|*.txt|ひまわりライブラリ(*.xhmw)|*.xhmw」の、読込ファイル選択。 もし、それ=「」なら、戻る。 aを、ローカル変数。 a=それ 「{母艦のパス}nhp.bak」から、それへ、ファイルコピー。 「マクロ」の、tm_追加イベント p_ファイル名エディタは、a aから、ファイル名を切り出す。 「.」を、「\n」に、置換。 アイテム名エディタは、それ#0 戻る。 *bテンプレート登録イベント もし、URLチェックなら、戻る。 「テキストファイル(*.txt)|*.txt|ひまわりライブラリ(*.xhmw)|*.xhmw|ひまわりスクリプト(*.hmw)|*.hmw」の、読込ファイル選択。 もし、それ=「」なら、戻る。 aを、ローカル変数。 a=それ 「{母艦のパス}nhp.bak」から、それへ、ファイルコピー。 「テンプレート」の、tm_追加イベント p_ファイル名エディタは、a aから、ファイル名を切り出す。 「.」を、「\n」に、置換。 アイテム名エディタは、それ#0 戻る。 *bライブラリ保存イベント もし、URLチェックなら、戻る。 「ひまわりライブラリ(*.xhmw)|*.xhmw|ひまわりスクリプト(*.hmw)|*.hmw|テキストファイル(*.txt)|*.txt」の、読込ファイル選択。 もし、それ=「」なら、戻る。 aを、ローカル変数。 a=それ 「{母艦のパス}nhp.bak」から、それへ、ファイルコピー。 「テンプレート」の、tm_追加イベント p_ファイル名エディタは、a aから、ファイル名を切り出す。 「.」を、「\n」に、置換。 アイテム名エディタは、それ#0 戻る。 *URLチェック (ブラウザの、URL)の、「file:///」を、「」に、置換 存在。 もし、それ=1なら、( ここから aを、ローカル変数。 (ブラウザの、URL)の、「file:///」を、「」に、置換 a=それ 『s#.*\.##kg』で、正規表現置換。 もし、それ=「hmw」またはそれ=「xhmw」なら、( aを、開く。 「{母艦のパス}nhp.bak」に、保存。 それ=0 ) 違えば、( もし、それ=「htm」またはそれ=「html」なら、( aを、開く。 「code」の、タグ切り出し。 もし、それ=「」なら、それ=1 違えば、( 『s#()#\r\n$1#kmgi』で、正規表現置換。 タグ削除。 「<」を、「<」に、置換 「>」を、「>」に、置換 「"」を、「\"」に、置換 「 」を、「 」に、置換 「&」を、「&」に、置換 『s#^[  \t]*##kmg』で、正規表現置換。 トリム 「{母艦のパス}nhp.bak」に、保存。 それ=0 ) ) 違えば、それ=1 ) ここまで ) 違えば、( もし、(ブラウザの、URL=「」)なら、それ=1。 違えば、( 進行度表示ダイアログ=0。 ステータスラベルは、「ダウンロード中...」 描画処理反映。 (ブラウザの、URL)を、「{母艦のパス}nhp.bak」へ、HTTPダウンロード。 描画処理反映。 ステータスラベルは、「」 実行ファイルに、「{母艦のパス}nhp.bak\n」を、足す。 (ブラウザの、URL)から、3文字、右端を切り取る。 もし、それ=「txt」なら、それ=0 違えば、( 「{母艦のパス}nhp.bak」を、開く。 「code」の、タグ切り出し。 もし、それ=「」なら、それ=1 違えば、( 『s#()#\r\n$1#kmgi』で、正規表現置換。 タグ削除。 「<」を、「<」に、置換 「>」を、「>」に、置換 「"」を、「\"」に、置換 「 」を、「 」に、置換 「&」を、「&」に、置換 『s#^[  \t]*##kmg』で、正規表現置換。 トリム 「{母艦のパス}nhp.bak」に、保存。 それ=0 ) ) ) ) もし、それなら、ステータスラベルは、「プログラムの取り出しに失敗しました。」 違えば、ステータスラベルは、「」 戻る。 *bURL生成イベント ランタイムのパスの、長いファイル名取得。//「ランタイムのパス」は全て大文字で表現されるため。 『\』を、「/」に、置換。 (ブラウザの、URL)の中で、それが、何文字目。 もし、それ=0なら、( ステータスラベルは、「URLの生成に失敗しました。」 戻る。 ) ランタイムのパスの、長いファイル名取得。//「ランタイムのパス」は全て大文字で表現されるため。 『\』を、「/」に、置換。 (ブラウザの、URL)の、「file:///{それ}」を、「http://hima.chu.jp/」に、置換 コピー。 ステータスラベルは、「\"{それ}\"をコピーしました。」 戻る。 *b検索イベント //検索語チェック もし、(b検索コンボの、テキスト=「」)なら、戻る。 //検索サイトチェック もし、(b検索サイトコンボの、テキスト=「――――――――――」)なら、戻る。 (b検索サイトコンボの、テキスト)から、4文字、左端を切り取る。 条件分岐。 「MSDN」の時、((b検索コンボの、テキスト)を、SJISからUTF8に変換。) 「goo 」の時、((b検索コンボの、テキスト)の、文字コードをEUCに変換。) その他の時、(それ=b検索コンボの、テキスト) バイナリダンプ。 「,」を、「%」に、置換。 「\n」を、「%」に、置換。 1文字、右端削除。 検索語=「%{それ}」 「ブラウザの、URLは、\「{検索サイト#1#(b検索サイトコンボの、値)}\」」を、ひまわりする。 b検索コンボの、アイテムは、「{b検索コンボの、テキスト}\n{b検索コンボの、アイテム}」 戻る。 'フラットボタン作成 *フラット準備(?に) 引数取得。 フラットパネルを、作る。 その、可視は、オフ。 その、マウス押した時は、フラット押す その、マウス離した時は、フラット離す その、ポケットは、それ。 「{それ}」に、フラットパネルを、乗せる。 戻る。 *フラットボタン作成(?に、?を、?で) //座標に、部品名を、テキストで、フラットボタン作成 2番目の、引数得る。 フラットリスト=「{フラットリスト}{それ}ラベル\n」 「{それ}ラベルを、作る。」を、ひまわりする。 その、マウス動かした時は、(フラットオフ。フラットオン。) その、マウス押した時は、フラット押す その、マウス離した時は、フラット離す 3番目の、引数得る。 もし、それ<>「」なら、その、テキストは、それ。 1番目の、引数得る。 もし、それ<>「」なら、その、位置は、それ その右側=「({(その、X)+(その、幅)+12},{その、Y})」 戻る。 *フラットオン フラットパネルの、スタイルは、2 その、幅は、(イベントオブジェクトの、幅)+12 フラットパネルの、高さは、(イベントオブジェクトの、高さ)+8 フラットパネルの、Xは、(イベントオブジェクトの、X)-5 フラットパネルの、Yは、(イベントオブジェクトの、Y)-4 「フラットパネルの、イベントは、{イベントオブジェクトの、名前}の、イベント。」を、ひまわりする。 イベントオブジェクトの、位置は、(5,4) その、マウス動かした時は、「」 イベントオブジェクトを、フラットパネルに、乗せる。 フラットパネルの、可視は、1 戻る。 *フラットオフ もし、(フラットパネルの、アイテム=「」)なら、戻る。 フラットパネルの、可視は、0 (フラットパネルの、アイテム)を、トリム。 「{それ}の、位置=({フラットパネルの、X}+5,{フラットパネルの、Y}+4) その、マウス動かした時は、(フラットオフ。フラットオン。) {それ}を、{フラットパネルの、ポケット}に、乗せる。」を、ひまわりする。 戻る。 *フラット押す フラットパネルの、スタイルは、1 戻る。 *フラット離す フラットパネルの、スタイルは、2 戻る。 *security設定チェック 「{母艦のパス}security2.exe」が、存在 もし、それなら、「{母艦のパス}security2.exe」を、起動。 違えば、( 「{母艦のパス}security+.exe」が、存在 もし、それなら、(「{母艦のパス}security+.exe」を、起動。戻る。) ) *securityメニュー作成 設定メニューに、セキュリティー区切りメニューを、メニュー追加。 その、テキストは、「-」。 設定メニューに、セキュリティーメニューを、メニュー追加。 その、テキストは、「セキュリティーレベル(&X)」。 セキュリティーメニューに、セキュリティ高メニューを、メニュー追加。 その、テキストは、「高い(危険な動作をスキップ)(&W)」。 その、イベントは、( セキュリティーレベル=2。 セキュリティ共通処理。 ) セキュリティーメニューに、セキュリティ中メニューを、メニュー追加。 その、テキストは、「普通(危険な動作を警告)(&X)」。 その、イベントは、( セキュリティーレベル=1。 セキュリティ共通処理。 ) セキュリティーメニューに、セキュリティ低メニューを、メニュー追加。 その、テキストは、「低い(危険な動作を警告なしに実行)(&Y)」。 その、イベントは、( セキュリティーレベル=0。 セキュリティ共通処理。 ) iniファイルの、INIファイル開く。 「セキュリティ」の、「レベル」を、INIファイル読む。 INIファイル閉じる。 セキュリティーレベル=それ 条件分岐。 0の時、(セキュリティ低メニューの、値は、1。) 2の時、(セキュリティ高メニューの、値は、1。) その他の時、(セキュリティ中メニューの、値は、1。セキュリティーレベル=1) 戻る。 *セキュリティ共通処理 もし、(セキュリティーレベル設定<>1)かつ(セキュリティーレベル<>1)なら、( 「{母艦のパス}security2.exe」が、存在 もし、それなら、「{母艦のパス}security2.exe」を、起動。 違えば、( 「セキュリティーレベル設定に必要なファイル\n」& 「{母艦のパス}security2.exeが見つかりません。\n\n」& 「ファイルをダウンロードしますか?\nファイルサイズ 約29KB」と、二択。 もし、それなら、( 進行度表示ダイアログ=0 「http://www.isonly.net/~yuk_yt/prog/hpysec.lzh」を、「{母艦のパス}security.lzh」へ、HTTPダウンロード。 母艦のパスから、1文字、右端削除。 「{母艦のパス}security.lzh」を、それへ、解凍。 描画処理反映。 「{母艦のパス}security.lzh」を、ファイル完全削除。 「{母艦のパス}security2.exe」を、起動。 ) 違えば、(ステータスラベルは、『セキュリティーの設定に失敗しました。』。戻る。) ) ) セキュリティ低メニューの、値は、0 セキュリティ中メニューの、値は、0 セキュリティ高メニューの、値は、0 イベントオブジェクトの、値は、1 iniファイルの、INIファイル開く。 セキュリティーレベルを、「セキュリティ」の、「レベル」へ、INIファイル書く。 INIファイル閉じる。 戻る。 //関数郡 *ファイル名 それ=「{ファイル名配列#1#(エディタタブページの、値)}」 戻る。 *アクティブエディタ それ=「エディタ{ファイル名配列#0#(エディタタブページの、値)}」 戻る。 //定義ファイルの作成 *マクロファイルの作成 マクロインポートイベント マクロファイルが、存在 もし、それ=0なら、マクロファイルに、「」を、保存。 戻る。 *iniファイルの作成 iniファイルに、「[エディタ]\n\n」を、保存。 設定インポートイベント。 iniファイルを、開く。 もし、それ=「[エディタ]\n\n」なら、( 「[エディタ] hima_c=112 hima_d0=545046300B54456469746F7250726F700005436F6C6F720707636C5768697465 hima_d1=1043617265742E4175746F437572736F72091043617265742E4175746F496E64 hima_d2=656E74091743617265742E4261636B5370616365556E496E64656E74091B4361 hima_d3=7265742E437572736F72732E44656661756C74437572736F7207076372494265 hima_d4=616D1B43617265742E437572736F72732E4472616753656C437572736F720706 hima_d5=6372447261671F43617265742E437572736F72732E4472616753656C436F7079 hima_d6=437572736F72070D63724472616753656C436F70791943617265742E43757273 hima_d7=6F72732E496E53656C437572736F720709637244656661756C741E4361726574 hima_d8=2E437572736F72732E4C6566744D617267696E437572736F72070C6372526967 hima_d9=68744172726F771D43617265742E437572736F72732E546F704D617267696E43 hima_d10=7572736F720709637244656661756C740F43617265742E467265654361726574 hima_d11=080D43617265742E46726565526F77090B43617265742E496E546162080F4361 hima_d12=7265742E4B6565704361726574081043617265742E4C6F636B5363726F6C6C08 hima_d13=0E43617265742E4E6578744C696E65091543617265742E507265765370616365 hima_d14=496E64656E74090F43617265742E526F7753656C656374091143617265742E53 hima_d15=656C447261674D6F6465070B646D4175746F6D617469630D43617265742E5365 hima_d16=6C4D6F7665090D43617265742E536F6674546162080B43617265742E5374796C hima_d17=650709637344656661756C740F43617265742E546162496E64656E7409134361 hima_d18=7265742E5461625370616365436F756E7402040C466F6E742E43686172736574 hima_d19=071053484946544A49535F434841525345540A466F6E742E436F6C6F72070763 hima_d20=6C426C61636B0B466F6E742E48656967687402ED09466F6E742E4E616D650608 hima_d21=46697865645379730A466F6E742E5374796C650B00084869745374796C650708 hima_d22=687353656C65637413496D6167656261722E4469676974576964746802071349 hima_d23=6D6167656261722E4C6566744D617267696E020112496D6167656261722E4D61 hima_d24=726B5769647468020014496D6167656261722E52696768744D617267696E0200 hima_d25=10496D6167656261722E56697369626C65090F4C6566746261722E426B436F6C hima_d26=6F720708636C53696C7665720D4C6566746261722E436F6C6F720707636C426C hima_d27=61636B0E4C6566746261722E436F6C756D6E02010C4C6566746261722E456467 hima_d28=6509124C6566746261722E4C6566744D617267696E0205134C6566746261722E hima_d29=52696768744D617267696E0201124C6566746261722E53686F774E756D626572 hima_d30=09164C6566746261722E53686F774E756D6265724D6F646507056E6D526F770F hima_d31=4C6566746261722E56697369626C6509104C6566746261722E5A65726F426173 hima_d32=6508104C6566746261722E5A65726F4C65616408104D617267696E2E43686172 hima_d33=616374657202000B4D617267696E2E4C656674020A0B4D617267696E2E4C696E hima_d34=6502020A4D617267696E2E546F700202134D61726B732E456F664D61726B2E43 hima_d35=6F6C6F720706636C47726179154D61726B732E456F664D61726B2E5669736962 hima_d36=6C6508134D61726B732E5265744D61726B2E436F6C6F720706636C4772617915 hima_d37=4D61726B732E5265744D61726B2E56697369626C6509144D61726B732E577261 hima_d38=704D61726B2E436F6C6F720706636C47726179164D61726B732E577261704D61 hima_d39=726B2E56697369626C6508144D61726B732E486964654D61726B2E436F6C6F72 hima_d40=0706636C47726179164D61726B732E486964654D61726B2E56697369626C6508 hima_d41=154D61726B732E556E6465726C696E652E436F6C6F720706636C47726179174D hima_d42=61726B732E556E6465726C696E652E56697369626C65080D52756C65722E426B hima_d43=436F6C6F720708636C53696C7665720B52756C65722E436F6C6F720707636C42 hima_d44=6C61636B0A52756C65722E45646765091052756C65722E476175676552616E67 hima_d45=6502080F52756C65722E4D61726B436F6C6F720707636C426C61636B0D52756C hima_d46=65722E56697369626C65090A5363726F6C6C4261727307067373426F74681553 hima_d47=706565642E4361726574566572746963616C416302021653706565642E496E69 hima_d48=74427261636B65747346756C6C081753706565642E5061676556657274696361 hima_d49=6C52616E676502021953706565642E50616765566572746963616C52616E6765 hima_d50=416302020D566965772E427261636B6574730E01114974656D436F6C6F722E42 hima_d51=6B436F6C6F720706636C4E6F6E650F4974656D436F6C6F722E436F6C6F720708 hima_d52=636C4D61726F6F6E0F4974656D436F6C6F722E5374796C650B000B4C65667442 hima_d53=7261636B657406017B0C5269676874427261636B657406017D0001114974656D hima_d54=436F6C6F722E426B436F6C6F720706636C4E6F6E650F4974656D436F6C6F722E hima_d55=436F6C6F720708636C4D61726F6F6E0F4974656D436F6C6F722E5374796C650B hima_d56=000B4C656674427261636B657412010000005BFF0C5269676874427261636B65 hima_d57=7412010000005DFF0001114974656D436F6C6F722E426B436F6C6F720706636C hima_d58=4E6F6E650F4974656D436F6C6F722E436F6C6F720706636C4E6176790F497465 hima_d59=6D436F6C6F722E5374796C650B000B4C656674427261636B657412010000000C hima_d60=300C5269676874427261636B657412010000000D300001114974656D436F6C6F hima_d61=722E426B436F6C6F720706636C4E6F6E650F4974656D436F6C6F722E436F6C6F hima_d62=720706636C4E6176790F4974656D436F6C6F722E5374796C650B000B4C656674 hima_d63=427261636B657412010000000E300C5269676874427261636B65741201000000 hima_d64=0F300001114974656D436F6C6F722E426B436F6C6F720706636C4E6F6E650F49 hima_d65=74656D436F6C6F722E436F6C6F720708636C4D61726F6F6E0F4974656D436F6C hima_d66=6F722E5374796C650B000B4C656674427261636B657406022F2A0C5269676874 hima_d67=427261636B657406022A2F000017566965772E436F6C6F72732E416E6B2E426B hima_d68=436F6C6F720706636C4E6F6E6515566965772E436F6C6F72732E416E6B2E436F hima_d69=6C6F720706636C4E6F6E6515566965772E436F6C6F72732E416E6B2E5374796C hima_d70=650B001B566965772E436F6C6F72732E436F6D6D656E742E426B436F6C6F7207 hima_d71=06636C4E6F6E6519566965772E436F6C6F72732E436F6D6D656E742E436F6C6F hima_d72=720708636C4D61726F6F6E19566965772E436F6C6F72732E436F6D6D656E742E hima_d73=5374796C650B0018566965772E436F6C6F72732E444243532E426B436F6C6F72 hima_d74=0706636C4E6F6E6516566965772E436F6C6F72732E444243532E436F6C6F7207 hima_d75=06636C4E6F6E6516566965772E436F6C6F72732E444243532E5374796C650B00 hima_d76=17566965772E436F6C6F72732E4869742E426B436F6C6F720706636C4E6F6E65 hima_d77=15566965772E436F6C6F72732E4869742E436F6C6F720706636C4E6F6E651556 hima_d78=6965772E436F6C6F72732E4869742E5374796C650B0017566965772E436F6C6F hima_d79=72732E496E742E426B436F6C6F720706636C4E6F6E6515566965772E436F6C6F hima_d80=72732E496E742E436F6C6F720707636C477265656E15566965772E436F6C6F72 hima_d81=732E496E742E5374796C650B0018566965772E436F6C6F72732E4D61696C2E42 hima_d82=6B436F6C6F720706636C4E6F6E6516566965772E436F6C6F72732E4D61696C2E hima_d83=436F6C6F720706636C4E6F6E6516566965772E436F6C6F72732E4D61696C2E53 hima_d84=74796C650B001B566965772E436F6C6F72732E526573657276652E426B436F6C hima_d85=6F720706636C4E6F6E6519566965772E436F6C6F72732E526573657276652E43 hima_d86=6F6C6F720705636C52656419566965772E436F6C6F72732E526573657276652E hima_d87=5374796C650B066673426F6C64001A566965772E436F6C6F72732E53656C6563 hima_d88=742E426B436F6C6F720706636C4E61767918566965772E436F6C6F72732E5365 hima_d89=6C6563742E436F6C6F720707636C576869746518566965772E436F6C6F72732E hima_d90=53656C6563742E5374796C650B0017566965772E436F6C6F72732E5374722E42 hima_d91=6B436F6C6F720706636C4E6F6E6515566965772E436F6C6F72732E5374722E43 hima_d92=6F6C6F720706636C4E61767915566965772E436F6C6F72732E5374722E537479 hima_d93=6C650B001A566965772E436F6C6F72732E53796D626F6C2E426B436F6C6F7207 hima_d94=06636C4E6F6E6518566965772E436F6C6F72732E53796D626F6C2E436F6C6F72 hima_d95=0706636C426C756518566965772E436F6C6F72732E53796D626F6C2E5374796C hima_d96=650B0017566965772E436F6C6F72732E55726C2E426B436F6C6F720706636C4E hima_d97=6F6E6515566965772E436F6C6F72732E55726C2E436F6C6F720706636C4E6F6E hima_d98=6515566965772E436F6C6F72732E55726C2E5374796C650B000E566965772E43 hima_d99=6F6D6D656E74657206012710566965772E436F6E74726F6C436F646508095669 hima_d100=65772E4D61696C080E566965772E51756F746174696F6E06012208566965772E hima_d101=55726C0808576F7264577261700818577261704F7074696F6E2E466F6C6C6F77 hima_d102=5265744D61726B081C577261704F7074696F6E2E466F6C6C6F7750756E637475 hima_d103=6174696F6E0814577261704F7074696F6E2E466F6C6C6F775374721224000000 hima_d104=013002300CFF0EFFFB301FFF01FF9B309C30FD30FE309D309E300530FC3009FF hima_d105=3DFF5DFF0D300F30210029002C002E003A003B003F005D007D0061FF63FF64FF hima_d106=65FF70FF9EFF9FFF12577261704F7074696F6E2E4C656164696E670812577261 hima_d107=704F7074696F6E2E4C656164537472120900000008FF3BFF5BFF0C300E302800 hima_d108=5B007B0062FF19577261704F7074696F6E2E50756E6374756174696F6E537472 hima_d109=1208000000013002300CFF0EFF2C002E0061FF64FF14577261704F7074696F6E hima_d110=2E576F7264427265616B0813577261704F7074696F6E2E577261704279746502 hima_d111=500000\n\n」を、iniファイルに、保存。 ) 「[母艦]\nタブ可視=1\nツールレイアウト=左\nブラウザ可視=1\nブラウザレイアウト=下\n\n [基本]\n日本語=1\nbak削除=1\n初期ウインドウ=1\n\n」を、iniファイルへ、追加保存。 戻る。 //デバッグログ出力ルーチン by kobachi *デバッグ機能初期化 エラーカウンターは、0。 「」を、「{母艦のパス}_debug.log」へ、保存。 デバッグログ出力に、エラー処理設定。 戻る。 *デバッグログ出力 エラーカウンター=エラーカウンター+1 「{エラー行}:{エラーメッセージ}\n」を、「{母艦のパス}_debug.log」へ、追加保存。 もし、エラーカウンターが、100なら、( 「エラー回数が 100 回を超えたので、強制終了します。」と、言う。 終わり。 ) エラーを警告。 エラーから復帰。 //デバッグログ出力ルーチン by kobachi end //起動状況表示フォームの作成 by kobachi *起動フォーム表示 起動フォームを、作る。 その、スタイルは、枠なし。 その、背景色は、黒色。 起動ラベルを、ラベルとして、作成。 その、フォント書体は、「MS UI Gothic||9」。 その、テキストは、「\n」& 「 {(母艦の、テキスト)} {バージョン} \n」& 「  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n」& 「 起動フォームを準備しています...」。 起動ラベルを、起動フォームに、乗せる。 その、サイズは、(1,1,(起動フォームの、幅)-1,(起動フォームの、高さ)-1)。 その、透過処理は、オフ。 その、背景色は、白色。 起動フォームを、最前面。 // 母艦の、有効は、0 0秒、待つ。 戻る。 *起動フォーム削除 // 母艦の、有効は、1 起動ラベルの、部品破壊。 起動フォームの、部品破壊。 戻る。 *起動表示(?を) 引数取得。 起動ラベルの、テキストは、「{(起動ラベルの、テキスト)} 完了\n {それ}」。 その、サイズは、(1,1,(起動フォームの、幅)-1,(起動フォームの、高さ)-1)。 0秒、待つ。 戻る。 //起動状況表示フォームの作成 by kobachi end //ひまわり試行停止メニュー by kobachi *ひまわり未起動エラー BEEP。 ステータスラベルは、「終了可能なひまわりが起動されていません。」 エラー復帰。 //ひまわり試行停止メニュー by kobachi end