![]() |
Seltsames IDE-Verhalten (Code-Vervollständigung)
Hallo,
wenn ich eine PROCEDURE (z.B.)
Delphi-Quellcode:
in meinen Code einfüge so wird diese üblicherweise ganz am Ende der Unit stehen.
procedure TNeuroNet.SpeedButton11Click(Sender: TObject);
Füge ich nun nach begin.. z.B.
Delphi-Quellcode:
ein,
MyStringList_1.Insert(i,MyString);
so bekomme ich ab dem Punkt die Meldung 'Unable to invoke Codecompletion due to Errors in Source-Code'. Wenn ich die gesamte procedure herausnehme und z.B. zwischen die vorletzte und vorvorletzte procedure einfüge, so funktioniert alles normal. Hat jemand eine Ahnung was diesen Fehler bewirken könnte? Wendelin |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Zitat:
Oder selber dort drinen den vermutlichen Fehler suchst? |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Hallo,
hier ist der Code:
Delphi-Quellcode:
möglicherweise kennt ja jemand einen solch seltsamen Fehler.
(* Die selbe Proc wie unten;
Ab dieser Position ( vom Ende der Unit aus gesehen ) funktioniert alles richtig sowohl die Code-Vervollständigung als auch comp. und run. procedure TNeuroNet.BitBtn1Click(Sender: TObject); begin StringGrid3.Visible := FALSE; end; *) (****************************** für SpriNN ************************************) procedure TNeuroNet.SpeedButton14Click(Sender: TObject); Var MyStringList_1,MyStringList_2,MyStringList_3 : TStrings; PfadName_1,PfadName_2,MyString : STRING; Zaehler,Position,i : integer; begin if (globMDIFensterOn = TRUE) AND (AktieEingelesen = TRUE) AND (active = TRUE) THEN begin MyStringList_1 := TStringList.Create; MyStringList_2 := TStringList.Create; MyStringList_3 := TStringList.Create; try { use the string list } (* -------------------------------------------------------------------------------------------------------- *) PfadName_1 := 'D:\Programme\Borland\Delphi6\Projects\MyMapMode\Quotes\'+ g_ComplName[MDIFNr]; PfadName_2 := 'G:\Programme\SPRINN\SpriNN Professional 3.0 (eng)\Data\'+ g_ComplName[MDIFNr] + '.txt'; (* -------------------------------------------------------------------------------------------------------- *) MyStringList_1.Clear; MyStringList_2.Clear; MyStringList_3.Clear; MyStringList_1.LoadFromFile(PfadName_1); MyStringList_1.Delete(0); // die ersten 3 Zeilen löschen MyStringList_1.Delete(0); // die ersten 3 Zeilen löschen MyStringList_1.Delete(0); // die ersten 3 Zeilen löschen Zaehler := MyStringList_1.Count; For i := (Zaehler - 1) DownTo 0 do // Reihenfolge vertauschen begin // mit Hilfe von MyStrinList_3 MyStringList_3.Add(MyStringList_1[i]); end; MyStringList_1.Assign(MyStringList_3); // und wieder MyStringList_1 zuordnen For i := 0 To (Zaehler - 1) do begin MyString := MyStringList_1.Strings[i]; Position := Pos('-',MyString); Delete(MyString,Position,1); // 1.Bindestrich in Date löschen Position := Pos('-',MyString); Delete(MyString,Position,1); // 2.Bindestrich in Date löschen Position := Pos(',',MyString); // Komma's löschen und mit Blank's auffüllen Delete(MyString,Position,1); Insert(' ',MyString,Position); // 1. Komma -> Blank Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); // 2. Komma -> Blank Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); // 3. Komma -> Blank Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); // 4. Komma -> Blank Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); // 5. Komma -> Blank Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); // 6.Komma -> Blank Delete(MyString,Position,10); // wichtig ! Korrektur-Daten löschen Insert(' ',MyString,Position); Position := Pos(',',MyString); Delete(MyString,Position,1); Insert(' ',MyString,Position); Insert(g_ShortName[MDIFNr],MyString,1); // An 1. Stelle 'CODE' ! Trim(MyString); // führende & folgende Leerstellen löschen MyStringList_1.Delete(i); // StringListe mit neuem 'MyString' MyStringList_1.Insert(i,MyString); // & überschreiben !! MyStringList_2.Add(MyString); end; MyStringList_2.Assign(MyStringList_1); MyStringList_2.SaveToFile(PfadName_2); finally MyStringList_1.free; MyStringList_2.free; MyStringList_3.free; end; end; end; procedure TNeuroNet.SpeedButton11Click(Sender: TObject); begin If PrinterSetUpDialog1.Execute THEN begin // Dummy end; end; // Test, der nicht funktioniert was NUR die Code - Vervollständigung betrifft // jedoch lässt sich (ohne Code - Vervollständigung) alles korrekt kompilieren // und das Prog. läuft auch korrekt procedure TNeuroNet.BitBtn1Click(Sender: TObject); begin StringGrid3.Visible := FALSE; end; // Hier kommt oben erwähnter Error : unable to invoke Code... // nach Eingabe des Punktes end. Wendelin |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Delphi-Quellcode:
ist eine lokale Variable in
MyStringList_1
Delphi-Quellcode:
. In
TNeuroNet.SpeedButton14Click
Delphi-Quellcode:
ist die aber nicht bekannt.
TNeuroNet.SpeedButton11Click
|
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Sehr geehrter Herr Raabe,
vielen Dank für Ihre schnelle Antwort. Leider verstehe ich Ihre Begründung für o.g. Fehler nicht. Sicher ist es richtig, daß
Delphi-Quellcode:
eine lokale Var. ist.
MyStringList_1
Neben anderen lokalen Var's In der Proc.
Delphi-Quellcode:
wird diese lokale
TNeuroNet.BitBtn1Click(Sender: TObject);
Var. jedoch nicht genutzt. Vielleicht können Sie mir Ihrer Erklärung noch ausfürlicher erläutern ? Danke Wendelin |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Die Variable "MyStringList_1" gibt es an dieser Stelle nicht.
Wenn du deine Methode nach/unter der anderen Methode deklarierst, wo eine entsprechene lokale Variable gibt, dann findet scheinbar der Parser der Codevervollständigung diese Definition. (obwohl sie eigentlich nicht dazughört) Wenn deine Methode davor steht, dann wird das nicht gefunden. |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Hi,
danke für Deine Antwort. Trotzdem verstehe ich diese nicht. Vieleicht bin ich ja begriffsstutzig o.ä. Wendelin |
AW: Seltsames IDE-Verhalten (Code-Vervollständigung)
Dadurch, dass MyStringList_1 eine lokale Variable in SpeedButton14Click ist, ist sie eigentlich in SpeedButton11Click nicht bekannt und somit nicht erreichbar. Anscheinend erkennt die Code-Completition sie trotzdem, wenn sie weiter vorn im Code stand (nach dem Motto "ah, das hatten wir da oben schonmal"). Das ist dann aber eher als Fehler der Codevervollständigung zu werten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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