名前 題名 ▼ TSさん > //以下てすとコード > Memo1は使っていません。 > ボタンのみでテストしてます。 > > unit Unit1; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls, Buttons; > > type > TForm1 = class(TForm) > BitBtn1: TBitBtn; > Memo1: TMemo; > procedure BitBtn1Click(Sender: TObject); > private > { Private 宣言 } > public > { Public 宣言 } > end; > > var > Form1: TForm1; > > implementation > > {$R *.dfm} > > uses tvif; > > procedure wait_command(wait_val:integer); > begin > while tvifGetStatus() <> wait_val do > begin > end; > end; > > > (* > static void help(void) > { > printf("ボブクロック\n2つの割り込みを使用したサンプルプログラムです。\nこのプログラムはオートリジュームオフで動作しています。\n"); > } > *) > > function FileSizeEx(const FileName: String): Integer; > var > R: TSearchRec; > begin > if FindFirst(FileName, faAnyFile, R) = 0 then Result := R.Size > else Result := -1; > FindClose(R); > end; > > > function read_script(filename:string;var script:Pchar):boolean; > var FS:TFileStream; > ByteA:TByteArray; > PByteA:^TByteArray; > begin > result:=False; > if FileExists(filename) then > begin > FS:=TFileStream.Create(filename,fmOpenRead); > FS.Read(ByteA,FileSizeEx(filename)); > script:=@ByteA; > result:=True; > FS.Free; > end; > end; > > procedure TForm1.BitBtn1Click(Sender: TObject); > var script:Pchar; > begin > tvifInit(0,TVIF_DEFAULT_SCRIPT_LINE,TVP_ON); > // オートリジュームをオンに設定 > tvifAutoResumScript(TVP_OFF); > > // CGモデルを常駐させる。 > tvifModelStationed(TVP_ON); > tvifSetWindowPosition(0,0); > // スクリプトが停止したときの状態の指定 > // tvifSetStopTypeで指定される状態に切り替えない場合は下記のように指定する。 > // ディフォルトはTVP_ON。 > tvifSetStopMode(TVP_OFF); > > // プレイヤーの起動 > if (tvifSetCommand(TVP_EXECUTE) = TVP_OK) then > wait_command(TVP_STOP); // showmessage('test'); // > //if read_script('bobclock.tvml',script) then > if read_script('kaiwa.tvml',script) then > begin > tvifSetScript(script); > // メインスクリプトの更新 > tvifSetCommand(TVP_UPDATE_SCRIPT); > // プレイヤーの更新を待つ > wait_command(TVP_UPDATE_SCRIPT); > // 再生 > if tvifSetCommand(TVP_PLAY) = TVP_OK then > wait_command(TVP_PLAY); > end; > // スクリプト再生が停止したら(ここでは、割り込み&メインスクリプト共に監視する。) > repeat > until tvifGetStatus = TVP_STOP; > > > tvifSetCommand(TVP_SHUTDOWN); > tvifExit(); > end; > > end. GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link