Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Autovervollständigen geht manchmal nicht (https://www.delphipraxis.net/196619-autovervollstaendigen-geht-manchmal-nicht.html)

Edelfix 4. Jun 2018 13:13

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?

himitsu 4. Jun 2018 13:18

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.

Edelfix 4. Jun 2018 13:57

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.

Uwe Raabe 4. Jun 2018 14:02

AW: Autovervollständigen geht manchmal nicht
 
Zitat:

Zitat von Edelfix (Beitrag 1403834)
Habe ich entfernt und IDE neu gestartet. Hat leider nicht geholfen.

Kannst den Code denn überhaupt compilieren?

Edelfix 4. Jun 2018 15:11

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.

jaenicke 4. Jun 2018 19:34

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.

Edelfix 5. Jun 2018 08:38

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.

TiGü 5. Jun 2018 09:01

AW: Autovervollständigen geht manchmal nicht
 
Zitat:

Zitat von Edelfix (Beitrag 1403919)
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.

Das Forum bietet zahlreiche Threads dazu. Hier zum Beispiel:
https://www.delphipraxis.net/174414-...ement-xe4.html

Edelfix 5. Jun 2018 10:00

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?

Uwe Raabe 5. Jun 2018 10:13

AW: Autovervollständigen geht manchmal nicht
 
Zitat:

Zitat von Edelfix (Beitrag 1403927)
@TiGü. Das scheint eine allgemeine Philosophische Diskussion zu sein.

Das glaube ich eher nicht. Es geht hier mehr darum, den Code robuster zu machen.

Zitat:

Zitat von Edelfix (Beitrag 1403927)
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?

Es tritt eben gar kein Fehler auf. Das Programm tut nur plötzlich was anderes.

Konkretes Beispiel, über das sicher viele hier gestolpert sind: Ein
Delphi-Quellcode:
TRect
hatte in früheren Delphi Versionen die Eigenschaften
Delphi-Quellcode:
Left
,
Delphi-Quellcode:
Top
,
Delphi-Quellcode:
Right
und
Delphi-Quellcode:
Bottom
. Wollte man nun z.B. in einer Methode ein Rechteck links auf die halbe Breite des aktuellen Forms setzen, konnte man das mit
Delphi-Quellcode:
with MyRect do begin
  Left := Width div 2;
end;
erreichen. Da
Delphi-Quellcode:
Width
in
Delphi-Quellcode:
TRect
nicht bekannt ist, wird der nächsthöhere Scope (in diesem Fall das Form) verwendet.

Irgendwann bekam
Delphi-Quellcode:
TRect
aber noch ein Property
Delphi-Quellcode:
Width
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.
Seite 1 von 2  1 2      

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