Announcement

Collapse
No announcement yet.

Programmierhilfe nur innerhalb einer Unit ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Programmierhilfe nur innerhalb einer Unit ?

    Hallo, ich habe folgendes Problem: <br>Ich habe in Delphi 5 die Programmierhilfe komplett eingeschaltet. <br>Wenn man dann mit gedrückter Control-Taste auf eine unit-interne Variable/funktion klickt, wird ja ein Hyperlink erstellt und man springt automatisch zur entsprechenden Deklaration, was ja eine feine Sache ist.<br>
    Ist es normal, dass das für aus anderen Units stammende Funktionen/Variablen nicht funktioniert?<br><br>
    In meinem Projekt sind alle selbstgeschriebenen Units in der Projektverwaltung eingetragen, Suchpfade habe ich nicht gesetzt(abgesehen von den Standard-Delphi-Suchpfaden).<br>
    Mach ich was falsch oder geht das generell nicht? <br>
    Gruß
    Alex

  • #2
    Hallo,

    ich kann das Verhalten mit Delphi 5 UpdatePack#1 nicht reproduzieren, ich kann direkt zur Prozedur TestInterface springen:
    <pre>
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, Unit2;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    TestInterface;
    end;

    end.
    </pre>
    Die folgende Unit wird über die Projektoptionen eingebunden, die im <b>Interface</b>-Abschnitt deklariere Prozedur wird über STRG+Mausklick aus der Unit1 heraus gefunden.
    <pre>
    unit Unit2;

    interface

    uses Windows, Messages, SysUtils, Classes, Dialogs;

    procedure TestInterface;

    implementation

    procedure TestInterface;
    begin
    ShowMessage('procedure TestInterface;');
    end;

    procedure TestImplementation;
    begin
    ShowMessage('procedure TestImplementation;');
    end;

    end.
    </pre&gt

    Comment


    • #3
      Mit folgendem programm funktioniert's beispielsweise nicht, denn man in uProgrammierhilfegehtnicht auf form2 klickt.<br>
      Da passiert leider gar nix.

      unit uProgrammierhilfegehtnicht;
      interface
      uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Unit2;
      type
      TForm1 = class(TForm)
      Button1: TButton;
      procedure Button1Click(Sender: TObject);
      private
      { Private-Deklarationen }
      public
      { Public-Deklarationen }
      end;
      var
      Form1: TForm1;
      implementation
      {$R *.DFM}
      procedure TForm1.Button1Click(Sender: TObject);
      begin
      form2.label1.Caption:='00';
      end;
      end.<br>

      unit uProgrammierhilfegehtnicht2;

      interface

      uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;

      type
      TForm2 = class(TForm)
      Label1: TLabel;
      private
      { Private-Deklarationen }
      public
      { Public-Deklarationen }
      end;

      var
      Form2: TForm2;

      implementation

      {$R *.DFM}

      end

      Comment


      • #4
        Die Formatierung hier im Entwicklerforum finde ich extrem blöd

        Comment


        • #5
          <html>

          <head>
          <meta http-equiv="Content-Type"
          content="text/html; charset=iso-8859-1">
          <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
          <title>Normale Seite ohne Titel</title>
          </head>

          <body bgcolor="#FFFFFF">

          <p>Hallo Alexander,</p>

          <p>schau Dir mal diese Diskussion <a
          href="http://www.entwickler.com/cgi-bin/WebX?14@@.ee6c429">entwickler.com
          -- Fragen, Themen rund um diese Site</a> an.</p>

          <p>&nbsp;</p>

          <p>Tschüß </p>

          <p>Torsten</p>
          </body>
          </html&gt

          Comment


          • #6
            Hallo Alexander,

            schau in diesem Forum unter dem Suchbegriff <b>Formatierungsregeln</b> nach.

            Tschüß

            Torste

            Comment


            • #7
              Danke für den Formattip, Torsten, der sollte am besten über dem Eingabefenster stehen!<br><br>
              Jetzt aber wieder zum eigentlichen Problem:<br>
              Hier also nochmal der Code in lesbarer Form.<br>
              Klickt man in uProgrammierhilfegehtnicht mit controltaste/mauslinks auf form2 so landet man NICHT in der 2. unit in der entsprechenden Zeile.<br>
              Klickt man auf das "TObject" beim Sender, landet man aber sehr wohl in der unit System.pas<br>

              Ich habe festgestellt, dass das Eingeben von Suchpfaden das Problem <b>erstmal</b> verringert, wenn man aber viele Suchpfade angibt, funktioniert die Programmierhilfe wieder nicht, bzw. nur innerhalb einer unit. <br>Komischer Effekt. <br>Hat den sonst keiner, oder haben sich alle damit abgefunden oder haben alle die Sourcen in nur einem Pfad?<br>
              Gruß<br>
              Alex<br><br>
              <pre>
              unit uProgrammierhilfegehtnicht;
              interface
              uses
              Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
              StdCtrls, uProgrammierhilfegehtnicht2;
              type
              TForm1 = class(TForm)
              Button1: TButton;
              procedure Button1Click(Sender: TObject);
              private
              { Private-Deklarationen }
              public
              { Public-Deklarationen }
              end;
              var
              Form1: TForm1;
              implementation
              {$R *.DFM}
              procedure TForm1.Button1Click(Sender: TObject);
              begin
              form2.label1.Caption:='00';
              end;
              end.

              unit uProgrammierhilfegehtnicht2;

              interface

              uses
              Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
              StdCtrls;

              type
              TForm2 = class(TForm)
              Label1: TLabel;
              private
              { Private-Deklarationen }
              public
              { Public-Deklarationen }
              end;

              var
              Form2: TForm2;

              implementation

              {$R *.DFM}

              end.
              </pre&gt

              Comment


              • #8
                Ich hab's.<br>
                Es lag an unzureichenden Debug-Optionen in den Projekt-Compileroptionen.<br>
                "Referenzinfo" muss ausgewählt sein

                Comment

                Working...
                X