Kann jemand helfen? Mein Editor geht nach verschieben in anderen Ordner nicht mehr!



  • Bin leider selber noch nicht so der Checker. Aber ich hoff mir kann jemand helfen.
    Ich habs inzwischen aufgegen den Texteditor zu retten.
    Den Code hab ich aber noch!
    Also dachte ich mir ich kopier den Code in eine neue Anwendung und mach das Formular neu.
    Soweit bin ich jetzt auch. Aber das geht leider nicht,
    wil ich folge Fehlermeldung bekomm.

    [C++ Fehler] Editor1.cpp(15): E2316 '_fastcall TTexteditor::richEdit(TObject *)' ist kein Element von 'TTexteditor'

    und die Hilfe sagt nur das 'bezeichner' kein Element von 'Strukt' ist!

    Währe echt dankbar wenn mir jemand weiterhelfen könnte.
    😕 🙄 😕



  • du musst die methode richEdit(TObject 😉 in deine header-file deines projektes reinschreiben (.h).
    das gilt für semtliche methoden aus deiner klasse TTexteditor.



  • Danke!
    Aber das hab ich schon gemacht.

    mit #include "Editor1.h"

    Ist doch richtig oder?



  • nein, lies doch mal richtig was ich geschrieben hab
    in der cpp-datei willst du eine funktion von TTexteditor deklarieren ohne dass sie in der header-file definiert ist
    ich weiß jetzt nicht genau, was deine methode für einen rückgabewert hat, aber folgende zeile sollte so in etwa in deiner header-datei (*.h) auftauchen

    void __fastcall richEdit(TObject *);
    


  • Ja. ich verteh jetzt schon was meinst. Hab ich gemacht .
    Doch jetzt kommt die Meldung:

    [C++ Fehler] Editor1.h(27): E2238 Bezeichner 'TTexteditor::richEdit' mehrfach deklariert

    Header:
    class TTexteditor : public TForm
    {
    __published: // Von der IDE verwaltete Komponenten
    TRichEdit *richEdit;
    TButton *btEnde;
    TGroupBox *gbAusrichtung;
    TGroupBox *gbStyle;
    TRadioButton *rbLinks;
    TRadioButton *rbZentr;
    TRadioButton *rbRechts;
    TCheckBox *cbFett;
    TCheckBox *cbKursiv;
    TCheckBox *cbUnder;
    TButton *btneu;
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall richEdit(TObject *Sender);
    void __fastcall bgAusrichtung(TObject Sender);
    private: // Anwender-Deklarationen
    public: // Anwender-Deklarationen
    __fastcall TTexteditor(TComponent
    Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TTexteditor *Texteditor;

    wo ist denn das doppelt?



  • du hast ein objekt und eine methode mit dem selben name definiert

    TRichEdit *richEdit;
    .
    .
    .
    void __fastcall richEdit(TObject *Sender);
    


  • Und welche ist falsch davon?



  • ich nehm mal ganz stark an, dass es die erste ist!!!
    ich hab das gefühl, als ob du von oop bzw. c++ noch nicht wirklich einen plan hast.
    ich würd dir wärmstens empfehlen dir mal ein buch auszuleihen und dich damit mal zu beschäftigen. oder google mal nach ein paar tutorials über c++/oop
    ist jetzt nicht böse gemeint, aber wenn ich dir hier nur sage wie du das programm zum laufen bekommst, dann lernst du dadurch auch nicht programmieren



  • ach und nochwas
    gewöhn dir mal an deinen quelltext übersichtlicher zu schreiben (zeilen einrücken; lerrzeilen einfügen; kommentare ranschreiben;)

    wenn du in 3 wochen wieder in den quelltext schaust, dann siehst du nämlich selbst nicht mehr durch

    und benutze bitte die code-tags beim posten von quelltexten



  • Wenn ich nen Plan hätte müss ich ja nicht solche Fragen stellen.
    Naja, der Rest des Progremms stammt ja auch von mir.
    (Das musst ich auch erstmal lernen) 😮

    Gehen tut nicht. Werd ich halt noch etwas rumprobiern müssen.

    Vielen Dank nochmal!!



  • Shit! Kann du mir nochmal helfen???

    Es kommt genauso wie zuvor bei jedem Element im Formular dir Meldung:

    *[C++ Fehler] Editor1.cpp(20): E2316 '_fastcall TTexteditor::btEndeClick(TObject )' ist kein Element von 'TTexteditor'

    Obwohl mein Haeder jetzt so aussieht

    {
    __published: // Von der IDE verwaltete Komponenten

    TButton *btEnde;
    TGroupBox *gbAusrichtung;
    TGroupBox *gbStyle;
    TRadioButton *rbLinks;
    TRadioButton *rbZentr;
    TRadioButton *rbRechts;
    TCheckBox *cbFett;
    TCheckBox *cbKursiv;
    TCheckBox *cbUnder;
    TButton *btneu;
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall bgAusrichtung(TObject *Sender);
    void __fastcall richEditChange(TObject *Sender);
    void __fastcall richEdit(TObject *Sender);

    private: // Anwender-Deklarationen
    public: // Anwender-Deklarationen
    __fastcall TTexteditor(TComponent* Owner);
    };



  • FreshAir schrieb:

    Gehen tut nicht. Werd ich halt noch etwas rumprobiern müssen.

    Wie wärs mit gezieltem Lernen und Üben im Umgang mit klassen aufgrund von Tutorien, etc?

    -junix



  • Was ich zusätzlich nicht versteh ist warum mein Textfelde früher

    richEdit()
    und jetzt nach dem ganzen rumkopiern und rumprobieren
    richEditChange() heißt!

    Helf mir doch bitte mein Programm wieder hinzukriegen.



  • Schon Junix du Volgel. Das mach gerade!



  • FreshAir schrieb:

    Es kommt genauso wie zuvor bei jedem Element im Formular dir Meldung:

    *[C++ Fehler] Editor1.cpp(20): E2316 '_fastcall TTexteditor::btEndeClick(TObject )' ist kein Element von 'TTexteditor'

    Obwohl mein Haeder jetzt so aussieht

    {
    __published: // Von der IDE verwaltete Komponenten

    TButton *btEnde;
    TGroupBox *gbAusrichtung;
    TGroupBox *gbStyle;
    TRadioButton *rbLinks;
    TRadioButton *rbZentr;
    TRadioButton *rbRechts;
    TCheckBox *cbFett;
    TCheckBox *cbKursiv;
    TCheckBox *cbUnder;
    TButton *btneu;
    void __fastcall FormCreate(TObject *Sender);
    void __fastcall bgAusrichtung(TObject *Sender);
    void __fastcall richEditChange(TObject *Sender);
    void __fastcall richEdit(TObject *Sender);

    private: // Anwender-Deklarationen
    public: // Anwender-Deklarationen
    __fastcall TTexteditor(TComponent* Owner);
    };

    Ist ja jetzt schoen und gut, dass du die Elemente selbst in der Header erwaehnst. Die Ereignismethoden muesstest du aber trotzdem auch noch in die Header mit aufnehmen.
    Wenn du den kompletten Code von deinem eigentlich Programm noch hast, warum vergleichst du die Header-Dateien dann nich einfach Zeile fuer Zeile? Ich meine wenn dein Programm schonmal lief, dann muesste es doch in der alten Header-Datei alles richtig sein???? Oder habe ich hier was falsch verstanden?
    MfG Aoeke

    <EDIT>

    FreshAir schrieb:

    Schon Junix du Volgel. Das mach gerade!

    Hier Leute vollzumotzen, ist aber auch nicht ok. Und schon gar nicht, wenn man Hilfe verlangt!!! Und wenn du schon nicht darauf verzichten kannst, dann motz doch wenigstens in einem vernuenftigem Deutsch... 👎 😉
    </EDIT>



  • Die eigendkiche Frage die gestellt worden ist, ist doch warum des Programm nicht mehr geht ´nachdem es in einen anderen ordener verschoben wurde?



  • Das Problem ist, ich hab in der Haeder Datei nichts verändert, außer die eine Zeile gelöscht. Sonst wurde alles im Header nicht von von mir eigetragen. War schon so.

    Wie meinst du das, dass ich die Ereignissmethoden mit im Header haben muss?

    Den alten Code vom Header hab ich leider nichtmehr. Ich kanns mir einfach nicht erklären!!!
    Wie kann das eigendlich sein, dass nichts mehr geht wenn man seinen Ordner verschiebt?

    Najs, währ auf jeden Fall dankbar für jede normale Hilfe.

    "Sorry Junix. Aber was das lernen angeht muss sich halt jeder um seinen eigenen Scheiß kümmern!"



  • FreshAir schrieb:

    Den alten Code vom Header hab ich leider nichtmehr.

    Ich denke den Code hast du noch? -->

    FreshAir schrieb:

    Ich habs inzwischen aufgegen den Texteditor zu retten.
    Den Code hab ich aber noch!

    Und ich meine zu dem Code gehoeren eben auch die Header-Dateien???

    Und mit Ereignisroutinen im Header deklarieren meine ich folgendes:

    // in der .cpp steht folgendes: [BEISPIEL!]
    void __fastcall TForm1::Panel1Click(TObject *Sender)
    {
    
    }
    //---------------------------------------------------------------------------
    
    // dann muss in der HEADER-Datei folgendes dazu stehen
    	void __fastcall Panel1Click(TObject *Sender);
    
    // und zwar im __published Bereich...
    

    Und das fuer jedes Ereignis, wozu du schon in der *.cpp Datei den Code hast!!!
    MfG Aoeke


Anmelden zum Antworten