Variablen über mehrere Funktionen verfügbar machen ?



  • halt,

    funtzt aber dochnicht ganzso wie gesagt,

    hab also meine klasse.h includet und in unit1.h im privat bereich:

    einfach klassenname objekt; geschrieben

    und erhalte folgenden fehler:

    [C++ Fehler] Unit1.h(23): E2303 Typname erwartet



  • wenn du #include "klasse.h" in die unit.h reinschreibst, muss gehen.



  • aha also in die unit.h includen und nicht in die unit.cpp!
    werd ich mal probieren ...



  • ok, funtzt.
    und ich muss die Headerdatei in die unit.h includen da ich dort das objekt erzeuge oder warum ???



  • wie wärs mit einwenig C/C++ Grundlagen?



  • func schrieb:

    und lass mich raten wenn ich nun von einem anderen formular ebenfalls auf die selbe klasse zugreifen will schreibe ich die zuweisung klasse objekt; einfach in public und könnte dann von unit2 z.b. form1->objekt->setX(3) machen, gell ?

    Nun lies dir nochmals den Post von "AndreasW" am 24 Nov 2003 um 11:31

    -junix



  • hab ich,
    ich bekomme sobald ich nun das ganze compilieren will immer folgenden fehler:

    [Linker Fehler] Unresolved external 'TForm1::setZahl(int)' referenced from E:\CPP3\PUBLIC FUNKTIONEN\MAIN.OBJ

    so ist mein source:

    Main.h

    //---------------------------------------------------------------------------
    
    #ifndef MainH
    #define MainH
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include "function1.h"
    
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TButton *Button1;
            void __fastcall Button1Click(TObject *Sender);
    private:	// Anwender-Deklarationen
    public:		// Anwender-Deklarationen
            __fastcall TForm1(TComponent* Owner);
            int setZahl(int zahl);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    

    function1.h

    int setZahl(int zahl);
    

    function1.cpp

    int setZahl(int zahl1)
    {
      static int back = 0;
      back = back + zahl1;
    
      return back;
    }
    

    und das ist immer der fehler 😞
    [Linker Fehler] Unresolved external 'TForm1::setZahl(int)' referenced from E:\CPP3\PUBLIC FUNKTIONEN\MAIN.OBJ



  • "setZahl" müsste hald schon ne Klassenmethode und nicht einfach ne normale C-Style Funktion sein...

    -junix



  • kann ich "einfache" funktionen nicht global zugänglich machen ???
    muss ich dann wirklich in jede unit die funktion reinschreiben, das kann doch nicht sein, oder ?



  • klar ich könnte extrem fuschen um das zu erreichen was ich möchte indem ich einen button mache, diesen visible false setzen und unter im dann denn code anbringe. damit könnte ich dann auch von fremden units button click ansprechen, aber das kann es doch nicht sein. bin ein anfänger und fusche schon noch etwas aber ich will es eben langsam richtig lernen ....

    ich möchte einfach eine funktion von anderen units aus ansprechen können, das ist eigentlich alles und das muss doch mit c++ einfach gehen, oder ???



  • Hi,
    schreib doch einfach statt:

    func schrieb:

    int setZahl(int zahl1)
    {
      static int back = 0;
      back = back + zahl1;
    
      return back;
    }
    

    das hier:

    [cpp]int **TForm1::**setZahl(int zahl1)
    {
    static int back = 0;
    back = back + zahl1;

    return back;
    }
    [/cpp]

    MfG

    Alexander Sulfrian



  • Vater unser im Forum,
    dein Reich komme dein Wille geschehe,
    und beschere Alexander Sulfrian einen angenehmen zufriedenen Abend ...

    Juhuu es geht !!!!!!!!!!!!!!!!

    Danke Alexander Sulfrian,
    das war ja echt der hammer bis mir das jemand sagen konnte !!!!

    Das war genau das was ich gesucht habe DANKE VIELMALLS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



  • Hi,
    ich zitiere mal:

    junix schrieb:

    "setZahl" müsste hald schon ne Klassenmethode und nicht einfach ne normale C-Style Funktion sein...

    Das ist genau das was ich dir jetzt mal anders gesagt habe!

    MfG

    Alexander Sulfrian



  • naja kenn mich noch nichtsogut aus, daher hab ich es net verstanden 😞
    sagmal ist das eigentlich fusch oder ist das soweit ok wie ich das mache ?



  • alex kleiner tipp,
    kuck mal bei deiner page denn bug an wenn man auf forum klickt:

    Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /mnt/host-users/s/u/l/sulfrian/forum/db/mysql4.php on line 48

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /mnt/host-users/s/u/l/sulfrian/forum/db/mysql4.php on line 118
    message_die() was called multiple times. This isn't supposed to happen. Was message_die() used in page_tail.php?



  • Hi,
    sieht eigentlich ganz gut aus! Ich würder allerding "back += zahl;" schreiben! Aber das ist ja egal!

    MfG

    Alexander Sulfrian

    PS: Ich weiß! Ich suche im Moment gerade einen besseren Server! Hatte gereade keine Lust die MySQL DB einzurichten!


Anmelden zum Antworten