Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Case-Labels automatisch ergänzen (https://www.delphipraxis.net/212775-case-labels-automatisch-ergaenzen.html)

Codehunter 31. Mär 2023 10:28

Case-Labels automatisch ergänzen
 
Hallo!

Ich hatte mal vor längerer Zeit eingestellt, dass bei case-Anweisungen auf Enum-Variablen die Case-Labels automatisch ergänzt wurden. Dann habe ich das aus irgendeinem Grund abgestellt und nun finde ich die Option nicht mehr wieder. Ich bin mir auch nicht sicher, ob das von der IDE selbst gemacht wurde oder von einem Addon. Derer hätte ich CnPack, GExperts und MMX im Angebot.

Grüße
Cody

himitsu 31. Mär 2023 10:59

AW: Case-Labels automatisch ergänzen
 
Diese "Funktion" ist ein Live-Template.

Ansicht > Tool-Fenster > Vorlagen

Codehunter 31. Mär 2023 11:08

AW: Case-Labels automatisch ergänzen
 
Zitat:

Zitat von himitsu (Beitrag 1520509)
Diese "Funktion" ist ein Live-Template.

Ansicht > Tool-Fenster > Vorlagen

Nee das ist es glaube ich nicht. Das funktionierte damals so: Ich habe im Editor "case MyVar of" geschrieben und Enter gedrückt. Dann wurden darunter gleich die passenden Enum-Labels ergänzt sowie das abschließende "end;".

himitsu 31. Mär 2023 11:16

AW: Case-Labels automatisch ergänzen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Jupp, genau das macht dieses Template. :zwinker:
Anhang 55947

Eventuell hast du in den Einstellungen die Templates auch komplett deaktiviert.
[F6] "template" , auf Delphi umstellen und siehe Code Insight (dürfte "Programmierhilfe" sein)
Anhang 55948



Hat du wirklich
Delphi-Quellcode:
case MyVar of[enter]
geschrieben,

oder nicht doch
Delphi-Quellcode:
case[leerzeichen]
worauf ein Platzhalter/Eingabefeld für die Variable und das "of" auftauchten
und nach dem Enter wurde die Eingabe der Variable abgeschlossen.




Auf das Stichwort (template name) "case" wird
Delphi-Quellcode:
case {type} of {enums} end;
geschrieben, von dir der Typ/Variable abgefragt und via RTTI in der Funktion PopulateCase die Enums geholt (darum "Live" und nicht nur Template).

XML-Code:
<?xml version="1.0" encoding="utf-8"?>

<codetemplate version="1.0.0" xmlns="http://schemas.borland.com/Delphi/2005/codetemplates">
    <template name="case" invoke="auto">
        <point name="expression">
            <script language="Delphi">
                InvokeCodeCompletion;
            </script>
            <text>
                True
            </text>
            <hint>
                case-Ausdruck
            </hint>
        </point>
        <point name="cases" editable="false">
            <script language="Delphi" onenter="false" onleave="true">
                PopulateCase(|expression|);
            </script>
        </point>
        <description>
            case-Anweisung
        </description>
        <author>
            Embarcadero
        </author>
        <code language="Delphi" context="methodbody" delimiter="|"><![CDATA[case |expression| of
|end||*||cases|
end;
]]>
        </code>
    </template>
</codetemplate>

TigerLilly 31. Mär 2023 11:20

AW: Case-Labels automatisch ergänzen
 
Muss dazu nicht dioe BPL mit der SCriptingEngine installiert sein?

himitsu 31. Mär 2023 11:30

AW: Case-Labels automatisch ergänzen
 
Zitat:

Zitat von TigerLilly (Beitrag 1520512)
Muss dazu nicht dioe BPL mit der SCriptingEngine installiert sein?

Nicht das ich wüsste. (zusätzliche Fremdkomponenten, oder so)
Jedenfalls ist diese Funktion im Delphi von Haus aus vorhanden.


@Codehunter
schau doch mal nach, ob es in einem unverstellten Delphi funktioniert. :angle:
Delphi-Quellcode:
bds.exe -rTest0323
und nach dem Test, kann HKEY_CURRENT_USER\SOFTWARE\Embarcadero\Test0323 gelöscht werden

Codehunter 31. Mär 2023 12:08

AW: Case-Labels automatisch ergänzen
 
@Himitsu: Du hast völlig recht. Ich hatte aus irgendeinem Grund die Templates komplett abgeklemmt und den Zusammenhang vergessen. Jetzt funktioniert es wieder. Ich muss nun abwarten ob mir irgendwann auch wieder einfällt, warum ich die abgeklemmt hatte. Vermutlich hat sich da irgendwas mit den installierten Addons gehackt.

Danke erstmal soweit, Frage damit geklärt :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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 by Thomas Breitkreuz