AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Seltsames IDE-Verhalten (Code-Vervollständigung)

Seltsames IDE-Verhalten (Code-Vervollständigung)

Ein Thema von wendelin · begonnen am 26. Okt 2014 · letzter Beitrag vom 27. Okt 2014
Antwort Antwort
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#1

Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 26. Okt 2014, 12:49
Hallo,
wenn ich eine PROCEDURE (z.B.) procedure TNeuroNet.SpeedButton11Click(Sender: TObject); in meinen Code einfüge so wird diese üblicherweise ganz am Ende der Unit stehen.
Füge ich nun nach begin.. z.B. MyStringList_1.Insert(i,MyString); ein,
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
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#2

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 26. Okt 2014, 13:27
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?
Nee, aber wie wäre es, wenn du uns zeigst was in der geheimen "vorletzte"n oder letzten Prozedur liegt?
Oder selber dort drinen den vermutlichen Fehler suchst?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 26. Okt 2014, 18:47
Hallo,
hier ist der Code:
Delphi-Quellcode:
(* 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.
möglicherweise kennt ja jemand einen solch seltsamen Fehler.
Wendelin
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#4

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 26. Okt 2014, 18:59
MyStringList_1 ist eine lokale Variable in TNeuroNet.SpeedButton14Click . In TNeuroNet.SpeedButton11Click ist die aber nicht bekannt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 27. Okt 2014, 10:23
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ß MyStringList_1 eine lokale Var. ist.
Neben anderen lokalen Var's
In der Proc. TNeuroNet.BitBtn1Click(Sender: TObject); wird diese lokale
Var. jedoch nicht genutzt.
Vielleicht können Sie mir Ihrer Erklärung noch ausfürlicher erläutern ?
Danke
Wendelin
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.016 Beiträge
 
Delphi 12 Athens
 
#6

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 27. Okt 2014, 10:30
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 27. Okt 2014, 11:26
Hi,
danke für Deine Antwort.
Trotzdem verstehe ich diese nicht. Vieleicht bin ich ja begriffsstutzig o.ä.
Wendelin
Wolfgang
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Seltsames IDE-Verhalten (Code-Vervollständigung)

  Alt 27. Okt 2014, 11:47
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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