CnPack Forum » CnPack IDE 专家包(CnWizards) » 【我是因为想骂人才注册的】 cndebug 开发人员真的应该被骂


2008-2-2 22:24 linlance
【我是因为想骂人才注册的】 cndebug 开发人员真的应该被骂

我先说一下,我刚才骂了半天,这个论坛居然标题超过长度,就把帖子内容清空了,靠。也不知道谁架设的论坛,3年前的论坛都不会这样的。

刚才的都没有了,我重新打一下:
看看开发大大们对于CNDEBUG的回答:
==========================================
[size=12px][url=http://bbs.cnpack.org/viewpro.php?uid=703][color=#0000ff]kendling[/color][/url] (小冬)  发表于 2007-4-11 07:46   [color=red]试一下在工程选项里定义DEBUG。[/color][/size]
[size=12px][url=http://bbs.cnpack.org/viewthread.php?tid=1529&highlight=cndebug]http://bbs.cnpack.org/viewthread.php?tid=1529&highlight=cndebug[/url]

[url=http://bbs.cnpack.org/viewpro.php?uid=359][color=#0000ff]Passion[/color][/url] (LiuXiao) 发表于 2006-8-10 08:52  [color=red]DEBUG 需要在 Project Options 对话框里头设置[/color][/size]
[size=12px][url=http://bbs.cnpack.org/redirect.php?goto=newpost&tid=1157]http://bbs.cnpack.org/redirect.php?goto=newpost&tid=1157[/url][/size]
[size=12px]==========================================[/size]

以上的回答,能让人明白怎么做嘛?虽然也许对大大们来说,跟1+1等于几的问题一样,从未站在别人的角度考虑过问题。
也就是根本不站在客户的角度上看问题。技术人员的悲哀啊。。。

这是我唯一找到的说明,对老外的:
[size=12px]==========================================
[url=http://bbs.cnpack.org/viewpro.php?uid=34][color=#0000ff]shenloqi[/color][/url] 灌水科科长 发表于 2007-9-14 13:48  project options -> Directories/Conditionals[/size]
[url=http://bbs.cnpack.org/viewthread.php?tid=1791&highlight=cndebug]http://bbs.cnpack.org/viewthread.php?tid=1791&highlight=cndebug[/url]
[size=12px]==========================================[/size]

写个说明真的那么难嘛?我写第二遍了,第一遍刚才被狗屁论坛给清空了:
==========================================
在菜单Project-->option-->Directories/Conditionals 中的Conditionals 区域填入[color=red]{$DEFINE DEBUG}[/color] 或者[color=red]DEBUG[/color]
[color=red][color=#333333]就可以全局使用DEBUG了,最后编译的时候如果不想输出调试信息,修改为 [color=blue]N[/color][color=red]DEBUG [/color]就可以了。[/color]
[/color][size=12px][/size]
[size=12px]在需要调试的单元里如下位置,加入红色字部分:[size=12px][/size]
implementation
[color=red]{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}[/color][/size]
[size=12px][color=#ff0000][/color]
在需要调试地方加入红色字部分:
[color=red]{$IFDEF DEBUG}
  CnDebugger.StopTimeMark(1);
  CnDebugger.LogLeave('Leave btn1Click.');
{$ENDIF}[/color]
[size=12px][/size]
在更多的方法,就自行看DEBUG.PAS吧,哈哈哈:)


[/size]

[[i] 本帖最后由 linlance 于 2008-2-2 22:44 编辑 [/i]]

2008-2-2 22:46 linlance
这个说明连安装包里面的帮助文件都没有写清楚。。。

不得不承认,这个工具包非常非常棒,值得推荐。我放在我的精品收藏里面了。

2008-2-2 22:48 gzf205
h

[[i] 本帖最后由 gzf205 于 2008-2-2 22:50 编辑 [/i]]

2008-2-2 23:29 Passion
实际上,网站上的组件帮助文档里头的《CnDebugger接口帮助文档 》里头有这部分的说明。
文档中心见下:
[url=http://www.cnpack.org/showlist.php?id=3&lang=zh-cn]http://www.cnpack.org/showlist.php?id=3&lang=zh-cn[/url]

组件包的Doc目录下也有这个文档。
此文档的第二节CnDebugger对象说明了在Project Options中设置,不过确实没有写到“Directories/Conditionals 中的Conditionals 区域”这么详细。

CnPack的文档和帮助部分一直由于人力不足而做的很不完善,感谢您的指出。
其实我们也希望有更多的朋友参与。

2008-2-4 09:04 niaoge
1.:lol: ,"这个论坛居然标题超过长度,就把帖子内容清空了"--我不敢骂,怕老大踢我
2.CnDebug,目前输出只能有字符串,不像codesite能够直接输入各种类型,我说的是直接,这个方便

2008-2-4 09:31 Passion
niaoge,你说的直接输入类型具体是指什么?CnDebug也提供了部分直接输出基本类型的函数。

2008-2-4 10:16 niaoge
用overload 统一统出函数的函数名像 LogMsg,LogInteger,LogEnter,LogLeave,LogFmt,LogStrings,LogFmt....
统一起来,能统一多少就统一多少,方便搞,另外加一些稍不常用的类型word,DWORD,LongWord,Char,PChar...(不知道有没有,老大,如果我说错了,不能怪我啊),或其它进制输出
特别是其它进制的输出,可以直接在windows.pas内查找到输入的是什么,因为人工找的话还要先做转换,
像 VK_LEFT,VK_HOME等,能否直接用名称而不用数据代替(不过这个难度好大:lol )

[color=black]{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}[/color]
[color=black]略显麻烦,能否做一个单独的单元,直接让用户加在每个工程的uses下面, 让这个单元直接一次性控制是否要输出,[/color]

[[i] 本帖最后由 niaoge 于 2008-2-4 10:22 编辑 [/i]]

2008-2-4 11:01 Passion
{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}
这样的代码如果怕麻烦,可以直接使用
uses
  CnDebug;
CnDebug单元中如未定义DEBUG,内部也基本不做什么,不占什么资源。
你说的工程uses下面加单元的法子可以考虑,但即使工程uses处加单元,用户的各个单元还是得uses Cndebug才能输出信息哇。

2008-2-4 11:14 Passion
不常用的这些类型word,DWORD,LongWord,Char,PChar..Cndebug里头确实没加上去。不过这部分加上去也不是太困难。niaoge有兴趣改改它不?:lol:

2008-2-4 16:04 niaoge
老大,我现在没有时间啊,再说cndebuger的代码我还不熟悉呢,
我现在一直用codesite调试,只要codesite还没有收钱,就先不管啦:lol
做一个公共单元,很容易的,这样用户正式发布的时候不需要再把这个公共单元清理掉,也不必考虑占用资源的问题
因我不常用cnDebug,暂把格式写下来

unit usesCndebug
{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}

procedure LogMsg(..);
procedure LogInteger(..);
procedure LogEnter(..);
procedure LogStrings(..);
procedure LogFmt(..);

implementation
procedure LogMsg(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogMsg(..);
  {$ENDIF}
end;
procedure LogInteger(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogInteger(..);
  {$ENDIF}
end;
procedure LogEnter(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogEnter(..);
  {$ENDIF}
end;
procedure LogStrings(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogStrings(..);
  {$ENDIF}
end;
procedure LogFmt(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogFmt(..);
  {$ENDIF}
end;

end.

[[i] 本帖最后由 niaoge 于 2008-2-4 16:16 编辑 [/i]]

2008-2-29 19:12 kendling
这个公共单元只是对CnDebugger的函数多加了一层,应该跟直接调用没多大差别。

2010-7-15 10:04 farce
还是没明白怎么使用

在PROJECT的OPTION中设置了,然后怎么办?怎么处理?不使用这{$IFDEF DEBUG}呢?到底是做什么用的?与ExceptionLog有什么区别?

2010-7-16 10:39 Passion
Project Options里头设置了DEBUG的话,就可以在程序中用CnDebugger.Log系列函数输出信息到CnDebugViewer来查看。

如果未设置DEBUG,可以直接用CnDebugger.Trace系列函数输出信息。

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.