捕捉 midi 输入消息的基本程序
2021-05-01 00:24
585 查看
捕捉 midi 输入消息的基本程序
uses MMSystem; var hMidiIn: Integer; procedure midiCallBack(hdrvr: HDRVR; uMsg: UINT; dwUser: DWORD; dw1, dw2: DWORD) stdcall; begin case uMsg of MIM_OPEN: ; MIM_CLOSE: ; MIM_DATA: Form1.Memo1.Lines.Add(IntToStr(dw1)); MIM_LONGDATA: ; MIM_ERROR: ; MIM_LONGERROR: ; end; end; procedure TForm1.Button1Click(Sender: TObject); begin midiInOpen(@hMidiIn, 0, Cardinal(@midiCallBack), 0, CALLBACK_FUNCTION); midiInStart(hMidiIn); Caption := IntToStr(hMidiIn); end; procedure TForm1.Button2Click(Sender: TObject); begin midiInStop(hMidiIn); midiInClose(hMidiIn); Caption := '0' end;
相关文章推荐
- Delphi XE2 之 FireMonkey 入门(9) - TBitmap
- C#综合揭秘——细说进程、应用程序域与上下文之间的关系C#综合揭秘——细说多线程(下)”
- WCF揭秘——共享数据契约
- 使用泛型, 写一个为任意类型的动态数组添加元素的方法
- 准备理一下菜单和工具栏相关的组件
- 发现 TSplitter 在嵌套时不好用, 索性写了个替代品
- Action 相关组件
- WF工作流与Web服务的相互调用 —— WF与WCF互相调用(利用ReceiveActivity把WF发布为WCF)
- WF工作流与Web服务的相互调用 —— 以InvokeWebServiceActivity在Workflow工作流调用Web服务
- WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(开发持久化工作流)
- WF工作流与Web服务的相互调用 —— 通过Web服务调用Workflow工作流(基础实例)
- 让自己的列表类支持遍历
- 善用泛型数组
- WCF揭秘——可靠性会话功能
- ActionScript 3.0 记要(2): 类与接口
- 理解浮点数的储存规则
- 运维安全应该怎么做?
- 通过消息跨进程发送与接收 TCopyDataStruct 数据 - 回复 "skymesh"
- 使用多窗体时, 关于节约内存和加快启动速度的思考与尝试
- 从哪查找当前程序所有可用的环境变量?