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

検索 :
  • GetWord
    名称 |GetWord 読み |ゲットワード 定義 |GetDouble(p As DWord) As Word 説明 |指定したポインタが示すWord型データを取得します。 この関数はコンパイラに組み込みです。 戻り値 |Word型データが返ります。 参照 |GetDouble,GetSingle,GetDWord,GetByte
  • GetDWord
    ...GetSingle,GetWord,GetByte
  • GetByte
    ...,GetDWord,GetWord
  • GetSingle
    ...,GetDWord,GetWord,GetByte
  • GetDouble
    ...,GetDWord,GetWord,GetByte
  • リファレンス
    ... GetDWord GetWord GetByte StrPtr 数学関数 Abs Atn Cos Exp Fix Int Log Rnd Sgn Sin Sqr Tan HIBYTE HIWORD LOBYTE LOWORD MAKELONG MAKEWORD 文字列関数 Asc Chr$ Date$ Hex$ Inkey$ Input$ InStr Left$ Len MakeStr Mid$ Oct$ Right$ Space$ Str$ String$ Time$ Val ZeroString ファイル関連の関数 _splitpath Eof Loc Lof メモリ関連の関数 malloc, calloc, realloc, free その他の関数 AddressOf ELM RGB SizeOf VarPtr サポート関数(非標準) ldexp frexp ip...
  • LOWORD
    名称 |LOWORD 読み |ロウワード 定義 |Const LOWORD(dw) = ((dw As DWord) and HFFFF) As Word 説明 |DWord型下位ワードを取得 戻り値 |DWord型下位ワードを取得 参照 |LOBYTE,HIWORD,HIWORD,MAKELONG,MAKEWORD
  • HIWORD
    名称 |HIWORD 読み |ハイワード 定義 |Const HIWORD(dw) = (((dw As DWord) 16) and HFFFF) As Word 説明 |DWord型上位ワードを取得 戻り値 |DWord型上位ワードを取得 参照 |HIBYTE,LOBYTE,LOWORD,MAKELONG,MAKEWORD
  • MAKEWORD
    名称 |MAKEWORD 読み |メイクワード 定義 |Const MAKEWORD(a,b) = (*1) As Word 説明 |2つのバイトからWord型を生成 戻り値 |Word型が返るます。 参照 |HIBYTE,LOBYTE,LOWORD,HIWORD,MAKELONG
  • ステップ27 「メモリ監視ツールを作る①」
    公式のものは4.24でもコンパイル可能であるが、メモリが4GBとかだと値がおかしくなるし、新しいOSにも対応していないので 次のように修正が必要。 ' ----------------------------------------------------------------------------' イベント プロシージャ' ----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' メモ - 以下の領域を、変数、構造体、定数、関数を宣言するための、' グローバル領...
  • 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) ...
  • ウインドウの列挙
    #N88BASICDeclare Function EnumWindows Lib"user32" (lpEnumFunc As VoidPtr, lp As DWord) As DWordDim count As LongFunction EnumWindowsProc(hwnd As HWND, lp As DWord) As DWordDim ttl[555] As ByteGetWindowText(hwnd, ttl, 555)If ttl[0] 0 ThenPrint Hex$(hwnd) + " " + MakeStr(ttl)count++If count = 20 ThenInput ttlcount = 0End IfEnd IfEnumWindowsProc=TRUEEnd FunctionEnumWindows(Addr...
  • AVIファイルの操作
    #N88BASICDeclare Sub AVIFileInit Lib "avifil32" ()Declare Sub AVIFileExit Lib "avifil32" ()Declare Function AVIFileOpen Lib "avifil32" Alias "AVIFileOpenA" (ppfile As **DWord, szFile As *Byte, mode As Long, pclsidHandler As VoidPtr) As LongDeclare Function AVIFileRelease Lib "avifil32" (pfile As *DWord) As LongDeclare Function AVIFileInfo Lib "...
  • マウスストーカー
    マウスに画像が追従するやつ。 CreateイベントでSetTimerして DestroyイベントでKillTimerすればあとは Timerイベント内でカーソル位置にSetWindowPosすれば良い。 以下はプロジェクト名"jama"で作成。 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル h...
  • ラーメンタイマー
    プロジェクトエディターで簡単なラーメンタイマーを作ってみつ。 タイマー処理とGDIを使っている。 プロジェクト HiraiRamenTimar コモンコントロールを使用するにチェックを入れる。 次のコントロールを貼り付ける。 エディットボックス ID=EditBox1 ボタン ID=CommandButton1 プログレスバー ID=ProgressBar1 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [...
  • ABのヘルプを充実させよう!
    ABのヘルプに全文検索をつける ABのヘルプはchm形式ですが、chm形式の醍醐味である全文検索がありません… どうして無いの?という話ですが、Compile full-text search infomationにチェックを入れて ABのヘルプをリコンパイルしてみると必ずヘルプコンパイラが落ちます。 これはヘルプコンパイラのバグでもあるんですが、ABのヘルプにも問題があって、 落ちる場所であるPages\Command\Window.htmとPages\API\Window\Window\CreateWindowEx.htmのソースを見ると次のように書かれている箇所があります。 コントロールのテキスト中のアンパサント「 」文字を、 htmlでは&を&としなければいけませんのでこれを修正します。 はい。これでCompile full-...
  • ステップ11 「テキスト エディタを作る」
    Sub MainWnd_IDM_OPEN_MenuClick()の Dim buffer As StringをDim buffer As *Byteに、 buffer=ZeroString(dwFileSize)をbuffer=malloc(dwFileSize)に それぞれ変更。 今回は、必要最小限の機能がついたテキスト エディタを製作します。 必要最小限の機能ってどんなものがあるの? 開く、保存 だけです(キッパリ)。しかし、これではさすがに寂しすぎるので、コピー&ペーストなどの編集メニューまでをこのページで解説することにします。 さっそく作ろう! ノーマル ウィンドウ ベースのプロジェクト(プロジェクト名を "TextEditor" とします)を作成し、メニューの作成(IDは "MainMenu")...
  • Get
    名称 |Get 読み |げっと 定義 |Get ファイル番号, レコード位置, バッファー 説明 |ランダムファイルからデータを吸い取ります。 参照 |Field , Put
  • ステップ26 「ツールバーを使う③(ホットイメージ)」
    フラットツールバーにホットイメージ機能を付け加えます。ホットイメージとは、1つのボタンに対し、通常画像と浮き上がったときの画像を持たせる機能のことです。今回は、フルカラーのボタンイメージを採用するので、なかなかの見栄えになるかと思います。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Toolbar3.zip(プロジェクトに必要なファイルがすべて入っています) 前回(ステップ25)のソースプログラムに変更を加える形で作業を進めていきます。前回からの変更箇所を太字で示しています。新規にプロジェクトを作成させる方は、プロジェクトオプションで「コモンコントロールを使用する」にチェックを入れておくのを忘れないようにしましょう。 チェックしておきたい関数は? コモンコントロールのイメージリスト機能を使用するため、Imag...
  • スクリーンセーバーを作る必要性
    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...
  • 簡易nslookup
    Dim wd As WSADATADim host As *HOSTENTDim addr As DWordDim i$ As StringDim s[555] As ByteWSAStartup( MAKEWORD(2,0), wd)Print "簡易nslookup"While 1Print "ホストまたはIPアドレスを入力してください。"Print "やめるときはexitと打ってください"Input i$If i$="exit" Then Exit Whilelstrcpy(s, StrPtr(i$))If IPorHost(s)=IP Thenaddr=inet_addr(s)host=gethostbyaddr(VarPtr(addr), SizeOf(DWord), AF_INET)Elsehos...
  • 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 ...
  • マルチメディア
    MCIによる、お手軽サウンドプレイヤー 公式サイトで毎日のようにABのバグフィックスが行われていた頃…公式にMCIを使った解説があった。 AB4.24のサンプルにCDPlayerがあるが、これもMCIを使ったもの。 MCIでmpegやavi、waveやmidiなどを簡単に再生することができるので、エロゲー制作にはもってこいだ。 ただしMCIには問題があって、再生終了などのメッセージを受け取るにはウインドウハンドルが必要なことだ。 つまり、コンソールアプリ、N88アプリでは、扱えないということになってしまうような気がする。 その回避方法は、ダミーウインドウを作り、そいつにメッセージを送らせるようにする。 ダミーと言ってもウインドウ。見えないだけ。 そこで登場するのがサブクラス化だ。 ウインドウプロシージャを横取りするものである。 #N88BASIC #i...
  • コンソールアプリ
    'コンソール#consoleDeclare Function SetConsoleTextAttribute Lib "kernel32" (hConsoleOutput As HANDLE, wAttributes As Word) As LongDeclare Function GetConsoleScreenBufferInfo Lib "kernel32" (hConsoleOutput As HANDLE, lpConsoleScreenBufferInfo As *CONSOLE_SCREEN_BUFFER_INFO) As LongType COORD X As IntegerY As Integer End TypeType SMALL_RECTLeft As IntegerTop As IntegerRight As In...
  • ステップ28 「メモリ監視ツールを作る②(設定をレジストリに保存)」
    前回と同じ修正が必要。 またこのサンプルを実行するとレギストリに永遠に値が残るのでこれは重大な問題だと癒える。 前回に引き続き、メモリ監視ツールに、オプション項目を付け足してみます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ SystemWatcher2.zip(プロジェクトに必要なファイルがすべて入っています) オプション項目って何をするの? 更新間隔の設定 最前面表示のオン/オフ 今回は、上記の2点と、それら設定項目のレジストリへの保存を試みます。 レジストリ操作 ① RegOpenKeyEx関数でレジストリキーをオープン ② RegQueryValueEx関数で値を読み込む / RegSetValueEx関数で値をセットする ③ RegCloseKey関数でレジストリキーを閉じる ...
  • マルチスレッド
    スレッドの基本 スレッドの生成は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 このようにサブスレッドを作る...
  • CRC
    /***********************************************************crc32t.c -- CRC***********************************************************/Const CRCPOLY1 = h04C11DB7/* xXor{32}+xXor{26}+xXor{23}+xXor{22}+xXor{16}+xXor{12}+xXor{11]+ xXor{10}+xXor8+xXor7+xXor5+xXor4+xXor2+xXor1+1 */Const CRCPOLY2 = hEDB88320 /* 左右逆転 */Const UCHAR_MAX = 255Const CHAR_BIT = 8Dim crctable[UCHAR_MAX] As DWordSub makec...
  • 文字列
    ここではAB4.24の文字列に付いての独自研究を紹介します。 あくまでstring.sbpといくつかの実験プログラムによって調べただけですので、 実際のところは開発者にお聞きください。 文字列型の構造 ABの文字列は次のように成っています。 文字列の大きさ(4バイト) 文字列データ(*Byte型) そして文字列データの先頭アドレスをString型は持っています。 下のプログは文字列を入力し、その文字列データと長さに分解する例です。 #N88BASIC Dim a As String Dim i As DWord Dim z[345] As Byte Input a wsprintf(z, "%u", a) i=Val(z) Print MakeStr(i);"の長さ=";GetDWord(i-4) _S...
  • ステップ31 「ツールバーを使う④(ツールチップを表示する)」
    ステップ26 「ツールバーを使う③(ホットイメージ)」の続きです。ホットイメージツールバーにツールチップを表示してみます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Toolbar4.zip(プロジェクトに必要なファイルがすべて入っています) ツールチップの表示方法 WM_NOTIFYメッセージを感知し、ツールチップ用の文字列をセットするだけという、非常に簡単な流れになります。具体的には、以下のような流れになります。 ① WM_NOTIFYメッセージがメッセージコードTTN_NEEDTEXTとともに送られる ② TOOLTIPTEXT構造体のlpszTextメンバに文字列を示すポインタをセットする Type TOOLTIPTEXT hdr As NMHDR NMHDR構造体にコマンド情報...
  • タイマー
    タイマー #N88BASIC Dim cx As Single Dim hwnd As HWND hwnd = GetForegroundWindow() SetTimer(hwnd,1,300,AddressOf(TimerProc)) While cx 10 Sleep(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
  • ウィンドウのサブクラス化(1)
    サブクラス化の概念 † ウィンドウは飛んできたメッセージを処理するためのコールバック関数?(以下ウィンドウプロシージャ)を必ず持っている これはどこで設定されているかというと、RegisterClass(Ex含む)でウィンドウクラスを登録する際に設定され 同じウィンドウクラスを持つウィンドウによって共用されている つまりメッセージに対するウィンドウの挙動を変えたい場合は ウィンドウクラス登録の際に設定するウィンドウプロシージャを変更すればいい事になる しかしこれがWindowsが標準で持っているウィンドウクラス(エディットコントロールとか)だったらどうだろう? これはもうデフォルトのウィンドウプロシージャが登録されてしまっているので変更しようが無いし 仮に変更できたとしても、今度はそのウィンドウクラスを使っている全てのウィンドウの挙動が変更されてしまう これが...
  • じゃんけんゲーム
    乱数にXorShiftを使ったじゃんけんゲーム。 Dim XorSeed[3] As DWord'乱数初期化Sub sxor128() As DWordDim s As DWordDim n As DWords = GetTickCount()For n=0 To 3s = 1812433253 * (s Xor (s 30)) + nXorSeed[n] = sNextEnd Sub'乱数発生Function xor128() As DWordDim t As DWordt = (XorSeed[0] Xor (XorSeed[0] 11))XorSeed[0] = XorSeed[1] XorSeed[1] = XorSeed[2] XorSeed[2] = XorSeed[3]XorSeed[3] = (XorSeed[3] Xor (Xor...
  • 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...
  • C言語への移行
    ※注意 各型のバイト数はC言語の仕様では決められておらず処理系依存である。 signed/unsignedをつけなかった場合、char型は処理系依存、int型は符号付きになる。 詳しくは処理系のマニュアルを参照する事。 Cの型 char 1バイト整数 int ホスト計算機の自然な整数サイズ float 単精度浮動小数点 double 倍精度浮動小数点 short/long修飾子 short int ≦ int ≦ long int short int は short と記述可能 long int は long と記述可能 long doubleは拡張精度浮動小数点数。 型の前にsignedを付けると(明示的に)符号あり、unsignedなら符号なしになる 構文 変数宣言 AB Dim 変数名 As 型 Dim a As Long Dim x ...
  • とりあえず一般的なウインドウを作ってみたいんですけど。
    ABでウインドウを表示する方法にも幾つかあって、定番のRADを使う方法が一般的だと思う。 RADを使うと、裏で、ウインドウを作ったり、メニューやいろんなコントロールを付けてくれる。 これを今回は手書きでやってみよう。 まずはプログラムの提示。 ウインドウクラスの作成 Const classname = "AB-WINDOWCLASS" Main() ExitProcess(0) Sub Main() Dim wc As WNDCLASSEX Dim hwnd As HWND Dim msg As MSG ウインドウクラスの設定 With wc .cbSize = SizeOf(WNDCLASSEX) .style=CS_HREDRAW or CS_VREDRAW .lpfnWndProc = Ad...
  • ステップ17 「RPGのマップ移動機能を作る②」
    前回やった、草原マップ、主人公キャラの描画に引き続き、今回はキー操作に反応し、キャラが自由に歩き回れるようにするプログラムを作成していきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy2.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、First Seed Materialで公開されているRPG用素材を利用させていただきます。 前回作成したプログラムがある方は、MainWnd.sub のプログラムを変更するだけで実現できます。このページのプログラムリストは、前回からの変更点を太字で示してあるので、それを参考に改良してみて下さい。 新規にプログラムを作成する方は、まずはプロジェクトを作成しておきましょう。新規作成→プロジェクトで、"Fantasy" などという名前のプロ...
  • 印刷
    印刷 ローカルプリンタと カレントフォルダに"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に変換 ...
  • ファイル圧縮してみよう
    Common Archivers Library からCAB32.DLL 開発者 SDK v0.98をダウソしましゅ。 展開して、cab32.dllを、システムホルダに投入します。 ABのプロジェクトでウインドウにリストボックス(ID=ListBox1)とボタン(ID=CommandButton1) だけの画面を作ります。このとき、MainWndの拡張スタイルでドラッグ&ドロップを許可にします。 イカのコードをコピペします。終わり。 ----------------------------------------------------------------------------- イベント プロシージャ --------------------------------------------------------------------...
  • ステップ32 「アナログ時計を作る」
    公式で配布されているプロジェクトファイルはAB5であるため、AB5プロジェクトファイルをAB4で開くを参照。 秒針、短針、長針がついているアナログ時計を作ってみます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ clock.zip(プロジェクトに必要なファイルがすべて入っています) 早速作ろう! "clock" などという名前で、ノーマルウィンドウベースのプロジェクトを新規作成します。 MainWndはいじるところがないので、次はメニュー(IDは "OptionMenu")を挿入し、以下のような構成になるよう、メニューアイテムをいれていきます。 キャプション ID 備考 dummy - ポップアップ 常に前面に表示( T) IDM_TOPMOST - ...
  • GDIでお絵かき
    プロジェクトエディターにてウインドウを作成。 プロジェクト名 = hiraiGDI '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバルな変数、構造体、定数、関数を定義します。Const ToRad(x) = (x * 3.14/180)Class HIRAIGDIPriv...
  • ステップ16 「RPGのマップ移動機能を作る①」
    今回はスプライト処理をはじめとするテクニックを利用し、マップ、および主人公の描画をRPGライクに行います。 なお、今回からの解説は、First Seed Materialで公開されているRPG用素材を利用させていただきます。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy.zip(プロジェクトに必要なファイルがすべて入っています) このステップの要点は、スプライト処理です。ビットマップのマスク処理などといったほうが、親しみがあるかもしれません。具体的には、ビットマップに対して以下のような演算をさせ、画面に出力します。 = AND OR これを動かすとなると少し大変なので、まずは右上にあるような画面を作ってみることにしましょう。 ノーマル ウィンドウ ベースの新規プロジェクトを作成し...
  • GetMessage
    GetMessageとはWindowsが提供する関数。 メッセージループの主役。 よく似た関数にPeekMessageというのがあるが、違いは メッセージが来るまで待機するか、しないか、である。 ゲームなど、脊髄反射レスが求められるアプリの場合、 GetMessageは応答がのんびりしているため、タイムラグが気になるよ そんなときはPeekMessageを使うと良い。
  • ステップ25 「ツールバーを使う②(ボタンが浮き出すフラットツールバー)」
    こんな風に、マウスポインタを合わせるとボタンが浮き出てくるツールバーのことを、フラットツールバーと言います。今回は前回の標準ツールバーのプログラムにちょっと手を加え、オシャレなフラットツールバーにしてみましょう。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Toolbar2.zip(プロジェクトに必要なファイルがすべて入っています) どこに手を加えるかというと… ツールバーのウィンドウスタイルに TBSTYLE_FLAT を加えるだけです。 えー、めっちゃ簡単じゃん。それではCreateToolbarEx関数の第1パラメータを… ちょっとお待ちください。実験してみると分かりますが、ツールバー生成時にダイレクトに TBSTYLE_FLAT を指定してしまうと、不思議なことにツールバーの背面が白になってしまいます。 と...
  • 文字コードの変換
    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...
  • ステップ23 「ステータスバーを使う③」
    型の不一致による警告がでるが動作には問題無し。 どうしても気になるならキャストして黙らせてもよいのですが、 読みにくくなるだけだと思われるので、#strictを外すのがいいかもしれない。。 今回はステータスバーの各パーツにアイコンを表示してみます。少し細工を加えるだけで、ちょっとした機能も見栄えが良くなります☆ ※Comctl32.dllのバージョンが4.71以降であることが必要です ということで、上の画像にあるような三つのアイコン(16*16)をstateプロジェクトの中に用意しておきましょう。 icon1.ico(日付用)、icon2.ico(時刻用)、icon3.ico(サイズ用) ※右クリックで「対象をファイルに保存」 ステップ22でstateプロジェクトを作成されている方は今回のプログラムの太字の部分を参考にソースを編集してみて下さい。プロジ...
  • ステップ30 「MCIコマンドで音楽ファイルを再生する」
    今回はMCIコマンドを使って、WAVE、MIDI、MP3等の音楽ファイルを再生することができる簡易プレーヤーを作ってみます。 MCIコマンドって何? "Multimedia Control Interface" のことです。ようは、音楽ファイルをオープンしたり、再生、停止したりする、サウンド関連のコマンドのことです。 mciSendCommand関数を使用すれば、MCI_OPEN、MCI_PLAY、MCI_STOPなどのMCIコマンドを送ることができます。 mciSendCommand ( _ mciId As Long, _ MCIデバイスのID uMsg As Long, _ コマンド(MCI_OPEN、MCI_PLAY、MCI_STOPなど…) dwParam1 As L...
  • ステータスバー
    ステータスバーの中にプログレスバーを入れる。 プログレスバーをステータスバーの子にして、 SB_GETRECTでサイズ調整するのがミソ。 ↓プロジェクト名を"SPSP"にして、コモンコントロールを使用するにチェクを入れる。 '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainW...
  • ステップ18 「RPGのマップ移動機能を作る③」
    前回の解説で主人公キャラが自由に動け回れるようになったので、今回は任意のマップを描けるようにしてみます。 マップ図にマップチップを割り当てるという、非常にシンプルな細工をするわけですが、マップチップの種類が非常に多いため、数字攻めになってしまうかもしれませんが、根気良くがんばりましょう。 今回作成するプログラムのサンプルファイルを置いておきますので、参考にしたい方はどうぞ☆ Fantasy3.zip(プロジェクトに必要なファイルがすべて入っています) 今回も、ステップ17「RPGのマップ移動機能を作る②」で掲載したプログラムの変更点を太字で表しているので、参考にして下さい。 また、以下のようなマップの配置図(25*20)をCSV形式で用意しておく必要があります。プロジェクトが保存されているディレクトリに "map.csv" というファイル...
  • 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' 右側へ...
  • @wiki全体から「GetWord」で調べる

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