![]() |
Autovervollständigen geht manchmal nicht
In einem sehr großen Projekt habe ich in manchen Units das Problem das Autovervollständigen nicht funktioniert. In anderen Units geht es. Ohne neu Start der IDE. Ich wechsle nur direkt von Unit zu Unit und habe unterschiedliches Verhalten. Die Eieruhr läuft kurz an aber es passiert nichts.
Eine Idee woran es liegen kann? |
AW: Autovervollständigen geht manchmal nicht
Für diese Funktion wird im Hintergrund oft der Backgroundcompiler angeworden ... wenn er z.B. irgendwo Probleme im dem Quellcode hat, dann raucht er still und heimlich ab und da er keine Infos lieferte, kann dann auch nichts angezeigt werden.
IDFEFs und Dergleichen im Code kann sowas verursachen. |
AW: Autovervollständigen geht manchmal nicht
Du meinst wahrscheinlich ein Compiler Schalter wie $ifdef. Kommt einmal vor.
Habe ich entfernt und IDE neu gestartet. Hat leider nicht geholfen. |
AW: Autovervollständigen geht manchmal nicht
Zitat:
|
AW: Autovervollständigen geht manchmal nicht
Compilieren, Erzeugen und Bereinigen alles ohne Probleme.
Ich vermute das in einer fremd Komponente oder in den Uses der Unit steckt die Antwort. |
AW: Autovervollständigen geht manchmal nicht
Bei uns waren die häufigsten Ursachen with und Kreuzreferenzen. Die neue Codebasis ist sauber, da gibt es so etwas nicht mehr und dort haben wir auch keine Probleme mehr mit der Syntaxergänzung.
|
AW: Autovervollständigen geht manchmal nicht
Ich arbeite erst seit 3 Jahren mit Delphi. Ich lese immer wieder dass man auf "with" verzichten soll. Was ist die Begründung? Oder ist das nur ein Verdacht dass es ab und zu Probleme macht?
In der Problem Unit wird es 67 mal verwendet. Ich würde gern wissen warum es raus sollte. |
AW: Autovervollständigen geht manchmal nicht
Zitat:
![]() |
AW: Autovervollständigen geht manchmal nicht
@TiGü. Das scheint eine allgemeine Philosophische Diskussion zu sein. Was genau ist das Problem mit "with"? Was ist mit "Scope Problem" gemeint? Ist es ein Fehler der bei den Compilern auftritt oder ist es ein Fehler der beim Debuggen auftritt? Lässt sich das nachstellen?
|
AW: Autovervollständigen geht manchmal nicht
Zitat:
Zitat:
Konkretes Beispiel, über das sicher viele hier gestolpert sind: Ein
Delphi-Quellcode:
hatte in früheren Delphi Versionen die Eigenschaften
TRect
Delphi-Quellcode:
,
Left
Delphi-Quellcode:
,
Top
Delphi-Quellcode:
und
Right
Delphi-Quellcode:
. Wollte man nun z.B. in einer Methode ein Rechteck links auf die halbe Breite des aktuellen Forms setzen, konnte man das mit
Bottom
Delphi-Quellcode:
erreichen. Da
with MyRect do begin
Left := Width div 2; end;
Delphi-Quellcode:
in
Width
Delphi-Quellcode:
nicht bekannt ist, wird der nächsthöhere Scope (in diesem Fall das Form) verwendet.
TRect
Irgendwann bekam
Delphi-Quellcode:
aber noch ein Property
TRect
Delphi-Quellcode:
spendiert, was dann innerhalb des with nun den Vorzug bekam. Alles compiliert immer noch einwandfrei, kein Fehler zur Laufzeit, aber das Ergebnis war ein völlig anderes.
Width
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz