abwiki @ ウィキ (ActiveBasic非公式wiki)内検索 / 「Kill」で検索した結果

検索 :
  • Kill
    名称 |Kill 読み |切る 定義 |Kill filename$ 説明 |ファイルを削除。 参照 |
  • 新メモリ最適化ツール In AB
    ...t;完了"KillTimer(Hhhh,Llll)Kill "log.dat"GoTo *SsssEnd IfPrint Aaaa;"%"'~%と表示させる*SsssEnd SubSub Timer2_Timer() '通常モードAaaa = Aaaa + 1'パーセント提示の数字Jjjj = "Data Error none..." 'Printする文字列を格納Open "log.dat" For Output As #1For Bbbb = 1 To 3000Print #1, Jjjj 'CPU処理のためのPrint文For Kkkk = 1 To 120Kkkk = Kkkk + 65468543Kkkk = Kkkk - 65468...
  • リファレンス
    ... End Exec Kill Locate MkDir Randomize III.構文 If Goto GoSub~Return For~Next While~Wend Do~Loop Select Case Declare Sub Function Macro Dim Const Enum Let Set〇〇 Type TypeDef With Class~End Class IV.Win32API MCI GDI user32 V.仕様、ヨタ話 基本型 宣言と定義 コマンドライン オプション 行番号 コメント プリプロセッサ 複文 アスキーコード表 バグ、不具合 N88BASICとの互換性 歴史 演算子については基本的な演算子には何があって、どう使うの?を参照のこと。 Win32APIは MSDNライブラリ が詳しい。
  • ファイル圧縮してみよう
    ...e, 999) Kill ResFile MessageBox(hMainWnd, re, "mes", MB_OK) End Sub 注意 プロジェクト名をCab2にしないとコンパイルが通らないという猛烈なバグがあります。
  • N88BASICとの互換性
    N88BASIC互換性について PC8801とかのようにOSなんてものがROM-BASICとゴチャ混ぜ状態だったころのようなあの時代には戻れません。 以下にABのN88BASIC互換性のポイントを挙げる ダイレクトモードは無い 各種コマンドは無い。SAVE,LOAD,LIST,RUNはもちろんAUTO,KEYも無い。 READ,DATA関連は無い 変数はDimで明記しなければならない ON 〇〇 GOTO/GOSUB関連も存在しない SCREEN 3,0,0,1 CONSOLE ,,0,1 DEFINT A-Z CLS 3←CLSしか無い テキスト、グラフィックの重ね合わせはできない。 BEEP(0) BEEP(1)でブザーを作ることはできない。 関数は大文字小文字を区別する(ABSはAbs、ASCはAscとなる) このようなワケで、N88BASICのプログラムを移植す...
  • タイマー
    ...222) Wend KillTimer(hwnd,1) Print "owari" Sub TimerProc(hwnd As HWND,uMsg As DWOrd,idEvent As *DWord,dwTime As DWord) If idEvent = 1 Then Print "cx=";cx cx = cx + 1 End If End Sub
  • マウスストーカー
    ...stroyイベントでKillTimerすればあとは Timerイベント内でカーソル位置にSetWindowPosすれば良い。 以下はプロジェクト名"jama"で作成。 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバルな変数、構造体、...
  • ステップ10 「プログレスバーとタイマー処理」
    ...数が呼び出された後、KillTimer関数が呼び出されるまで、一定時間間隔(ここでは1秒ごと)で実行されます。count変数の値を1だけ減らし、0になったらKillTimer関数でタイマーをストップさせ、終了処理を行います。 Sub MainWnd_Timer(TimerID As Long) カウンタの値を1だけ減らす count=count-1 プログレスバーを進める SendMessage(GetDlgItem(hMainWnd,ProgressBar1),PBM_STEPIT,0,0) If count Then count変数の内容が0になっていないとき、残り時間の表示を設定し、プロシージャから抜け出す SetWindowText(GetDlgItem(hMainWnd,CountStati...
  • FAQ
    FAQ(Frequently Asked Questions)よくある質問と答え 全般的なこと Q どこからダウンロードできるの? |A 公式サイトが死んでいる場合は vector からでも。 Q 利用にお金はかかりますか? |A いいえ。ABは無料です。 Q 商用利用してもいいの? |A 誰も止めはしない。 Q 関数や命令、文法の仕様は無いの? |A すべて作者の頭の中に入っていますよ。 Q ActiveBasicはActiveBasicで作ってるの? |A CかC++で作っているらしい。 Q ActiveBasicのプログラミングコンテスト無いの? |A RADツールに関すること Q RADツールで[x]の無いウインドウをテストしたのですが…閉じ方が分かりません。 |A A...
  • ステップ14 「DLLを作る」
    Basic言語でDLLを作るだって?冗談言うなよ! それが、ActiveBasicでは自然な形で作れてしまいます。ネイティブ コードにコンパイルされるため、DLLプログラムとして要求されるだけの実行速度、プログラム サイズが期待できます。 作り方はとてもシンプル 通常のEXEプログラムと違う点は以下の2つだけ。 ① プロジェクト作成時に「DLL」を選択する ② エクスポートする関数には "Export" 指定をする ①は画面の説明に従うだけなので解説の必要はありませんね。②に関してですが、今までは関数を定義するというと、 Sub func1(parm...) ... End Sub Function func2(oarm...) As Long ... End Sub という感じに定義するのに対し、エ...
  • ABのヘルプを充実させよう!
    ...eventok KillTimerng LoadBitmapok LoadCursorok LoadCursorFromFileok LoadIconok LoadImageok LockWindowUpdateok MessageBeepok MessageBoxok mouse_eventok MoveWindowok OpenClipboardok OpenIconok PeekMessageok PostMessageok PostQuitMessageok PostThreadMessageok RedrawWindowok RegisterClassExok RegisterClipboardFormatok RegisterWindowMessageok ReleaseCapture...
  • 2ちゃんねるにアクセスしてみよう
    資料 monazilla - いきいき Wiki datのダウンロード、gzip解凍、レスのパーサのテストまで。 003
  • ラーメンタイマー
    ...merIsOut()KillTimer(hMainWnd, TimerID)End IfEnd SelectEnd Sub
  • Shellソート
    整列アルゴリズムのひとつ。 挿入ソートの改良版で、Donald L. Shell(Communications of the ACM, 2 30-31, 1959)による整列法。高速だが、安定ではない。 挿入ソートは、ほとんど整列されたデータに関しては高速である。しかし、隣通しの交換しかしないため、あまり整列されていないデータでは低速であった。そこで、適当な間隔をあけて大雑把な整列を行うことで高速化させている。 大雑把な整列をするための間隔はいくつか考えられるが、下記の例ではh(1)=1, h(n)=3×h(n-1)+1で定義される数列を用いており、このときの実行時間はO(n^1.25)であることが知られている。 プログラミング掲示板「ソートロジック大会」なども参照のこと TypeDef keytype = IntegerSub shelsort(n As In...
  • memset
    C言語の標準ライブラリに存在する関数の一つ。 void *memset(void *buf, int c, size_t n); bufをnバイトだけcの値で埋め尽くす。 FillMemory(Win32API)と同等。
  • プログレスバーの中に文字が表示できるやつ
    Class HIRAI_PROGRESSPrivatehWnd As HWNDhDC As HDChMDC As HDChBmp As HBITMAPrcc As RECThPen As HPENhBrs As HBRUSHmax As Longmin As Longcur As Longspo As LongPublicSub ~HIRAI_PROGRESS()DeleteObject(hBrs)DeleteObject(hPen)DeleteObject(hBmp)DeleteDC(hMDC)ReleaseDC(hWnd, hDC)End SubSub Set(hWnd2 As HWND)hWnd = hWnd2GetClientRect(hWnd, rcc)hDC = GetDC(hWnd)hMDC = CreateCompatibleDC(hDC)hBmp = CreateComp...
  • マルチスレッド
    スレッドの基本 スレッドの生成はCreateThread関数で行う。 スレッドは引数を1つだけもつ関数にする。 名前は何でもいい。 スレッドは戻り値を持っていて、GetExitCodeThreadで調べることができる。 スレッドの終を待つにはWaitFor〇〇関数を使うと良いかも。 #N88BASICDim hT As HANDLEDim id As DWordhT = CreateThread(ByVal 0, 0, AddressOf(t), 5, 0, Varptr(id))WaitForSingleObject(hT, INFINITE)CloseHandle(hT)Print "スレッドは正しく終了しました"Function t(a As DWordPtr) As LongPrint aEnd Function このようにサブスレッドを作る...
  • Collatz (コラッツ) の予想
    /***********************************************************collatz.c -- Collatz (コラッツ) の予想***********************************************************/#N88BASICConst LIMIT = ((4294967295 - 1) / 3)Sub main()Dim n As DWordPrint "n = ";Input nwhile (n 1)If (n And 1) Then /* 奇数 */if (n LIMIT) Thenprint "Overflow"Exit SubElsen = 3 * n + 1End IfElse n = n / 2End IfPrint nWendEnd...
  • ステップ28 「メモリ監視ツールを作る②(設定をレジストリに保存)」
    ...ーを終了する KillTimer(hMainWnd,0) ------------------------------ レジストリに設定値を書き込む ------------------------------ Dim hKey As HKEY Dim IsTopMost As Long 「常に手前に表示する」ボタンにチェックが入っているかどうかを調べる If SendMessage(GetDlgItem(hMainWnd,Check_TopMost),BM_GETCHECK,0,0) Then IsTopMost=1 Else IsTopMost=0 End If レジストリをオープン(サブキーが存在しなときは作成する) RegCreateKeyEx(HK...
  • DLL
    DLL(でるる)とは、Dynamic Link Libraryの略でABの真の分割コンパイルを行う唯一の手法のことである。
  • mpglib.dllを使ったmp3再生
    前回は素のwaveファイルお再生しました。 これを使えばほかのものでも応用ができます。 今回はmp3をやります。 mp3はデコーダやプレイやがあって今さらですけど、 ABでもできるんですよ。 今回使うのは定番のmpglib.dllです。 mpglib.dllのある場所http //mpesch3.de1.cc/misc.html こいつはABから使うことを想定していないしドキュメントも不親切です だから元となったmpg123というライブラリも調べてみるといいかもしれませんね。 まずこのDLLは3つの関数しかないので、簡単ですけど、便利な昨日がないので 自分で作ります。 ID3V2も自力で読み飛ばさないといけません。 abmpglib.abp Const AUDIOBUFSIZE = 16384Const SBLIMIT ...
  • ステップ27 「メモリ監視ツールを作る①」
    ...ーを終了する KillTimer(hMainWnd,0) SystemWatcher_DestroyObjects() PostQuitMessage(0)End SubSub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT) Dim buf As String Dim hProgBar As Long '-------------------------- ' OSのバージョン情報を取得 '-------------------------- Dim OsVerInfo As OSVERSIONINFO Dim BuildNum As Long OsVerInfo.dwOSVersionInfoSize=Len(OsVerInfo) ...
  • スクリーンセーバーを作る必要性
    MinGWのパブリックドメインのソース を ABに変換する 途中まで…あとはまかせた Const DLG_SCRNSAVECONFIGURE= 2003Const idsIsPassword=1000Const idsIniFile=1001Const idsScreenSaver=1002Const idsPassword=1003Const idsDifferentPW=1004Const idsChangePW=1005Const idsBadOldPW=1006Const idsAppName=1007Const idsNoHelpMemory=1008Const idsHelpFile=1009Const idsDefKeyword=1010Const IDS_DESCRIPTION =1Const ID_APP =100Const WS_GT =WS_GROUP or...
  • malloc, calloc, realloc, free
    名称 |malloc, calloc, realloc, free 読み |まろっく, きゃろっく, りあろっく, ふりー 定義 |Function malloc(n As DWord) As VoidPtr Function calloc(n As DWord) As VoidPtr Function realloc(m As VoidPtr, n As DWord) As VoidPtr Sub free(m As VoidPtr) 説明 |mallocはメモリを確保します。 callocは0でクリアしたメモリを確保します reallocはメモリを再確保します。 freeは確保したメモリを解放します。 戻り値 |free以外は確保したメモリのポインタを返します。 参照 |ZeroString , memset
  • DLLの基礎
    DLLは、Windowsの根幹である。 DLLは、Windowsをより使いやすくするための手段です。 exe(実行)ファイルは機械語でプログラムが書かれています。 これは単体で動作するものですが、 例えば a.exeとb.exeの中で全く同じ動作をするプログラムがあった場合、 2つも同じものがあるのは容量、読み込み時間の無駄になります。 2つとかならいいのですが100個のアプリケーションが同じコードを持っていたら大変なムダです。 そこでDLLの登場です。 DLLはプログラムの部品を入れることができ、それは複数のアプリで共有されます。 なお,DLLをつくる時は、main関数ではなくDllMain 関数がエントリポイントとなります。 これは梨花で変更可能ですがデフォルトに従った方が良いでしょう。 とうぜんですがDllMain関数内で例外を起...
  • Makefile
    makefileの書き方 基本 ターゲット 依存ファイル コマンド コマンドの前にtabを忘れないこと。 マクロ 名前=文字 で定義。使うときは $(名前) とする。 cc=gcc files=a.c b.c test $(files) c.h $(cc) $(files) 依存 ターゲットを幾つか並べ、順番を大切にしたいとき。 a b コマンド1 b c コマンド2 コマンド2が実行され、コマンドが成功(戻り値が0)したときにコマンド1が実行される。 疑似ターゲット ファイルを冠しないターゲットのこと。 clean del *.obj みたいなの。
  • 可逆圧縮(猿音)
    今回はオウディオの可逆圧縮をやってみよう。 いろんな形式があって迷うんだけど、ABでやるならapeが一番簡単かな。 Monkey s Audio からSDKをダウソ。MACDll.dllをシステムフォルダに投げる。 つぎにABでイカのコードをコピペ。 test.wavをHirai-Kimihiko.apeにエンコする。 #console #include api_mmsys.sbp Typedef APE_COMPRESS_HANDLE = VoidPtr Declare Function c_APECompress_Create Lib"MACDll.dll" (pErrorCode As *Long) As APE_COMPRESS_HANDLE Declare Sub c_APECompress_Destroy Li...
  • ステップ11 「テキスト エディタを作る」
    Sub MainWnd_IDM_OPEN_MenuClick()の Dim buffer As StringをDim buffer As *Byteに、 buffer=ZeroString(dwFileSize)をbuffer=malloc(dwFileSize)に それぞれ変更。 今回は、必要最小限の機能がついたテキスト エディタを製作します。 必要最小限の機能ってどんなものがあるの? 開く、保存 だけです(キッパリ)。しかし、これではさすがに寂しすぎるので、コピー&ペーストなどの編集メニューまでをこのページで解説することにします。 さっそく作ろう! ノーマル ウィンドウ ベースのプロジェクト(プロジェクト名を "TextEditor" とします)を作成し、メニューの作成(IDは "MainMenu")...
  • While~Wend
    名称 |While~Wend 読み |ワイル~ウェンド 文法 |While condition ... [Continue] ... [Exit While] ... Wend 説明 |ループ処理の王様。conditionが真の間だけWhile~Wend間をループ。
  • ファイルを扱う
    旧来の方法を模した(open,close,inputなどを使う)方法と、APIを使う方法がある。 旧来の方法 昔のBASICを知っている人はこれを使いたいと思うだろうが、実は互換性に乏しい。 エラーが起きたときに適切に処理する方法が用意されていないので注意が必要。 シーケンシャル これで書き込み。 open "test.dat" For output As #1write #1, "test",1,"a"close #1 test.datはこのようになる。 test,1,a[cr][lf] 読み込むときは、型をあわせて Dim a$,b$,c$,i,j,kopen "test.dat" For input As #1input #1, a$,i,c$close #1 とやればok。...
  • 壁紙チェンジャー
    壁紙の変更はSystemParametersInfo関数を使う。 この関数はビットマップのみなのでjpegとかは一旦bmpファイルにしないといけない。 そこでimgctl.dllをダウンする。http //www.ruche-home.net/ これでpeg,png,gifをbmpにできる。 http //www31.atwiki.jp/abwiki?cmd=upload&act=open&pageid=221&file=WallpaparChanger.zip
  • DLLでAVGが反応する
    概要 コンパイルしたDLLプログラムがWin32/Heurと認識される。 原因 誤認識だと思われます。 AVGには内部にヒューリスティックエンジンが搭載されており、 VisualC++などで作成されたDLLと異なる形式のDLLがABによって作成 されるために怪しいと判定され検知されるようです。 Win32/Heurは現存するウイルス種別の定義ではなく内部の分析エンジンの警告名です。 対処法 AVGおぷしょんの除外を適用するか、VisualC++などでDLLを作成する。
  • 指数関数
    自然数eを底とする指数関数。 指数関数は級数展開で求めることができる。x 0 である時は、級数展開の各項に正負が交互に現れるため桁落ちが生じる。そこで、指数関数の逆数を計算することによりx 0の計算に直す。 収束を早めるため、x=t+k*ln(x), -ln(x)/2 x ln(x)/2 となるtとkを求め、Exp(x)=Exp(t)*2^kとする。 このほかに、連分数を使って求める方法もある。 ActiveBasicでは級数展開を用いたアルゴリズムでExp関数が用意されている。 #N88BASICConst LOG2 = 0.6931471805599453094172321214581765680755'log_e(2)Function lldexp(x As Double, k As Integer) As DoubleDim w As ...
  • コマンドライン オプション
    BasicCompiler infile [outfile] [[/dll] [/debug] [/run] [/wnd ???]] infile |コンバイルするファイル outfile |生成ファイル名 /dll |DLLをビルド /debug |デバッグビルド /run |デバッグ実行 /wnd ??? |親ウインドウのハンドル(16進数) /clip_compile_view |?
  • 印刷
    印刷 ローカルプリンタと カレントフォルダに"test.bmp"が必要。 '印刷テストDeclare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (lpApplicationName As BytePtr, lpKeyName As BytePtr, lpDefault As BytePtr, lpReturnedString As BytePtr, nSize As Long, lpFileName As BytePtr) As LongDeclare Function SetDIBitsToDevice Lib "gdi32" (hdc As Long,XDest As ...
  • abでpdfを扱う
    http //homepage3.nifty.com/e-papy/pdftool/index.html からpdftool.zipをだうんろーどし、pdftool.dllを得る。 テキストファイルをpdfに変換。 #promptDeclare Function WritePDFText Lib "pdftool.dll" (openfile As BytePtr,savefile As BytePtr) As LongDim opf(63) As ByteDim svf(63) As ByteDim rtn As Longlstrcpy(opf,"readme.txt")lstrcpy(svf,"readme.pdf")rtn=WritePDFText(opf,svf) ビットマップ画像をpdfに変換 ...
  • ステップ8 「構造体とファイルオープンダイアログ」
    今回は、RADツールとは離れ、構造体についての説明をします。扱うプログラムも、プロジェクトではなく、単体ファイル(*.abp)になるので、そのつもりで読んでいって下さい。 構造体 いくつかの変数を集めたものを、構造体と呼びます。1つのものに対して、複数のデータが存在するときに利用されます。構造体の定義方法、利用方法は下のようになります。 構造体の定義 Type 構造体名 メンバ変数1 As データ型1 メンバ変数2 As データ型2 メンバ変数3 As データ型3 ... End Type 構造体を利用するとき Dim a As 構造体名 a.メンバ変数1 = ... a.メンバ変数2 = ... 構造体の定義はType ~ End Type文を利用します。構造体の中に構造体を定義することも可能です。 Dim...
  • インターネット
    ABのサンプルにWinsockを使ったものが紹介されているので、ここではwininetを使ったものでも。 wininetはとても簡単で、ファイル操作と同じ感覚で使うことができる。 InternetOpenでNetを開く、 InternetOpenUrlでurlにつなぐ InternetReadFileで読み込む InternetCloseHandleで終了 HttpQueryInfoはサイズやタイプ、更新日時などの情報を得る 以下サンプル #console Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"(lpszCallerName As BytePtr,dwAccessType As Long,_ lpszProxyName...
  • コンストラクタ、デストラクタ
    前回は簡単なクラスをつくってみますた。ファイルを読み込むだけのABFILEクラスです。 でもおこんなものなーんの役にもたちゃしねえわけです。 さて今回お話するのはコンストラクタとデストラクタです。 コンストラクタを笑うものはデストラクタに泣くという格言があるくらい重要なパートです。 こいつを理解するとオブジェクト指向なんて小難しいことは知らなくて構いません。 そもそもABでオブジェクト指向しようなんてのが土台無理な話なのです。 ABは大規模いや中規模開発すら大変なクソ言語です。 正直ファイルの分割なんてあって無いようなものだしスコープに対する静的オブジェクトも作れないし。 他の言語でつくられたモジュールとの連携も多大な制約を受け、 もしオブジェクト指向を勉強したいなら他の言語でやってくれ。と声を大にして言いたい。 ABなんぞホビーで使う言語であり、それに特化してい...
  • 文字コードの変換
    UTF82SJIS http //blog.goo.ne.jp/xmldtp/e/7eaeeb3dabfe975dbc57f73aefb1c059からコピペ #N88BASIC Function utf8ToSjis(utf8 As *Byte) As *Byte Dim utf16 As *Word Dim wlen As Long Dim sjis As *Byte utf8ToSjis = NULL If utf8 = NULL Then Exit Function End If ============================== UTF8=>UTF16変換 ============================== まずは、wlenの長さをとる wlen = MultiByteToWideChar(CP_UTF8, 0, utf...
  • デレクトリの再帰検索を行う
    /*デレクトリの再帰検索を行うdir → 検索ディレクトリfukasa → 最大深さ。0ならサブディレクトリを検索しないcallback_func → 検索結果のファイル、フォルダの名前を返す関数のアドレス返り血 なし*/Sub hxtree(dir As *Byte, fukasa As DWord, callback_func As *Sub(p As *Byte))Dim wfd As WIN32_FIND_DATADim hF As HANDLEDim noah[428] As Bytewsprintf(noah, "%s\*.*", dir)hF = FindFirstFile(noah, wfd)DoIf lstrcmp(".", wfd.cFileName) = 0 or lstrcmp("..", wfd.cFil...
  • ダウンローダーを作ってみよう
    ABでもちょっとくふうすれば簡単なダウンローダーがすぐにできる。 ここでは限定的な機能しか無いダウンローダを作る。 連番のファイル例えばhttp //○○001.mp4~http //○○999.mp4 こんなものを毎回右クリするのは地獄だ。 せっかくABがあるんだから、自動化してみようかな。 連番の部分を(*)と置き換えて桁数を入力すれば、内部で展開する。 Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA"(lpszCallerName As BytePtr,dwAccessType As Long,_ lpszProxyName As BytePtr,lpszProxyBypass As BytePtr,dwFlags As Long) A...
  • Bernoulli(ベルヌーイ)数
    正接(タンジェント)の級数展開など種々の展開式の係数となる重要な数。 #N88BASIC'最大公約数(the greatest common divisor)を求める関数Function gcd(x As Double, y As Double) As DoubleDim t As DoubleWhile y 0t = fmod(x, y)x = yy = tWendgcd = xEnd Function'浮動小数点剰余を求めるFunction fmod(x As Double, y As Double) As DoubleDim i As DWordIf y = 0 Thenfmod = 0Exit FunctionEnd Ifi = Int(x / y)fmod = x - i * yEnd Function'計算機イプシロン(1 + eps ...
  • AB以外の開発環境
    フリーのもの ActivePerl |WinでPerlを使うならこれ。 StrawberryPerl |WinでPerlを使うものその2。 Digital Mars C, C++ and D Compilers |D言語。C/C++コンパイラもある。omf形式を吐くのでMS厨とは相性悪し。 FreeBASIC |マルチプラットホームかつオープンソースなBASICコンパイラ。インタプリタではない。 基本構文はQBasic互換であるがオブジェクト指向やポインタなど独特の言語拡張の導入は ActiveBasicと似ていてANSI非互換である。非常に多くのライブラリがある。 Ver1.0から64bit環境に対応。(フリーなBASICの64bit環境はActiveBASICとFreeBASICしかない) Smal...
  • htmlhelp
    'htmlhelp.sbp'05/05/10'06/09/10 最後まで書いた' Commands to pass to HtmlHelp()Const HH_DISPLAY_TOPIC = H0000Const HH_HELP_FINDER = H0000 ' WinHelp equivalentConst HH_DISPLAY_TOC = H0001 Const HH_DISPLAY_INDEX = H0002 Const HH_DISPLAY_SEARCH = H0003 Const HH_SET_WIN_TYPE = H0004Const HH_GET_WIN_TYPE = H0005Con...
  • UMLって何?
    UMLとはフローチャートの簡単にいえばクラス版です。 クラスを作るとき、オブジェクトを作るときにどうしよっかなーってのを絵で表すものです。 ABはホビー用言語なのであまり考えることはないですが、UMLの『クラス図』は読めるようになっておくと 他の人のプログを移植するときに役立つかもしれません。 とりあえずここでは簡単なクラスを作ってそれをクラス図で表わしてみます。 今回は「指定したフォルダからファイルを探して、それぞれ指定したフォルダ以下に拡張子ごとに別のフォルダ振り分ける」処理を考えます。 ここで作業する人を考えます。 1人目は指定したフォルダからファイルを探す人。 2人目は指定したフォルダ以下にそれぞれ拡張子ごとに別のフォルダ振り分ける人。 1人目はフォルダを指定する動作と、ファイルを見つける動作が必要です。 2人目はフォルダを指定する動作と、ファ...
  • マルチメディア
    MCIによる、お手軽サウンドプレイヤー 公式サイトで毎日のようにABのバグフィックスが行われていた頃…公式にMCIを使った解説があった。 AB4.24のサンプルにCDPlayerがあるが、これもMCIを使ったもの。 MCIでmpegやavi、waveやmidiなどを簡単に再生することができるので、エロゲー制作にはもってこいだ。 ただしMCIには問題があって、再生終了などのメッセージを受け取るにはウインドウハンドルが必要なことだ。 つまり、コンソールアプリ、N88アプリでは、扱えないということになってしまうような気がする。 その回避方法は、ダミーウインドウを作り、そいつにメッセージを送らせるようにする。 ダミーと言ってもウインドウ。見えないだけ。 そこで登場するのがサブクラス化だ。 ウインドウプロシージャを横取りするものである。 #N88BASIC #i...
  • 2分探索木
    探索に用いる2分木 各ノードにデータと2個のポインタを持ち、ポインタleftでつながる子孫のデータは自分より小さく、ポインタrightでつながる子孫のデータは自分より大きい。 データの検索は根(ルート)より始め、そのデータより小さいないし大きい場合にポインタleftないしrightをたどる。左右の釣り合いの取れた2分木の場合、N個のデータから検索する時間は O(log2(N)) 程度であるが、最悪の場合は O(N) 程度まで低下する。 原著ではノードの削除関数はdelete()関数ですが、予約語のためremove()としました #N88BASICTypeDef keytype = Byte' 探索のキーの型Type node' 木のノードleft As *node' 左側へのポインタright As *node' 右側へ...
  • waveファイルの再生
    #include api_mmsys.sbp Declare Function waveOutOpen Lib "winmm" (phwo As *HWAVEOUT, uDeviceID As DWord, pwfx As *WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULTDeclare Function waveOutClose Lib "winmm" (hwo As HWAVEOUT) As MMRESULTDeclare Function waveOutPrepareHeader Lib "winmm" (hwo As HWAVEOUT, pwh As *WAVEHDR, cbwh As DWord) ...
  • gogo.sbp
    Const ME_NOERR = 0 return normally;正常終了 Const ME_EMPTYSTREAM = 1 stream becomes empty;ストリームが最後に達した Const ME_HALTED = 2 stopped by user;(ユーザーの手により)中断された Const ME_INTERNALERROR = 10 internal error; 内部エラー Const ME_PARAMERROR = 11 parameters error;設定でパラメーターエラー Const ME_NOFPU = 12 no FPU;FPUを装着していない!! Const ME_INFILE_NOFOUND = 13 can t ope...
  • @wiki全体から「Kill」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索