Fehler beim erstellen eines einfachen Texteditors!!!



  • Hallo,

    als C++ Neuling versuche ich gerade den Texteditor im Tutorial vom C++Builder 5 nachzubasteln. Bin im Moment an einem Punkt angelangt, wo ich nicht weiterkommen.
    Immer wenn ich das Programm comiliere, startet es auch richtig und meldet keine Fehler. Wenn ich aber auf "Datei neu" gehe, kommt folgende Fehlermeldung.

    "Im Projekt *exe ist eine Exeption der Klasse EListError aufgetreten.Meldung: 'Der Index der Liste überschreitet das Maximum(0)'.Der Prozess wurde angehalten.Mit einzelnen Anweisung oder Start fortsetzen."

    Ich kann leider mit dieser Meldung sehr wenig anfangen. Habe schon alles versucht, komme aber nicht weiter.

    Hier mal der Code meine Dateien:

    //Das Hauptformular:
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Hauptformular1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    char FileName;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::DateiNeuExecute(TObject *Sender)
    {
    RichEdit1->Clear();
    
    FileName = "Untitled.txt";
    StatusBar1->Panels->Items[0]->Text = FileName;        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::DateiOeffnenExecute(TObject *Sender)
    {
    if (OpenDialog1->Execute())
    
    {
      RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
      FileName = OpenDialog1->FileName;
      StatusBar1->Panels->Items[0]->Text = FileName;
    }        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::DateiSpeichernExecute(TObject *Sender)
    {
    if (FileName == "Untitled.txt") 
    
        DateiSpeichernUnterExecute(NULL);
    else
        RichEdit1->Lines->SaveToFile(FileName);        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::DateiSpeichernUnterExecute(TObject *Sender)
    {
    SaveDialog1->FileName = FileName;
    
    SaveDialog1->InitialDir = ExtractFilePath(FileName);
    if (SaveDialog1->Execute())
    {
        RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
        FileName = SaveDialog1->FileName;
        StatusBar1->Panels->Items[0]->Text = FileName;
    }        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::DateiBeendenExecute(TObject *Sender)
    {
    Close();        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::HilfeInhaltExecute(TObject *Sender)
    {
    const static int HELP_TAB = 15;
    
    const static int CONTENTS_ACTIVE = -3;
    Application->HelpCommand(HELP_TAB, CONTENTS_ACTIVE);        
    }
    //---------------------------------------------------------------------------
    Die passende *.h-Datei dazu:
    
    //---------------------------------------------------------------------------
    
    #ifndef Hauptformular1H
    #define Hauptformular1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ActnList.hpp>
    #include <ImgList.hpp>
    #include <StdActns.hpp>
    #include <Menus.hpp>
    #include <ComCtrls.hpp>
    #include <ToolWin.hpp>
    #include <Dialogs.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TActionList *ActionList1;
            TImageList *ImageList1;
            TAction *DateiNeu;
            TAction *DateiOeffnen;
            TAction *DateiSpeichern;
            TAction *DateiSpeichernUnter;
            TAction *DateiBeenden;
            TEditCut *EditCut1;
            TEditCopy *EditCopy1;
            TEditPaste *EditPaste1;
            TMainMenu *MainMenu1;
            TMenuItem *Datei1;
            TMenuItem *Neu1;
            TMenuItem *ffnen1;
            TMenuItem *Speichern1;
            TMenuItem *Speichernunter1;
            TMenuItem *N1;
            TMenuItem *Beenden1;
            TMenuItem *Bearbeiten1;
            TMenuItem *Ausschneiden1;
            TMenuItem *Kopieren1;
            TMenuItem *Einfgen1;
            TAction *HilfeInhalt;
            TAction *HilfeIndex;
            TAction *HilfeInfo;
            TMenuItem *Hilfe1;
            TMenuItem *Inhalt1;
            TMenuItem *Index1;
            TMenuItem *N2;
            TMenuItem *Info1;
            TToolBar *ToolBar1;
            TToolButton *ToolButton1;
            TToolButton *ToolButton2;
            TToolButton *ToolButton3;
            TToolButton *ToolButton4;
            TToolButton *ToolButton5;
            TToolButton *ToolButton6;
            TToolButton *ToolButton7;
            TToolButton *ToolButton8;
            TToolButton *ToolButton9;
            TToolButton *ToolButton10;
            TRichEdit *RichEdit1;
            TStatusBar *StatusBar1;
            TOpenDialog *OpenDialog1;
            TSaveDialog *SaveDialog1;
            void __fastcall DateiNeuExecute(TObject *Sender);
            void __fastcall DateiOeffnenExecute(TObject *Sender);
            void __fastcall DateiSpeichernExecute(TObject *Sender);
            void __fastcall DateiSpeichernUnterExecute(TObject *Sender);
            void __fastcall DateiBeendenExecute(TObject *Sender);
            void __fastcall HilfeInhaltExecute(TObject *Sender);
    private:	// Anwender-Deklarationen
    public:        // Anwender-Deklarationen
            AnsiString FileName;
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    
    //Jetzt die andere cpp-datei:
    
    /---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    USERES("Diaet.res");
    USEFORM("Hauptformular1.cpp", Form1);
    //---------------------------------------------------------------------------
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
            try
            {
                     Application->Initialize();
                     Application->CreateForm(__classid(TForm1), &Form1);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;
    }
    //---------------------------------------------------------------------------
    

    Ich finde einfach den Fehler nicht! Kann mir vielleicht jemand weiterhelfen??? Als Neuling habe ich sehr wenig Ahnung.

    [EDIT]Bitte Code- Tags verwenden[/EDIT]



  • FileName = "Untitled.txt";
    

    Schau am besten nochmal nach, als was für ein Typ FileName deklariert ist, was das bedeutet und was es eigentlich sein sollte. (z.B: Welcher Typ ist TOpenDialog::FileName?)

    Achja: Und wie viele Panels hast du denn in deiner Statusbar?



  • halloechen ClaudiaMu

    Click Mal dein StatusBar an und dann im Objektinspektor auf Panels(auf die drei punkte).
    dort mußt du ein neues Panel hinzufuegen, damit du es beschreiben kennst

    Meep Meep



  • Komme jetzt erst dazu mich zu bedanken. Ja , war mein Fehler...aber ich lerne ja noch und werde mich sicher noch öfter melden. Danke!!! 😉


Anmelden zum Antworten