有一个应用程序,我想通过一触发事件(比如点击按钮),使得屏幕的光标显示在该程序源码某方法的实现位置,同时可以返回该位置的行号。效果就好比delphi编译后双击提示框中的错误项,就可显示在出错的地方。不知道怎样实现呢?

解决方案 »

  1.   

    >>有一个应用程序,我想通过一触发事件(比如点击按钮),使得屏幕的光标显示在该程序源码某方法的实现位置你想你的程序編繹成 exe 後還帶源碼??設置選中 菜單Options -- compiler 
    中的 uses debug dcus
    不要選中 Optimization還有選中 Linker 中的
     include TD32 debug info你的程序會大好多倍, 但會帶上調試信息, 在這個基礎上可以定位源碼的位置
      

  2.   

    是不是想实现DELPHI的Alt+G的行数定位功能啊
    找找源码看看
      

  3.   

    我也想写这样的一个程序,我用masm测试过,它会自动指出错误的代码行.返回位置行号的代码:
    Procedure TForm1.GetPosition(Sender: TRichEdit);
    var
      iX,iY  : Integer;
      TheRichEdit : TRichEdit;
    begin
      iX := 0; iY := 0;
      TheRichEdit := TRichEdit(Sender);
      iY := SendMessage(TheRichEdit.Handle, EM_LINEFROMCHAR, TheRichEdit.SelStart,
      0);
      iX := TheRichEdit.SelStart - SendMessage(TheRichEdit.Handle, EM_LINEINDEX,
      iY, 0);
      Panel1.Caption := IntToStr(iY + 1) + ':' + IntToStr(iX + 1) ;
    end;procedure TForm1.RichEditMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      GetPosition(RichEdit);
    end;procedure TForm1.RichEditKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      GetPosition(RichEdit);
    end;
      

  4.   

    在异常处理的地方,使用 ASSERT(FALSE) ,会弹出函数 然后你自己解析一下函数 那么就可以估计出出异常的地方 不过有可能出现几行的误差
      

  5.   

    谢谢大家!helldream2002:我想过文件处理,但怎样让程序自己知道引用了哪些单元,以及该方法或函数又在哪一个单元呢?xiyixiaowm50:我的qq:71108209。先谢谢了!beyondtkl:异常处理的地方?可以具体一些吗?我现在也不知道哪里会出现异常啊。多谢!
      

  6.   

    好像大家还没能理解我的意思,看来是我表达得不清楚啊!说得具体点吧,就是有几个project,我怎样通过程序控制得到它引用了哪些单元,各个单元中有哪些方法?
    如果能够知道这个方法所在的pas文件名的话,我想问题就可以解决了。