AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Automatisches Einfügen von "End" funktioniert nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

Automatisches Einfügen von "End" funktioniert nicht mehr

Ein Thema von Aviator · begonnen am 20. Nov 2015 · letzter Beitrag vom 20. Nov 2015
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 10:17
Hallo Delphianer,

aktuell habe ich in einem Projekt (welches noch relativ klein ist [ca. 1500 LOC geschätzt]) das Problem, dass das zu einem begin passende end; beim Drücken auf Enter nicht mehr automatisch eingefügt wird. Das Problem hatte ich schon öfters bei anderen Projekten. Das Problem tritt auch nur in einer Unit des Projektes auf. In den anderen funktioniert es.

Oft trat der Fehler dann auf, wenn in einer Methode eine oder mehrere Untermethoden erstellt wurden. Bspw. so etwas in der Art (aktuell konnte ich den Fehler in einem anderen Projekt nicht simulieren). In dem aktuellen Projekt in dem dieser Fehler auftritt sind solche Untermethoden nicht vorhanden:
Delphi-Quellcode:
procedure Foo;
  function Test: string;
  begin
    Result := '';
  end;
var
  s: string;
begin
  s := Test;
end;
Wenn hier nun an irgendeiner Stelle ein begin eingefügt und dann Enter gedrückt wird, sollte normalerweise das dazugehörige end; eingefügt werden. In den IDE Optionen ist auch nichts deaktiviert, trotzdem funktioniert es nicht. Auch ein Neustart der IDE hilft nicht. Ich denke das Problem ist bekannt und ich hoffe mir kann jemand dabei helfen. (Benutzt wird bei dem Projekt in dem es nicht funktioniert Delphi XE3.)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 10:46
Delphi-Quellcode:
procedure Foo;
  function Test: string;
  begin
    Result := '';
  end;
var
  s: string;
begin
  s := Test;
end;
Soweit mir bekannt hat dieser Automatismus noch nie funktioniert, nachdem man in einer Methode eine Subroutine erstellt hat. Workaround, wenn du unbedingt drauf angewiesen bist: lagere oder kommentiere die Subroutine aus, so lange du an der Hauptroutine schreibst.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 11:45
Man erlebt so Einiges mit dem automatischen Einfügen. Mal kommt es nicht mehr und mal an jeder Stelle, wo man die Enter-Taste betätigt.

Es ist ein Roulette-Spiel
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 12:17
Delphi-Quellcode:
procedure Foo;
  function Test: string;
  begin
    Result := '';
  end;
var
  s: string;
begin
  s := Test;
end;
Soweit mir bekannt hat dieser Automatismus noch nie funktioniert, nachdem man in einer Methode eine Subroutine erstellt hat. Workaround, wenn du unbedingt drauf angewiesen bist: lagere oder kommentiere die Subroutine aus, so lange du an der Hauptroutine schreibst.
Hallo Perlsau,
der gezeigte Quellcode mit der Subroutine war wirklich nur als Beispiel gedacht. Ich mag die Dinger selbst nicht und benutze sie deshalb auch nicht. Nur war das ein Beispiel, bei dem ich mir ziemlich sicher bin, dass - sobald eingebaut in den Quelltext - die Vervollständigung nicht mehr funktioniert. Nur habe ich solche Subroutinen nicht in meinem Quellcode verbaut und trotzdem funktioniert sie nicht.

@Sir Rufo: Ja da wirst du wohl recht haben. Schön wäre es trotzdem wenn es irgendwie wieder funktioniert bzw. jemand eine Lösung dafür hat.

Als Hinweis: Das IDE FixPack habe ich nicht installiert und wollte es auch nicht installieren (auch wenn es den Fehler beheben würde). Habe damit einmal schlechte Erfahrungen gemacht und nutze es seitdem nicht mehr.
  Mit Zitat antworten Zitat
LeisureSuitLarry

Registriert seit: 8. Dez 2005
Ort: Unterschleißheim
90 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 12:22
Eventuel hilft CNWizard Cnpack.org, dem muss man aber erst mal die anderen Automatismen austreiben.

Manfred
Manfred
Mein erster Rechner hatte eine Z80A-CPU mit 4MHz, 64KB Speicher, Musikkassetten als Speichermedium. Als Betriebssystem CP/M (dazu gekauft)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Automatisches Einfügen von "End" funktioniert nicht mehr

  Alt 20. Nov 2015, 15:44
Eventuel hilft CNWizard Cnpack.org, dem muss man aber erst mal die anderen Automatismen austreiben.

Manfred
CnPack habe ich installiert. Ich denke du meinst die Quelltext Eingabehelfer. Die werde ich mir mal anschauen. Vielleicht funktionieren die ja problemlos. Doppelt scheint da nix eingefügt zu werden. Das werde ich aber nochmal testen. Danke für den Hinweis.

Edit: Ich habe mal etwas damit rumgespielt. Bei den Pre-Definierten Symbolen kann man bei dem Symbol "begin" den Scope bzw. Bereich hoch stellen. In den benutzerdefinierten Symbolen legt man sich dann ein "begin end;" Template an und stellt dort den Scope/Bereich auf 0. Somit erscheint der Eintrag immer über dem Begin..End der IDE. Man kann den IDE Eintrag natürlich auch ganz entfernen, dass wollte ich jetzt aber nicht machen.

Edit2: Ein Nachteil hat das Ganze aber doch. Wenn ich das Template abbreche und nicht einfüge, ich jedoch trotzdem ein End; hinter irgendeiner anderen Zeile weiter unten einfügen will, dann wäre das der Automatismus der IDE. Der Funktioniert aber leider ja nicht. Deshalb ist die Lösung nur bedingt gut. Wenn man einen komplett neuen Begin..End; Block machen möchte, dann ist das Template jedoch ganz gut zu gebrauchen.

Geändert von Aviator (20. Nov 2015 um 15:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 23: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