abwiki @ ウィキ (ActiveBasic非公式wiki)内検索 / 「ブロック崩し」で検索した結果

検索 :
  • ブロック崩し
    'ブロック崩し'操作方法'←と→キーだけ。#N88BASICConst Xmax = 21Const Ymax = 22Const KABE=99Const BALL=100Const BAN=101Dim map[Xmax,Ymax]'マップ情報Dim k'のこりブロック数Dim I$, x , y ,a'汎用Dim c, wait'速度制御Dim sx, sy'盤の位置Dim bx, by 'ボールの位置Dim bv, bh 'ボールの向きDim dflag'デバッグモードdflag=0Goto *MAIN'----------------------------' サブルーチンここから'----------------------------&#...
  • 応用
    ...ツール In AB ブロック崩し じゃんけんゲーム 計算ゲーム ギャルゲーをつくろう テトリスをつくろう その他 ABのヘルプを充実させよう! AB2.62でウインドウ表示命令を使う 過去wiki HTTPの初歩 マウスキャプチャー ウィンドウのサブクラス化(1) リストビュー(3) リストボックス コンボボックス ボタン類 エディットボックス(1)
  • ブロック
    ファイアウォールでアクセス制限をかけること。
  • デッドロック
    マルチスレッドでもっとも危険な行為がデッドロック。 スレッドAとスレッドBがあってAがBの終了を待っている時にBがAの終了を待つ。 こうすると永遠に終わらないよね。 こんな関係のことをデッドロックと言う。 よくあるケース1 |メインスレッドがWaitForSingleObjectで待っている時にサブスレッドがSendMessageを呼ぶとデッドロックに陥る。 これはSendMessageは処理が完了するまで制御を戻さないから。回避するにはPostMessageを使う。
  • テトリスをつくろう
    テトリス程度なら練習程度につくるといいかも知れない。 作り方 テトリスは20x10マスで構成されたフィールドにブロックを積んでいくゲーム。 ブロックが落ちてきて1列揃うとその列が消え下に積んでいく。 だから #N88BASIC Dim tetorisu_is[20,10] As Byte でマップhあ感性。 次にブロックを定義しよう。 基本パターンは3x3マスのものと4x4(棒)で7パターンある。 Dim burokku[4,4,7] As Byte でブロックのメモリを確保。 あとはパターンを挿入すれば追い。 テトリスはリアルタイムゲームであるため 非同期入出力でなければいけない。 よって使える関数はIInkey$となる。 表示はPrint命令でもよいがかっこいい画面にするなら当然グラフィック命令を使う。 まあ、表示...
  • 構造化
    構造化 (こうぞうか)とは、ブロックにするプログラミングのこと。
  • If
    名称 |If~Then~Else 読み |いふ~ぜん~えろす 文法 |If condition Then [command1] [Else command2](一行形式) または If condition Then command1 Else command2 End If (ブロック形式) 説明 |条件分岐を行う。 conditionが真ならcommand1を、偽ならcommand2に進む。
  • Gotoによる最適化;分岐予測およびキャッシュヒット率の向上
    昨今CPUではますます分岐予測やキャッシュヒット率の向上が、大きな要素を占めている。 分岐予測 キャッシュメモリ Gotoはうまく使うことで、ループや分岐のの単純化出来る場合がある。 処理の大半はループ(とそれに絡む分岐)なので、Gotoは積極的につかうべきである。 キャッシュコンシステンシイ プロセッサのキャッシュメモリに入るコードか、そうでないコードでのレイテンシの問題のこと。 もし、ループ構文の中でロングジャンプが発生していた場合、キャッシュメモリの範囲を 超えたアドレスに頻繁にジャンプする事になる。 この振る舞いは、命令キャッシュの範囲を超えているので、命令キャッシュのコンシステンシイ に問題が生じキャッシュレイテンシに差が生じる。 一例としてはCore2マイクロアーキテクチャでは、一次命令キャッシュ内に収まるような小さな ジャ...
  • ウインドウにファイルをドラックドロップする方法
    メインウインドウのプロパティ、拡張属性から、ドラックドロップを許可する、をちぇっく。 ウインドウのイベントコードの中から、DropFilesをコーディング。 Sub MainWnd_DropFiles(hDrop As HDROP) Dim FileName[MAX_PATH-1] As ByteDim fpath As String 'FileName配列にファイルパスを1つ格納 DragQueryFile(hDrop,0,FileName,MAX_PATH) '使用後はドラッグ&ドロップに関する情報を解放 DragFinish(hDrop)fpath=MakeStr(FileName)msgbox hMainWnd,fpath,"File Path"End Sub 複数のファイルを受け取る場合も同様...
  • フロッピー
    フロッピーは個人用途では死滅したが、行政や企業では積極的に利用されているメディアである。 フロッピー前田
  • コンボボックス
    コンボボックスはエディットボックスとリストボックスを組み合わせたコントロール ユーザーにアイテム選択をさせるために使う 標準ではエディットボックス脇のボタンを押すことによってリストが表示されるドロップダウンタイプになっている [edit] コンボボックスのスタイル † RADで設定できるスタイルについて 無効(使用不可)~タブストップ 他と同じなので省略 タイプ コンボボックスの種類 ドロップダウン、ドロップダウンリスト、デフォルトの3種類 デフォルトはエディットボックスにリストボックス付けただけの代物。別々に作った方が良いと思う ドロップダウンはコントロール右側の▼を押すとリストボックスが表示されるタイプ。空白部分はエディットボックスで編集可能 ドロップダウンリストはドロップダウンと大体同じだがエディットボックス部分は編集できない オーナー描画~文字列あ...
  • 5150
    ヴァン・ヘイレンが1986年に発表したアルバム。 このアルバムは彼らが初の1位を記録したアルバムであり、 サミー・ヘイガーさんが加入した、重要なアルバムでもある。 ハードロックでは誰もが一度は通る道である。
  • ヴァン・ヘイレン
    ヴァン・*ヘイレン とは、アメリカの激しく有名なロックバンドである。 リーダー兼ギタリストのエドワード・ヴァン・ヘイレンは、ライトハンド奏法を普及させたことで有名である。 全米で5650万枚、全世界で8000万枚以上のアルバムセールスを記録している。
  • Loc
    名称 |Loc 読み |エルオーシー、ラストユーズオブカレント、ロック等 定義 |Loc(FileNum As Long) As Long 説明 |指定したファイル番号のファイルポインタ(位置)を取得します。 戻り値 |ファイルポインタが戻ります。 使用例 |#N88BASIC Open "test.txt" For Input As 1 Print Loc(1) Close(1) 参照 |
  • スレッド
    掲示板におけるスレッド スレッドとは。掲示板の構成要素のこと。トピックとも言われる。 スレッドは掲示板に特定のテーマを持つ小さな掲示板のようなものである。 扱う話題が多岐に渡る場合や人数の多い大きな掲示板では、話題が散漫になりがちで、議論が進行しなくなることがなくもない。 コンピュータにおけるスレッド スレッドとは、軽量プロセスと呼ばれる実行の主体。 スレッドとプロセスとマルチタスク WindowsなどのOSは、一つのCPUであっても同時に複数のソフトウエアが動作するように設計されている。 単一のCPUでも複数のソフトウエアを同時に利用可能なOSをマルチタスクOSと呼ぶ。 現在、一般的となったパーソナルコンピュータ用OSはマルチタスクOSである。 プログラムが実行される時、必ず一つのプロセスとしてコンピュータ上で実行される。OSからは 一つ...
  • チェックボックスを使う
    Win32プロジェクトを新規作成、コモンコントロールを使う、にちえっく。 メインウインドウにチェックボックスを貼る。 ボタンを貼る。 ボタンのイベントハンドらを書き、チェックボックスの状態を知る。 戻り値は、TRUE/FALSEで判定。 あとはチェックボックスの数だけ同じしょりをおこなう Sub MainWnd_CommandButton1_Click()Dim rtn As LongDim hcheck As HWNDhcheck=GetDlgItem(hMainWnd,CheckBox1)rtn=SendMessage(hcheck,BM_GETCHECK,0,0)msgbox hMainWnd,Str$(rtn)End Sub
  • GDI
    Windowsのグラフィクス全般を扱うサブシステムで、その内容は比較的広範囲で難易度は高め。 Windowsではすべてのグラフィクスはデバイスコンテキストというハンドル(ポインタ) によって示されるメモリー領域にアクセスする。 このデバイスコンテキストは、デバイスに依存しない形でデータを保存している。 データタイプが汎用的で特定のグラフィクスデバイスに依存しないが、やや抽象的で 実体がないデータだ。これをDIBといい、デバイス非依存ビットマップという。 通常、ウインドウズ上でグラフィクスを扱う時は、このDIBを扱っている事になる。 これに対し、DDBというものがある。これはデバイス依存ビットマップと呼ぶ。 データの構造がディスプレイデバイスに強く依存したもので、ウインドウズでは、 これらのDDB,DIBというレイヤーを通してグラフィクスを扱っている。 ...
  • リストボックス
    リストボックスはコントロールが所有するアイテムを一覧の中から選択できるコントロール [edit] リストボックスのスタイル † RADで設定できるスタイルについて 無効(使用不可)~タブストップ 他と同じなので省略 選択 一度に選択できるアイテムの数 選択無し、単一選択、複数選択。拡張はよくわからん オーナー描画 加筆plz ソート リストボックスに追加された文字列が自動的にソートされる これをチェックして無い場合は終端に文字列が追加される 複数列 アイテムを追加していって下端を超えた時に次の列の一番上にアイテムが追加される これを指定していると垂直スクロールバーは動作しない 通知 クリックイベントやダブルクリックイベントを親ウィンドウに通知する チェックされていないとRADのイベント処理でクリックを検出できない 水平スクロールバー 複数列の...
  • プラグイン/関連ブログ
    関連ブログ @wikiのwikiモードでは #bf(興味のある単語) と入力することで、あるキーワードに関連するブログ一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_161_ja.html たとえば、#bf(ゲーム)と入力すると以下のように表示されます。 #bf
  • クイックソート
    整列アルゴリズムのひとつ。 C.A.R.Horeにより開発された(The Computer Journal, 5 10-15, 1962)整列法で、分割統治法の一種。平均的には最も早くO(nlogn)程度の実行時間であるが、最悪の場合はO(n^2)にまで落ちる。安定ではない。 クイックソートのアルゴリズムは、以下のとおり。 適当な値xを選ぶ(この時、x未満の要素数とx以下の要素数を同程度にする) x未満の要素を前半に、x以上の要素を後半に集める 前半の要素数が2以上であれば前半をクイックソートする 後半の要素数が2以上であれば後半をクイックソートする このように配列を約二分割して、自分自身を再帰的に整列する(分割統治)。しかしながら、うまく二分割できない場合(例えば、一方に1個、もう一方に残り全て)は実行時間がn^2に比例する。よって、実行速度は入力デー...
  • Apple
    アップルとは、コンピューターやそれに関連するソフトを開発する世界的な会社。 一番偉い人はジョブスさん。 日本ではNECという会社がPC88シリーズを発売し、国内で圧倒的なシェアを獲得していた1980年代。 アップルはAppleIIというコンピュータで牙城を崩そうと奮戦した。 1990年代前半のNECのPC98時代にはMacintoshが軌道に乗り、 NECが死滅したWinows95以降のMS偏重時代にも一定のシェアを維持をした。 2001年WindowsがXPを発表。アップルは新しいUnixベースのMac OS Xを発表、これに対向した。 このことは、Unixが世界を支配したことを意味している。(WindowsNT系はPOSIX準拠) アップルは携帯音楽プレイヤーiPodの成功を皮切りに、iPhone,ipadとモバイル機器にも力を入れており、 とくにi...
  • 文字列処理
    文字列処理は重要です。ポインタが理解出来ているかどうかの重要な見極めにもなります。 基本 "今日は○○する気分ではない" という文字列は最後に0(ナル文字)がつきます。 ナル文字とヌルとヌルポインタの違いはその意味にあり、 ナル文字(NUL)はゼロ終端系文字列(*1)に於ける文字の終了 nullは無効な値 null pointerは無効なポインタ をそれぞれ意味します。 補足 1)ゼロ終端系でない文字列にはPASCAL文字列等があり、PASCAL文字列は処理速度に優れた特性があるため、Excel内部等で用いられている。 実際に使ってみよう Sting型に慣れている人は面倒だと思うけど、ついてきて欲しい。 1 byte型配列を使おう! #N88BASICDim mes[123] As Byte'1...
  • メッセージフック
    ッセージフックとは、Windowsのアプリケーションの仕組みを理解することです。 Windowsはアプリケーション間のメッセージのやりとりで動作しています。 ここでいうメッセージはオブジェクト指向のメッセージとは関係ありませんよ。 Windowsを佐川急便に例えます。アプリケーションは私たち顧客です。 顧客 1が 2に対しておっきくなれと伝えます これを伝えるのがWindowsの役割の一つです。
  • エディットボックス(1)
    エディットボックスについて † エディットボックスは文字や数字を入力できるコントロール 作られた直後は32KBまで編集可能 EM_SETLIMITTEXTメッセージを使うと最大で2GBか4GBまで増やせるが、9x系のOSだと64KBまでという制限がある エディットボックスのスタイル † RADで変更できるエディットボックスのスタイルについて 無効(使用不可) 入力エリアが灰色になって入力フォーカスを受け付けないが、Set、GetWindowTextは普通に使える 可視 チェックしておかないとエディットボックスが見えない グループ グループボックス?を参照 タブストップ 加筆plz 複数行 複数行のテキストが扱えるようになる 水平スクロールバー、垂直スクロールバー、垂直オートスクロールのスタイルが使用可能になる パスワードスタイルは使えない ...
  • ラディックス・ソート
    整列アルゴリズムのひとつ。 基数(radix)ソートとも呼ばれ、キーを桁ごとに処理していく整列法である。キーの桁数をm桁としたときの実行時間は O(m×n) と高速であり、また安定でもある。 入力データは、数字の桁数や文字列の文字数などキーの形式が定まっていることを前提とし、また各桁の処理に実行時間 O(n) である整列法(分布数えソートなど)を使用することから有限かつ最大・最小値の定まったものを必要とする。 そのアルゴリズムは以下のとおり。 入力データは、桁数ごとのキーに分類する。3桁の数字であれば、1の位・10の位・100の位など。 それぞれのキーについて、下位のキーから整列する。ここでの整列法の実行時間および安定性がラディックス・ソートのそれに影響する。 ここでは最速かつ安定であることを目指すことから、分布数えソートを使用する。 桁数が多いときでも、数桁をラディッ...
  • コールバック関数って何?
    コールバック関数は、事前に登録しておき、その後必要に応じて呼ばれる関数のことである。 通常、関数やプロシージャなどは、プログラム内のコードから呼び出され実行される。一例としてsin()、Math.sin() などの三角関数は、print sin(pi)などのようにプログラム内で記述が現れた際に実行される。 一般的な関数は、すべて手続きに従って呼び出され実行される。 これに対して、コールバック関数は通常の手続きの流れとは異なり、関数がプログラム内部の 主としたフロー内から呼ばれないものの事を指す。 コールバック関数は、与えられた関数名を予め登録しておき、主たる処理のフローとは個別に、 何らかの処理が必要になった場合に、システムによって呼び出される。 この仕組みは割り込みなどの仕組みに応用出来る。 コールバック関数は、言語上、明確に区別されるものではな...
  • N88BASIC互換モードでドラッグドロップを受け付ける
    #N88BASIC'自分のウインドウハンドルを取得Dim hwnd As HWNDhwnd = GetForegroundWindow()DragAcceptFiles(hwnd, TRUE)'どrを受け入れる'ウインドウプロシージャのサブクラス化Dim default_wndproc As *Function(a As Long, s As Long, d As Long, f As Long) As Longdefault_wndproc = GetWindowLong(hwnd, GWL_WNDPROC)SetWindowLong(hwnd, GWL_WNDPROC, AddressOf(Subclass1))'俺のプロシジャーFunction Subclass1(a As Long, s As Long, d As Long, f As Lo...
  • スタック
    メモリの一部。 関数のアドレスとか戻り値とか引数を入れるのに便利。
  • ルックス
    人間や、物の容姿のこと。見た目。
  • スタティックテキストの文字を変える
    メインウインドウにはったスタティックテキスト(ラベル)の文字を変える。 ボタンが押されたときに文字列を変えるなどの応用が可 Sub MainWnd_CommandButton1_Click()Dim hlabel1 As HWNDhlabel1=GetDlgItem(hMainWnd,Static1)SetWindowText(hlabel1,"hello")End Sub 以下のプロシージャを使っても同等。 Sub LabelText(hlbl As HWND,str As String)SetWindowText(hlbl,str)End Sub SetDlgItemTextを使ってもいいかもね。 Sub MainWnd_CommandButton1_Click()SetDlgItemText(hMainWnd,Static1,"h...
  • Mandelbrot (マンデルブロート) 集合
    /***********************************************************mandel.c -- Mandelbrot (マンデルブロート) 集合***********************************************************/#N88BASICConst M = 1000Const XMAX = 640Const YMAX = 400Sub main()Dim i As Long, j As Long, imax As Long, jmax As LongDim maxiter As Long, count As LongDim xmin, xmax, ymin, ymax, x, y, a, b, a2, b2, dx, dyDim color[M] As LongInput "xmin = ...
  • グラフィック
    映像による表現。
  • プラグイン/アーカイブ
    アーカイブ @wikiのwikiモードでは #archive_log() と入力することで、特定のウェブページを保存しておくことができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/25_171_ja.html たとえば、#archive_log()と入力すると以下のように表示されます。 保存したいURLとサイト名を入力して"アーカイブログ"をクリックしてみよう サイト名 URL
  • ステップ4 「RADツールに初挑戦」
    (Verによって画面がやや異なる。) 今まではMessageBox関数のみを使用した素朴な画面出力やったが、ここで本格的なGUIプログラムの開発に挑戦してみまひょ。「いろんな種類のウィンドウを、関数やらをいくつも使って生成するやつでしょ?」なんてゆう方、お絵かき感覚のウィンドウ デザインを是非、お試しおくんなはれちゅーワケや。 プロジェクトを生成してみまひょ RADツールを利用するためには、ノーマルウィンドウをベースにしたプロジェクトを作成する必要がおます。作り方は至って簡単、新規作成でプロジェクトを選択し、後は画面の指示に従って設定を施すだけや。 さっそく、プロジェクトの作成をしてみまひょ。 初めに、新規作成でプロジェクトを選択し、OKボタンをクリックしまんねん。 次に、プロジェクト名、保存先のディレクトリを設定しまんねん。プロジェクト名は...
  • ABによるアルゴリズム事典
    C言語による最新アルゴリズム事典 http //oku.edu.mie-u.ac.jp/~okumura/algo/をABに流用しようとしたプロジェクトがあった http //www.activebasic.com/aba/wiki.cgi ↑からサルベージしたもの 2次方程式 2分探索木 Bernoulli(ベルヌーイ)数 Bessel(ベッセル)関数 B木 Fibonacci(フィボナッチ)数列 Shellソート Ackermann (アッカーマン) 関数 面積 整数の積 ひも付き2分木 クイックソート コムソート シェーカーソート バブルソート ヒープソート マージソート ラディックス・ソート 幾何分布 逆三角関数 逆写像ソート 指数関数 正規分布累積関数 石取りゲーム2 石取りゲーム1 選択ソート 素因数分解 双曲線関数 挿入ソート 値の交換 分布数えソート 曜日 追加分...
  • GDIでバックバッファを用いてウインドウに線を書く
    ウインドウ再描画のもう一つは、メモリー内にGDIビットマップを保持するヴぃでおめもり領域を確保し、ペイントいべんとでバッファヴいでおめもりを描画。 描画はバッファヴぃでおめもりに対して行う。 MainWnd.sbp '-----------------------------------------------------------------------------' イベント プロシージャ'-----------------------------------------------------------------------------' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。' ウィンドウ ハンドル hMainWnd' TODO この位置にグローバ...
  • ファイル圧縮してみよう
    Common Archivers Library からCAB32.DLL 開発者 SDK v0.98をダウソしましゅ。 展開して、cab32.dllを、システムホルダに投入します。 ABのプロジェクトでウインドウにリストボックス(ID=ListBox1)とボタン(ID=CommandButton1) だけの画面を作ります。このとき、MainWndの拡張スタイルでドラッグ&ドロップを許可にします。 イカのコードをコピペします。終わり。 ----------------------------------------------------------------------------- イベント プロシージャ --------------------------------------------------------------------...
  • ABによる生成物集積所
    ActiveBasicで作成したプログラムをアップロードする場所です。 上にあるメニューから[編集]→[このページにファイルをアップロード]でアップロードできます。 説明も忘れずに付けましょう。 当然ここにあるものが全てではありません 簡単なメディアプレイヤー |AB4プロジェクト形式。 上手く動作しない部分もありますが基本的なことは出来ます。 EasyMediaPlayer.zip 手抜きゲーム(タイピング練習ソフト) |AB4.24でコンパイル確認。問題が少ないけど、結構楽しめると思います。 TypeOfAB.zip タイムスタンプ変換君(ユーティリティソフト) |AB4.24でコンパイル確認。ファイルのタイムスタンプ(作成日時、アクセス日時、更新日時)を任意に変更。ただし1600年1月1日以降 timemachin...
  • オブジェクト指向入門
    歴史的には、オブジェクト指向言語の源流は、Simula。それらを参考にEiffelやSmalltalkが 作られ、C++やらなんやらが作られはった。 オブジェクト指向の能書きは、シミュレーションの際に扱うデータの抽象化にあるんや。 たとえばやなあ、ウインドウを抽象的に扱う場合、座標をx,yと個々に変数を扱うより、 ウインドウちうオブジェクトのx,yちう抽象データ型があったほうが取り扱いやすいちうわけや。 プログラム中、変数を無数に無作為に定義するよりも、座標やベクトルちう構造を持って いたほうが理解しやすいやろ。 例えば、 dim x1 as integer dim y1 as integer ... という変数が、無数にあるよりも、 type axis x1 as integer y1 as integer end type という構造体...
  • メモリ
    メモリとはコンピュータの記憶装置のこと。 CPUから直接アクセスできるものをいい、主記憶装置などとも呼ばれる。 ハードディスク(HD)やフロッピーディスク(FD)とは区別される。 メモリには大きく分けてRead Only Memory(ROM)とRandom Access Memory(RAM)に分けられる。 ROMは基本的には不揮発性(電源がなくても中身が消えない)で読み出し専用であり、 BIOSやファームウェア、ROM-BASICを書き込むことが主流だった。 RAMは逆に揮発性で読み書き可能である。OSのメインメモリやRAMディスクとして使い方が一般的。 SDカードやUSBメモリもRAMであり、OSによってはメインメモリとして扱うことも可能らしい。
  • プラグイン
    @wikiにはいくつかの便利なプラグインがあります。 アーカイブ コメント ニュース 人気商品一覧 動画(Youtube) 編集履歴 関連ブログ これ以外のプラグインについては@wikiガイドをご覧ください = http //atwiki.jp/guide/
  • とりあえず実行ファイル作りたいんですけど。
    意味的に何もしない実行ファイルの作り方 1.ProjectEditorを起動する。 2.メニューから「ファイル(F)」というやつを探し、クリックする。 3.「新規作成(N) Ctrl+N」というやつを探し、クリックする。 4.「Basicプログラム (*.abp *.bas)」というやつが選択されている事を確認して、「OK」をクリックする。 5.メニューから「ファイル(F)」というやつを探し、クリックする。 6.「名前を付けて保存(A)」というやつを探し、クリックする。 7.とりあえずtestとかそんな名前を付けて保存する。保存した場所を覚えておくこと。 8.メニューから「ベーシック(B)」というやつを探し、クリックする。 9.「リリース コンパイル(C) F7」というやつを探し、クリックする。 10.ちょっと待つ。 11.さっき名前付けてなんか保存した場所に行...
  • ダイアログボックスをリソースから読み出してみよう
    次のプログラムはBasicCompiler.exeに含まれるActiveBasic Compiler Debuggerをメインウインドウにしてみる例。 このようにリーソースすることで、AB側のコードを大幅に減らすことができる。 Declare Function DialogBox Lib "user32" Alias "DialogBoxParamA" ( _ hInstance As HINSTANCE ,_ lpTemplateName As *Byte ,_ hWndParent As HWND ,_ lpDialogFunc As *DWord ,_ dwInitParam As *DWord ,_ ) As *Long Declare Function EndDialog Lib "User32&qu...
  • 呼出規約
    呼出規約(よびだし-きやく)とは、関数を呼び出すときの約束事のこと。 引数をどのような順番でスタックに入れるか、 また関数から返るときスタックの後片付けをどうするのかを決めている。 代表的な呼出規約にはcdecl(しーでくる)、stdcall(すたどこーる)、fastcall(ふぁーすとこーる)などがある。 ActiveBasicでは自前で作った関数は例外なくstdcallになる。(Ver5からはcdeclも使えるらしい。) Declareで宣言したDLL関数は規定ではstdcallになるが、CDECLを明記することでcdeclの関数も使える。 stdcall 引数は左から右にスタックに積まれる。スタックの掃除は関数側で行う。 cdecl 引数は右から左にスタックに積まれる。スタックの掃除は呼び出し側が行う。
  • ボタン類
    コマンドボタン † マウスクリックなんかの入力を受け付けるコントロール ↑ [edit] コマンドボタンのスタイル † RADで設定できるスタイルについて 無効(使用不可) 押せない 可視 チェックしておかないとボタンが見えない グループ グループボックス?を参照 タブストップ 加筆plz 標準のボタン 入力フォーカスを持ったボタンになる が、なぜかENTER押しても反応しない ABのダイアログボックスは擬似的な物なのでそれが本物だと反応すると思う。 オーナー描画 ボタンが描画されるタイミングでWM_DRAWITEMが親ウィンドウに送られます またボタンのウィンドウプロシージャは描画操作を全くしません(自分で描画しないと何も表示されない) アイコン 使ったこと無いからなんとも言えんがアイコンを表示するんじゃないの? ビットマップ ...
  • ステップ7 「メニュー コントロールを使う②」
    回は「終了」ボタンだけという非常にシンプルなメニューでしたが、今回は、ポップアップを取り入れ、複数の項目を持つメニューを作成してみます。 前回同様、ノーマル ウィンドウ ベースのプロジェクト(プロジェクト名を "MenuTest2" とします)を作成し、メニューの作成(IDは "MainMenu")、メインウィンドウへのメニューの貼り付けを行ってみて下さい。やり方をもう一度確認したいよ、という方は、前回「ステップ6」のページをご確認下さい。 それでは、"MainMenu" を開き、メニュー項目を追加していきましょう。まずは「挿入」ボタンをクリックし、1つ目の項目を挿入します。以後、メニューを挿入するときは、挿入したい場所の1つ上の項目を選択した状態で「挿入」ボタンをクリックするようにすることを覚えておくと便利です...
  • ステップ6 「メニュー コントロールを使う①」
    大抵のアプリケーションなら備えているメニューコントロールはRADツールからも作成することができます。Windowsアプリケーションには欠かせないメニューコントロールは是非とも自由に操作できるようにしておきたいものです。 本題に入る前に、下地となるノーマル ウィンドウ ベースのプロジェクトを生成しておいて下さい(プロジェクト名を "MenuTest" とします)。 今回は、メニューコントロールを使って「終了」ボタンを作ってみます。項目が1つだけという非常に簡単なメニューです。 では、作成したプロジェクトが開かれた状態になったところで、早速メニューの作成をしていきましょう。プロジェクト ビューのMaterialタブを開くと、「メニュー」フォルダがありますね?(プロジェクトビューが表示されていない場合は、メニューの「表示」→「プロジェクト ビュー」にチェッ...
  • ステップ20 「プロセス デバッガによるデバッグに挑戦」
    プログラミングはしてみたけど、いざ実行すると強制終了してしまう。なんでぇ~( _ ) この変数の値がちゃんとしてるか、MessageBoxでいちいちチェックするのって面倒… そこのあなた、こんなお悩み抱えていませんか?こんなときに登場するのが「プロセス デバッガ」。デバッグのやり方さえ覚えてしまえば、これらの問題はスマートに解決できます。 そもそも、デバッグって何? 「デバッグ」=「バグを取り除く」などという意味を持ちますが、一般的に、作ったプログラムに不具合はないかを、コードを一つ一つチェックしながら実行したり、任意のタイミングで変数の内容を表示しながら実行するといったことをしてチェックします。 論より証拠、実際にデバッギングを体験してみましょう。 まずは誰が見てもおかしいことに気付くプログラムをリリース コンパイル(F7キー)し、実行してみます。 Dim i...
  • 継承とコンポジション
    継承とは誰かが作ったクラスを受け継ぐことです。技術の伝承です。 コンポジションは誰かが作ったクラスを取り入れるです。合成とか層化とかいいます。 この2つはよくis-aとかhas-aといった区別をします。 簡単に言えば 親クラスのすべてが子クラスに適用できるなら継承、 子クラスが親クラスを包含している場合や親クラスの一部を使いたいときはコンポジションを使うべきです。 この親子関係は大変ややこしいので、次のように子クラスから親クラスを求めることがあります。 ABのコントロール(スタチックとかエディットボックスとか)を簡単に扱うクラスがほしい! このときこれらコントロールに共通する部分を抜き出します。 すると… コントロールはすべてウインドウハンドルを持っている コントロールはすべてキャプションを持っている コントロールはすべて可視/不可視状態を設定できる コントロ...
  • 再帰
    関数内で、自身の関数を呼ぶ処理のこと。再帰的関数を使う事で、ある種のアルゴリズム表記を端的に 表現可能な場合もあるが、多くの場合、デバックや可読性に難が生じる場合がある。 一般に、再帰的表現はループ展開による表現が可能である。 '再帰Function sum41(a As long, b As long) as longif a b then exit functionsum41=a+sum41(a+1,b)End Function#N88BASICPrint sum41(sum41(1,sum41(-1,3)),sum41(sum41(1,sum41(1,2)),9)) 再帰的処理では、自身の関数を呼ぶので、結果として無限ループとなる。したがって、通常はif文などを 用いて停止条件などを指定する必要がある。 しかし実際には再帰的関数は、幾つかの手続き型言...
  • @wiki全体から「ブロック崩し」で調べる

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