BCB6 löscht leere Funktionen?!



  • hallo, bin grad gemütlich am vor mich hincodeln, als ich für'n Projekt eine Funktion in einer .h deklariere und in einer zugehörigen .cpp definieren will.

    void __fastcall P2PGetFile (TFileStream *stream);
    

    Da die Definition ein Kollege übernimmt, da sein Teilbereich des Projektes, lasse ich die Funktion leer .....

    void __fastcall TForm1::P2PGetFile (TFileStream *stream)
    {}
    

    nach STRG+S siehe da => Der Compiler entfernt die Funktion sauberstens aus meiner .h und .cpp ??!!

    Ist das ein Bug oder hat das einen tieferen Sinn?

    MfG Codi



  • Natürlich hat das einen Sinn... Leere Funktionen sind nirgendwofür gut und darum löscht der BCB die, übrigens auch schon in älteren Versionen.
    Wenn du die behalten willst mach ein // rein das reicht schon.



  • alles klar.... trotzdem doof... bis ich mal raus hatte das es gelöscht wird weil nichts drinnsteht hatte ich immer Angst beim nächsten STRG S fehlt wieder ein Stück code 😕



  • Original erstellt von »]warcoder[«:
    alles klar.... trotzdem doof... bis ich mal raus hatte das es gelöscht wird weil nichts drinnsteht hatte ich immer Angst beim nächsten STRG S fehlt wieder ein Stück code 😕

    Tja, BCB denkt weiter als VC++



  • Das mit dem "von selbst löschen" trifft aber normalerweise nur für die vom BCB generierten Deklarationen und Funktionsrümpfe zu. Selbstgeschriebener Code wird nicht angetastet, auch nicht im BCB6.

    Und schon gar nicht bei Strg+S, da beim Speichern der Code nicht evaluiert wird. Wenn überhaupt, dann nur beim Compilieren.



  • wetten das?



  • Behaupten kannst du viel, kann ja keiner kontrollieren. 😉
    Ansonsten: ich schrieb nicht ohne Grund "normalerweise".



  • natürlich macht der das beim speichern...



  • Hi,

    die Methode wird gelösct, sofern diese keine Zeilen enthält und in der Header innerhalb des Deklarationsbereiches liegt, in der die IDE die vom Formdesigner erstellten Methdoen deklariert.



  • Leere Funktionen löscht der BCB nur, wenn Sie 1. unter published und 2. als __fastcall deklariert sind.
    Hab das gerade explizit ausprobiert. Ausserdem hab ich des öfteren leere Funktionen unter public oder private, die später natürlich mit Leben gefüllt werden. Da wurde noch nie was automatisch weggebügelt.
    Leere Ereignissfunktionen bestücke ich bis zum eigentlichen Ausprogrammieren mit //, um beim Speichern das Löschen zu vermeiden. Ich drücke nämlich sehr oft STRG-S um mein Projekt zwischen zu speichern. Hab ich mir angewöhnt, seit ich vor Jahren mal sehr viel Code durch nen Absturz verloren hatte 😉

    [ Dieser Beitrag wurde am 23.01.2003 um 08:34 Uhr von Peter editiert. ]



  • hehe,

    ja, das Speichern- Button ist auch mein bester Freund geworden.


Anmelden zum Antworten