Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Probleme mit 'Deklaration suchen' (u.a.) (https://www.delphipraxis.net/194320-probleme-mit-deklaration-suchen-u.html)

Maekkelrajter 8. Nov 2017 22:51

Probleme mit 'Deklaration suchen' (u.a.)
 
Hallo,

Seit ein paar Tagen beobachte ich bei der Arbeit mit meinem Delphi 10.1 Berlin Starter ein seltsames und ausgesprochen lästiges Phänomen: In einer Unit, die das Hauptformular einer Anwendung und etliche Zeilen Programmcode enthält, funktioniert 'Deklaration suchen' im Kontextmenu nicht mehr. Es erscheint nur ganz kurz die Sanduhr, sonst passiert nichts. Außerdem wird, wenn man einen Prozedur- oder Funktions- bzw. Methoden-Aufruf eintippt, nicht mehr der 'Hint' mit der Parameterliste angezeigt. In allen anderen Projekten, ja selbst in allen anderen Units, die von o.g. Unit im selben Projekt benutzt werden, funktioniert alles wie gewohnt. Dieses Problem wurde ja so oder so ähnlich schon öfter berichtet, auch hier in DP. Leider habe ich nirgendwo eine brauchbare Lösung gefunden. Wo könnte man da ansetzen? Ich bin für jeden Hinweis dankbar.
:?

nahpets 8. Nov 2017 23:12

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Das Projekt mal vollkommen neu erstellen, damit alles kompiliert wird.

Hilft zuweilen.

Eventuell dann auftretende Fehler beheben, Warnungen bearbeiten ...

hoika 9. Nov 2017 05:19

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Hallo,
öffne diese Unit mal mit dem Editor (Notepad) und schau nach "verdächtigem Aussehen".
Ist blöd beschrieben, aber naja.

Zur Not erstelle die Unit mit Notepad neu und kopiere den Inhalt auch wieder per zweitem Notepad in die neue Unit.

Vergleiche den Anfang der Unit mit einer anderen über einen Hex-Editor.

jaenicke 9. Nov 2017 05:20

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Außerdem kann es helfen das dcu Verzeichnis des Projekts zu leeren.

hoika 9. Nov 2017 07:42

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Hm,
und (z.B. mit SearchEverything) mal nach Dubletten der Pas- und Dcu-Datei suchen.

Der schöne Günther 9. Nov 2017 10:40

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Kannst du nicht ein paar Stände zurückgehen und schauen wo es noch nicht auftritt? Ansonsten würde ich immer weiter Code rauslöschen um den Übeltäter zu finden. Ich hatte öfter mit anonymen Methoden oder Inline-Records das Problem dass die Code-Vervollständigung nicht mehr funktionierte und die Code-Vervollständigung teilweise völlig amok lief.

Maekkelrajter 9. Nov 2017 22:45

AW: Probleme mit 'Deklaration suchen' (Gelöst?)
 
Hallo,

Fast alle hier vorgeschlagenen Schritte hatte ich schon versucht. Die Lösung fand ich tatsächlich, indem ich nach und nach alle nach der letzten funktionierenden Version durchgeführte Änderungen rückgängig gemacht hatte. Aber des Rätsels Lösung wirft neue Fragen auf. Folgender Sachverhalt:

Ich hatte im Interface-Teil vor der Deklaration des Hauptformulars folgende Typ-Deklaration platziert:
Code:
unit GetLatestGUI_V4;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, Shellapi,
  ImgList, Buttons, Menus, ToolWin, System.ImageList, UITypes, AnsiStrings,
  iTunesLib_TLB, FileListCopy, CreateClips, GLOptions;


type
  TMemoBak = Array[0..1] of String;
In der anschließenden Deklaration des Hauptformulars wurde dann in der 'private' - Sektion ein Feld dieses Typs deklariert:
Code:
type
  TGL4Mainform = class(TForm)
    Label3: TLabel;
    Label4: TLabel;
    Memo1: TMemo;
    MemoButton1: TButton;
    //[...] (96 Deklarationen)
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    //[...] (56 Deklarationen)
  private
    { Private-Deklarationen }
    membak: TMemoBak;
    Playlistmode:TListmode;
    allsize: int64;
    //usw.
Nachdem ich die 'private' Felddeklaration 'membak' entfernt und durch eine (Unit-)globale Variable des gleichen Typs im Implementations - Teil ersetzt hatte, war der Fehler verschwunden. Alternativ genügt es, die Typ - Deklaration in den Interface-Teil einer in der 'uses'-Klausel aufgeführten Unit zu verschieben. Dann kann auch das 'private' Feld deklariert werden.
Alles in allem äußerst rätselhaft, wie das zusammenhängt. Womöglich ist das merkwürdige Verhalten nur ein Seiteneffekt irgendeines tiefer liegenden Fehlers oder gar eines Bugs der IDE? Jedenfalls lässt sich das Projekt ansonsten fehlerfrei compilieren bzw. erzeugen. Es gibt auch keinerlei speziellen Hinweis oder Warnung. Das Ganze ist zuverlässig reproduzierbar, auch in anderen Units verschiedener Projekte.
Vielleicht hat einer der hier versammelten Experten eine Erklärung für das rätselhafte Phänomen?

Gruß Maekkelrajter

Aviator 9. Nov 2017 23:43

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Bug ist bekannt und laut Quality Portal in Berlin Update 2 behoben. Da du nur die Starter hast wirst du wohl nicht drum herum kommen, darauf ein dynamisches Array zu machen. Ansonsten könnte es passieren, dass du den Fehler immer wieder zu spüren bekommst. Über den Fehler wurde hier in der DP auch schonmal diskutiert. Du bist der Nächste der auf so einen blöden Bug gestoßen ist. :|

Siehe QC Eintrag: https://quality.embarcadero.com/browse/RSP-14914

jaenicke 12. Nov 2017 13:51

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
Die Alternative ist auf die 10.2 Tokyo Starter umzusteigen. Da dürfte das auch erledigt sein.

Maekkelrajter 14. Nov 2017 11:49

AW: Probleme mit 'Deklaration suchen' (u.a.)
 
So ist es. Mit Delphi 10.2 Tokyo Starter ist das Problem in der Tat erledigt. Wieder mal viel wertvolle Zeit verplempert. Wie immer hatte ich natürlich als erstes eigene Fehler im Verdacht. Delphi - Bugs sind mir bisher äußerst selten untergekommen, weshalb ich sie immer als allerletzte Möglichkeit in Erwägung ziehe.

Gruß Maekkelrajter


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz