捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
盒子资源分类
全部展开 - 全部合拢
一个 Debug 窗口类 v0.9beta
关键字:DbgWnd Debug.Print 窗口类
来 自:原创
平 台:Win9x,Win2k/XP/NT,Win2003 下载所需:0 火柴
深浅度:初级 完成时间:2006/7/11
发布者:qsmile 发布时间:2006/7/11
编辑器:DELPHI7 语  种:繁体中文
分 类:不常用 下载浏览:0/9380
加入到我的收藏
下载错误报错
登陆以后才能下载
 用户名:
 密 码:
自动登陆(30天有效)
无图片
我最早是用 VB 的,后来才用的 Delphi .相比而言我很喜欢用 Delphi .

但 VB 下有个功能.我却恋恋不忘.那就是它内置的 debug 类.如果程序想输出什么调试信息,直接用 debug.print 就可以了. Delphi 没这个功能.不过有更强大的 CodeSite 之类的.问题也不是很大.

但现在我要用 Delphi 做纯 API 的开发.所以我就写了这样一个类.

unit DbgWnd;

//////////
//  Class Name: Debug Windows
//  Author    : RedFox (singlecat@163.com)
//  Date      : 2006-07-11
//  Version   : 0.9beta
//  使用方法:
//          把这个单元引入工程. 要输出调试信息就用 debug.write 就可以了
//  需引进的地方:
//          类的 ReadAnyKey(); 我想做成 '按任意链继续...'没做完,希望谁能帮我完成          
//////////

interface

uses
  Windows;

type
  TDbgWnd = class
  private
    m_hConsole:THandle;
  public
    constructor Create;
    destructor Destroy;override;
    procedure write(str:string);
    procedure read(var str:string);
    procedure ReadAnyKey();
  end;

var
  debug :TDbgWnd;

implementation

{ TDbgWnd }

constructor TDbgWnd.Create;
begin
 AllocConsole;
 m_hConsole := CreateConsoleScreenBuffer(GENERIC_READ or GENERIC_WRITE,
         FILE_SHARE_READ or FILE_SHARE_WRITE, nil, CONSOLE_TEXTMODE_BUFFER, 0);
 SetConsoleActiveScreenBuffer(m_hConsole);
 SetConsoleMode(m_hConsole,ENABLE_LINE_INPUT or ENABLE_ECHO_INPUT);
 SetConsoleTitle('debug window') ;
end;

destructor TDbgWnd.Destroy;
begin
  FreeConsole;
  inherited;
end;

procedure TDbgWnd.read(var str: string);
var
  n:DWORD;
  buf:array[0..256] of char;
begin
  n := 0;
  ReadConsole(m_hConsole,@buf[0],256,n,nil);
  SetString(str,PChar(@buf[0]),Integer(n));
end;

procedure TDbgWnd.ReadAnyKey;
var
  s:string;
begin
  self.write('Press Any Key to continue....');
  Self.read(s);
end;

procedure TDbgWnd.Write(str: string);
var
  n:DWORD;
begin
  WriteConsole(m_hConsole,
          PChar(str+#13#10),
          Length(str)+2,
          n,
          nil);
end;


initialization
  debug := TDbgWnd.Create;

finalization
  debug.Free;

end.
Google
 
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们
龙脉加密锁 15元起 Grid++Report 报表 申请支付@网
 相关文章
没有相关文章
相关评论
共有评论4条
我要发表评论 查看全部评论
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表