是不是你的代码有错误,使到IDE分析不出来这个变量的定义在那里?

解决方案 »

  1.   

    我的代码一定没有错误,以为它可以正常运行。比如想在代码中找到一个自定义过程、函数、变量等的声明的地方时,可以用CTRL+鼠标单击就可以跳到声明的地方,但是我的就是不跳,也许是什么原因呢?请大家拉兄弟一把吧!
      

  2.   

    to:zswang
    你说的是什么意思?
      

  3.   

    系统不支持在调试环境中CTRL+鼠标单击跳到声明的功能(也许考虑系统资料)
      

  4.   

    to:zswang那么,不在调试的情况下,应该能使用我说的这个方法吧?为什么也不行呢?
      

  5.   

    (*
    不能跳的可能分析
    No.1 没有单元文件pas
    No.2 调试运行状态
    No.3 语法编译不通
    No.4 系统内存被破坏
    No.5 Delphi设置成其他方式
    No.6 Delphi被破坏
    No.7 鼠标左键失灵
    No.8 Ctrl键失灵
    No.9 标识错误
    No.10 其他
    *)
      

  6.   

    什么地方都不能跳unit Unit_Call;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons, ExtCtrls, Db, DBTables, Grids, DBGrids, Spin;type
      TFrmCall = class(TForm)
        Panel1: TPanel;
        Label1: TLabel;
        CombId: TComboBox;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
        QryId: TQuery;
        CobGsm: TComboBox;
        Ptime: TPanel;
        Label2: TLabel;
        Label3: TLabel;
        DBGrid1: TDBGrid;
        DS: TDataSource;
        Lb: TRadioGroup;
        Edit_mini: TSpinEdit;    procedure CombIdChange(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure Edit_miniChange(Sender: TObject);
        procedure LbClick(Sender: TObject);
        procedure DBGrid1DblClick(Sender: TObject);
      private
        FCallcode:string;
        FCallGsm:string;
        FCallInterval:string;
        Procedure SetCallcode(valuesCode:string);
        Procedure SetCallGsm(valuesGsm:string);
        Procedure setcallinterval(value:string);
        { Private declarations }
      public
        property CallGsm:string read FcallGsm write SetcallGsm;
        Property callCode:string read FcallCode write Setcallcode;
        Property CallInterval:string read FCallInterval write SetCallInterval;
        { Public declarations }
      end;var
      FrmCall: TFrmCall;implementationuses Sub;{$R *.DFM}procedure TFrmCall.CombIdChange(Sender: TObject);
    begin
     // CobGsm.ItemIndex:=CombId.ItemIndex;
      CobGsm.ItemIndex:=combid.Items.IndexOf(trim(combid.text));
      if not CheckValidNumber(CombId.Text) then   begin
           MessageBoxEx(self.handle,'请输入数字!','信息',MB_OK OR MB_ICONEXCLAMATION
           OR MB_DEFBUTTON1,LANG_CHINESE) ;
         exit;
      end;
      if length(trim(combid.text))=6 then
      begin
         if qryid.active then
         qryId.close;
         QryId.sql.Clear;
         QryId.SQL.Add('select *  from Vehiclem where vehicleCode='''+trim(combid.text)+'''');
         QryId.open;
         Ds.DataSet:=QryId;
      end;end;procedure TFrmCall.FormShow(Sender: TObject);
    var
     i:integer;
    begin
      combid.Clear;
      cobGsm.Clear;
      if  qryid.active then
      qryId.Close;
      qryId.Open;
      Qryid.First;
      for i:=0 to Qryid.RecordCount-1 do begin
        combid.Items.Add(Qryid.fieldbyname('vehicleCode').asstring);
        CobGsm.Items.Add(Qryid.fieldbyname('VehicleGsm').asstring);
        Qryid.Next;
      end;
      combid.ItemIndex:=0;
      CobGsm.ItemIndex:=0;
      lb.ItemIndex:=0;
      {case EnterParameterType of
        TPClearAlarm,TPstartAlarm, TPStopCall,TPOneCall: begin
                Ptime.Visible:=false;
               end;
          TpendGap, TPSetGap,TPMultiCall: begin
                Ptime.Visible:=true;;
               end;
      end;}
    end;
    procedure Tfrmcall.SetCallcode(valuescode:string);
    begin
      if FCallcode <> valuescode then
         Fcallcode:=valuescode;
    end;
    procedure TfrmCall.setCallGsm(valuesGsm:string);
    begin
      if FCallGSm <> valuesGsm then
         FcallGsm:=valuesGsm;
    end;
    procedure TFrmCall.BitBtn1Click(Sender: TObject);
    begin
      if length(trim(ComBId.Text))<>6 then
      begin
         MessageBoxEx(self.handle,'请输入六位代码!','信息',MB_OK OR MB_ICONEXCLAMATION
           OR MB_DEFBUTTON1,LANG_CHINESE) ;
         ComBId.SetFocus;
         exit;
      end;
      case  lb.ItemIndex  of
          0:EnterParameterType := TPOneCall;
          1:EnterParameterType := TPMultiCall;
         // 2:EnterParameterType := TPStopCall;
      end;
      CallCode:=trim(QryId.fieldbyname('vehicleCode').asstring);
      //trim(ComBId.Text);
      CallGsm:=trim(QryId.fieldbyname('VehicleGsm').asstring);
     //trim(CobGsm.Text);
     if lb.ItemIndex=1 then begin
        if calllist.IndexOf(CallCode)=-1 then 
          Calllist.add(CallCode);               //呼叫号码
     end;
     if  trim(edit_mini.text)='' then
       edit_mini.text:='0';
     CallInterval:=trim(Format('%0.4D', [strtoint(trim(edit_mini.text))]));
      
     end;procedure TFrmCall.Edit_miniChange(Sender: TObject);
    begin
        if not CheckValidNumber(trim(edit_mini.Text)) then   begin
           MessageBoxEx(self.handle,'请输入数字!','信息',MB_OK OR MB_ICONEXCLAMATION
           OR MB_DEFBUTTON1,LANG_CHINESE) ;
         exit;
      end;
    end;
    procedure TfrmCall.setCallInterval(value:string);
    begin
      if FCallInterval <> value then
         FcallInterval:=value;
    end;
    procedure TFrmCall.LbClick(Sender: TObject);
    begin
      case  lb.ItemIndex  of
          0:EnterParameterType := TPOneCall;
          1:EnterParameterType := TPMultiCall;
         // 2:EnterParameterType := TPStopCall;
      end;
    end;procedure TFrmCall.DBGrid1DblClick(Sender: TObject);
    begin
      GetCodeIndex(Sender,CombId);
    end;end.
      

  7.   

    let me try! 
      over!
      

  8.   

    问题:为什么我在DELPHI5中按住CTRL键再用MOUSE点函数名,回不到函数定义的地方? ( 积分:50, 回复:7, 阅读:47 )
    分类:IDE/使用技巧 ( 版主:luyear, menxin )  
    来自:ilovedelphi2, 时间:2001-9-9 3:08:00, ID:617129 [显示:小字体 | 大字体]  
    为什么我在DELPHI5中按住CTRL键再用MOUSE点函数名,回不到函数定义的地方?
    我没有改变什么设置呀?还有,CTRL+SPACE键呼出“代码指示”,这个热键能不能改成其他热键?谢谢!
     
     
    来自:menxin, 时间:2001-9-9 6:40:00, ID:617137 
    那是因为IDE并没有在各单元找到你的函数定义,你将MOUSE停在函数上,如能出现定义,就可以用CTRL找到位置。
     
     
    来自:ilovedelphi2, 时间:2001-9-10 0:18:00, ID:617987 
    问题是以前就是这段代码,可以回去,现在却不行了。 
     
    来自:龙丹, 时间:2001-9-10 4:22:00, ID:618012 
    路径设对(Browsing path),编译一下;
    内存不够(Delphi吃得多),退出重进
     
     
    来自:plaw, 时间:2001-9-10 9:40:00, ID:618168 
    这种情况很多见。特别是程序很大以后。或者前面运行过的程序异常退出等等。一般只要设置正确,重新运行Delphi即可。另外,俺有一个小秘诀,就是按住Ctrl狂点,有时候也可以生效。
     
     
    来自:ilovedelphi2, 时间:2001-9-10 17:43:00, ID:618961 
    怎么样才算设置正确呢?
     
     
    来自:Kingron, 时间:2001-9-10 17:49:00, ID:618971 
    哈哈,错了,这是因为你的DCU文件不包含调试信息!到Project Options中的Compiler中
    把调试信息都选上,然后Build All即可。不过如果你没有修改过,那么有的文件可能不会被
    Build,你随便修改一下,然后Build就可以了。
     
     
    来自:ilovedelphi2, 时间:2001-9-10 18:32:00, ID:619054 
    重新编译就解决了。
     
     
      

  9.   

    我试了试,可以呀!你看看你的工程(dpr)是不是加了Unit_Call.pas和Sub.pas