Funktionsufruf schlägt fehl woran kann das liegen?



  • also die Fehler meldung 1

    [C++ Fehler] Haupt.cpp(1703): E2141 Fehler in der Deklarationssyntax

    bezieht sich auf

    int faerben(int intAnzZeichenAktuell2)
    {//<--diese Zeile
      String STZeile;
    

    die anderen beiden Fehler Meldungen,
    [C++ Fehler] Haupt.cpp(1732): E2139 In Deklaration fehlt ;
    [C++ Fehler] Haupt.cpp(1732): E2134 Abschließendes } fehlt

    sind ausserhalb des Codes d.h. am Ende des Editors



  • rftAWL ist eine Richtextbox und ist definiert



  • wie ist rftAWL deklariert, als globale variable? hast du system.hpp inkludiert fuer AnsiString?

    Ein Fehler ist nicht immer dort zu suchen, wo man ihn vermeintlich angezeigt bekommt!

    Zeig mal deinen Header und den obersten Teil der cpp



  • Also jetzt nochmal genauer

    die Schritte (die mit dem rftAWL) läufen ausserhalb der von mir selbst erzeugten Funktion ohne Probleme d.h. ich hab die schritte bereits vorher getestet und wollte sie nun um Modularer zu werden in einen Funktionsaufruf packen (zwecks übersicht) klappt aber offensichtlich net. Ich gehe daher, da es ausserhalb der Funktionen ohne Probleme funktioniert, davon aus, das es an der Funktionsdeklaration liegt, ich weiß nur net was da net stimmen soll!!!!!

    MfG Felix



  • Falls es doch einigen etwas bringt wer weiß das schon hier nochmal meine Ikludierten Files

    #include <vcl.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <windows.h>
    #include <winbase.h>
    #include <winuser.h>
    #include <dir.h>
    #include <string.h>
    #include <process.h>    /* _beginthread, _endthread */
    #include <windows.h>            //fuer serielle Kommunikation
    #include <iostream.h>           //fuer cout, cin 
    #include <conio.h>              //fuer Fkt. getch(), clrscr(); 
    #include <ctype.h>              //fuer toupper() 
    
    #pragma hdrstop
    
    #include "Haupt.h"
    #include "Info.h"
    #include "Compiler.h"
    #include "Discomp.h"
    #include "Senden.h"
    #include "Empfangen.h"
    #include "Optionen.h"
    
    #define Byteanzahl			3000
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    //#pragma link "ComDrv32"
    #pragma resource "*.dfm"
    TfrmHaupt *frmHaupt;
    #define COM_BUFFER_SIZE 16        // Read- und Write-Buffer-Size 
    HANDLE hCom;
    

    so das ist der obere Teill meiner .cpp-Datei

    und hier ist die Header Datei

    /*************************************************************************/
    /* Projekt:		Entwicklungsumgebung für SPS-System						 */
    /*																		 */
    /* Datei:       Haupt.h                                 				 */
    /*																		 */
    /* Aufgabe:     Headerfile fr SPS.C									 */
    /*																		 */
    /* Programmierer:  Timo Heitz und Andreas Bttner, TEL96AT   			 */
    /*																		 */
    /*-----------------------------------------------------------------------*/
    /* Funktionen:															 */
    /*																		 */
    /*																		 */
    /*-----------------------------------------------------------------------*/
    /* Hz	06.04.99														 */
    /*																		 */
    /*************************************************************************/
    #ifndef __Haupt_h
    #define __Haupt_h
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ComCtrls.hpp>
    #include <ExtCtrls.hpp>
    #include <jpeg.hpp>
    #include <Graphics.hpp>
    #include <Menus.hpp>
    #include <Dialogs.hpp>
    #include <ComDrv32.hpp>
    #include <Printers.hpp>
    
    /*-----------------------------------------------------------------------*/
    /*	allgemeine Definitionen												 */
    /*-----------------------------------------------------------------------*/
    #define Anfangs_Kennung		0xFA
    #define Ende_Kennung		0xFE
    
    #define Byteanzahl			3000
    #define Sicherheit          500
    #define StackSize           8192
    
    /*-----------------------------------------------------------------------*/
    /*	Klassen											 */
    /*-----------------------------------------------------------------------*/
    class TfrmHaupt : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TPageControl *TPage;
            TTabSheet *regHauptmenue;
            TButton *btnCompile;
            TButton *btnSenden;
            TButton *btnEmpfangen;
            TButton *btnOptionen;
            TButton *btnHilfe;
            TButton *btnEnde;
            TTabSheet *regAnweisungsliste;
            TTabSheet *regListdatei;
            TTabSheet *regBinaerdatei;
            TImage *Image1;
            TEdit *Edit4;
            TEdit *Edit3;
            TPanel *Panel1;
            TPanel *Panel2;
            TMainMenu *mnuHauptMenue;
            TMenuItem *mnuDatei;
            TMenuItem *mnuDateiNeu;
            TMenuItem *mnuDateiOeffnen;
            TMenuItem *mnuDateiSpeichern;
            TMenuItem *mnuN1;
            TMenuItem *mnuDateiDrucken;
            TMenuItem *mnuN2;
            TMenuItem *mnuDateiBeenden;
            TMenuItem *mnuBearbeiten;
            TMenuItem *mnuBearbeitenAusschneiden;
            TMenuItem *mnuBearbeitenKopieren;
            TMenuItem *mnuBearbeitenEinfgen;
            TMenuItem *mnuBearbeitenLoeschen;
            TMenuItem *mnuN3;
            TMenuItem *mnuBearbeitenFinden;
            TMenuItem *mnuBearbeitenErsetzen;
            TMenuItem *mnuHilfe;
            TMenuItem *mnuHilfeInhalt;
            TMenuItem *mnuN5;
            TMenuItem *mnuHilfeUeber;
            TRichEdit *rftAWL;
            TOpenDialog *odgOpen;
            TSaveDialog *sdgSave;
            TPrintDialog *pdgPrint;
            TFindDialog *fdgFind;
            TReplaceDialog *rdgReplace;
            TRichEdit *rftListdatei;
            TRichEdit *rftBinaer;
        TImage *Image2;
            void __fastcall btnHilfeClick(TObject *Sender);
            void __fastcall btnEndeClick(TObject *Sender);
            void __fastcall Info1Click(TObject *Sender);
            void __fastcall TPageChange(TObject *Sender);
            void __fastcall mnuFileExitClick(TObject *Sender);
            void __fastcall mnuHilfeUeberClick(TObject *Sender);
            void __fastcall mnuDateiBeendenClick(TObject *Sender);
            void __fastcall mnuDateiNeuClick(TObject *Sender);
            void __fastcall mnuDateiOeffnenClick(TObject *Sender);
            void __fastcall mnuDateiSpeichernClick(TObject *Sender);
            void __fastcall mnuDateiDruckenClick(TObject *Sender);
            void __fastcall FormCreate(TObject *Sender);
            void __fastcall mnuHilfeInhaltClick(TObject *Sender);
            void __fastcall mnuBearbeitenAusschneidenClick(TObject *Sender);
            void __fastcall mnuBearbeitenKopierenClick(TObject *Sender);
            void __fastcall mnuBearbeitenEinfgenClick(TObject *Sender);
            void __fastcall mnuBearbeitenLoeschenClick(TObject *Sender);
            void __fastcall mnuBearbeitenFindenClick(TObject *Sender);
            void __fastcall mnuBearbeitenErsetzenClick(TObject *Sender);
    
    	void __fastcall fdgFindFind(TObject *Sender);
    	void __fastcall rdgReplaceFind(TObject *Sender);
           	void __fastcall rdgReplaceReplace(TObject *Sender);
            void __fastcall btnCompileClick(TObject *Sender);
            void __fastcall btnSendenClick(TObject *Sender);
            void __fastcall btnEmpfangenClick(TObject *Sender);
        void __fastcall btnOptionenClick(TObject *Sender);
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
        void __fastcall CommPortDriverReceiveData(TObject *Sender,
              Pointer DataPtr, int DataSize);
       // void __fastcall btnFUPClick(TObject *Sender);
        void __fastcall Image2Click(TObject *Sender);
        void __fastcall rftAWLKeyPress(TObject *Sender, char &Key);
    
    private:	// Anwenderdeklarationen
    	AnsiString sTitel;
        AnsiString sFileName;
    
        void __fastcall SaveFileName(AnsiString FileName);
        void __fastcall CheckFileSave(TObject *Sender);
        void __fastcall PrintFooter(TRect& rect, int nLineHeight);
        void __fastcall Beenden(TObject *Sender);
    
    public:		// Anwenderdeklarationen
            __fastcall TfrmHaupt(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TfrmHaupt *frmHaupt;
    //---------------------------------------------------------------------------
    
    #ifndef __Haupt_h__
    #define __Haupt_h__
    
    /*-----------------------------------------------------------------------*/
    /*	projektglobale Variablen										 	 */
    /*-----------------------------------------------------------------------*/
    unsigned char	Schnittstelle;
    bool            NOP_Anzeige;
    
    char    Pfad_Sps_awl[MAXPATH] ,Pfad_Sps_lst[MAXPATH] ,Pfad_Sps_bin[MAXPATH];
    char    Pfad_SPS_Bin_txt[MAXPATH], Fup_exe[MAXPATH];
    char    Pfad_SPSCompErg[MAXPATH], SPS_ini[MAXPATH];
    HANDLE  COM_Port, h_PROGRESS, h_SENDEN, h_EIGENSCHAFTEN, h_EMPFANGEN;
    bool    Comp_Erg=false;
    bool    discompilieren=false;
    WORD    w_PROGRESS;
    char    StartVerzeichnis[MAXPATH];
    long    LetzterStart=0;
    
    /*-----------------------------------------------------------------------*/
    /*	lokale Funktionsprototypen fr SPS.C								 */
    /*-----------------------------------------------------------------------*/
    //int Menue();
    //void Editieren();
    //void Anzeigen_LST();
    //void Anzeigen_BIN();
    //void Optionen();
    //void Hilfe();
    char *aktuellerPfad(char *path);
    void threadSenden(void *threadno);
    void threadSendenProgress(void *threadno);
    void threadEmpfangenFenster(void *threadno);
    bool Schnittstellenergebnis(void);
    int open_com(void);
    int send(unsigned char);
    int close_com(void);
    int faerben(int);
    
    /*-----------------------------------------------------------------------*/
    /*	externe Funktionsprototypen 										 */
    /*-----------------------------------------------------------------------*/
    extern  void Init_Seriell(void);
    //extern  void Schreib_Bin(FILE *f,char b);
    extern  void Senden(void);
    extern  int Holen(void);
    extern  void Discompiler(void);
    extern  void Compiler(void);
    
    /*-----------------------------------------------------------------------*/
    /*	lokale Funktionen und Modulglobale Variablen						 */
    /*-----------------------------------------------------------------------*/
    
    unsigned char acDATEN[Byteanzahl+Sicherheit];
    bool    b_ABBRUCH=false;            //wenn false, dann nicht abbrechen
    bool    bSTARTPROGRESS=false;
    
    /*-----------------------------------------------------------------------*/
    #endif	/* __Haupt_h__ */
    #endif	/* __Haupt_h */
    /*************************************************************************/
    

    Brauche dringend hilfe hab noch 30 min bis mein Dozent was sehen will 😮



  • Setz doch deine globalen Variablen als "extern" in den Header (plus einer "richtigen" Definition im CPP-File) und nimm alles aus dem Header heraus, was man "außen" nicht sehen soll (modulglobale Variablen und lokale Funktionen).



  • wie du jetzt selber siehst, ist faerben keine member deiner klasse TfrmHaupt, allerdings versuchst du auf ein element dieser klasse von aussen zu zugreifen ohne die klasse selbst anzusprechen.



  • Hallo Sunday also du scheinst da problem jetzt wohl richtig gedeutet z haben mitlerweile erkennt er die Funktion als Funktion, nur kennt er die Richttextbox nicht mehr wie muß ich die den Deklarieren, bzw wie kann ich weiter auf die Eigenschaften von der Richtextbox zugreifen.

    MfG Felix



  • Du brauchst ein Objekt vom Typ TfrmHaupt, dann kannst du dessen Member-Variablen verändern. Woher du das bekommst, hängt von deinem Design ab (globale Variable oder Zugriffsfunktion bieten sich an).



  • also an alle Helfer ein Dankeschön

    folgendes war das Problem.

    Ich hatte tatsächlich 10 Zeilen oberhalb eine } beim auskommentieren mit ausgeklammert. daher hat der Compiler versucht us der Funktion eine Struktur zubauen wobei er kläglich gescheitert ist.

    Also mein Fehler



  • Kein Kommentar ... 😉


Anmelden zum Antworten