Problem mit Prozedur und Elemente der Form



  • Hallo klausB,

    ja dass dahcte icha uch, dass ich mein ring1 in die Form mit einfüge. Als in die Header-Datei

    //---------------------------------------------------------------------------
    
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Buttons.hpp>
    #include <ExtCtrls.hpp>
    #include <Graphics.hpp>
    #include <jpeg.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TImage *Image1;
            TImage *Image2;
            TImage *Image3;
            TImage *Image4;
            TImage *Image5;
            TImage *Image6;
            TImage *Image7;
            TLabel *Label1;
            TSpeedButton *SpeedButton1;
            TSpeedButton *SpeedButton2;
            TSpeedButton *SpeedButton3;
            TSpeedButton *SpeedButton4;
            TSpeedButton *SpeedButton5;
            TSpeedButton *SpeedButton6;
            TSpeedButton *SpeedButton7;
            TSpeedButton *SpeedButton8;
            TSpeedButton *SpeedButton9;
            TSpeedButton *SpeedButton10;
            TRadioGroup *RadioGroup1;
            TButton *Button1;
            void __fastcall RadioGroup1Click(TObject *Sender);
            void __fastcall Button1Click(TObject *Sender);
            void __fastcall SpeedButton1Click(TObject *Sender);
            void __fastcall SpeedButton6Click(TObject *Sender);
    private:	// Anwender-Deklarationen
    public:		// Anwender-Deklarationen
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    

    aberw ie mache ich das?? Also wie greife icha uf sie zu....

    ciao zani1303



  • ich ahbe nun die prozedur in den bereich public eingefügt, aber dann kennt er mein feld "index[6]" nicht mehr....

    ciao zani1303



  • hmm und die zugehörige cpp datei bitte auch posten ...


  • Mod

    Hallo

    unter private fuegst du das ein
    void __fastcall ring1 (void);

    und in der cpp

    void __fastcall Form1::ring1 (void)
    {
    ...
    ..
    }

    MfG
    Klaus



  • Hallo KlausB,

    ich werde es gleich mal ausprobieren.

    ciao zani1303



  • Hallo KlausB,

    was müsste ich denn schreiben, wenn ich in die Header diese Prozedure (in dem Fall Methode) schon deklaroeren würde.

    Also nicht die ganze Switch Funktion in die cpp???

    Das würde mich mal interessieren.

    ciao zani1303



  • Er würde den Quelltext bei jedem aufruf in den Speicher laden und nach einer weile würde das eine ganze menge sein, und so ist es sozusagen nur ein link zu der funktion und der reservierte speicher bleibt gleich..... so hab ich das mal gehört.



  • Hallo windoof,

    ich müsste also folgendes schreiben (ind ie Headerdatei unter private):

    void __fastcall ring1(void)
    {
    switch(index[0])
    {
    case 0: Image1->Picture->LoadFromFile("ringe\\black.jpg");
    break;

    case 1: Image1->Picture->LoadFromFile("ringe\\brown.bmp");
    break;

    case 2: Image1->Picture->LoadFromFile("ringe\\red.jpg");
    break;

    case 3: Image1->Picture->LoadFromFile("ringe\\orange.jpg");
    break;

    case 4: Image1->Picture->LoadFromFile("ringe\\yellow.jpg");
    break;

    case 5: Image1->Picture->LoadFromFile("ringe\\green.jpg");
    break;

    case 6: Image1->Picture->LoadFromFile("ringe\\blue.jpg");
    break;

    case 7: Image1->Picture->LoadFromFile("ringe\\violett.jpg");
    break;

    case 8: Image1->Picture->LoadFromFile("ringe\\grey.jpg");
    break;

    case 9: Image1->Picture->LoadFromFile("ringe\\white.jpg");
    break;
    }
    }
    [/cpp]

    und in der cpp bräuchte ichd ann nur folgendes schreiben:

    [/cpp]
    void __fastcall TForm1::ring1(void)
    {
    }
    [/cpp]

    und dann ruft er die switchfunktion auf???

    Stimmt das so???

    ciao zani1303



  • Also ich habe versucht die prozedur in der header zum implementieren, und dann einfach über die cpp

    void __fastcall TForm1::ring1(void)
    {
    } aufzurufen. hat aber nicht funktioniert.

    Wie könnte es denn funktionieren.

    ciao zani1303


  • Mod

    Hallo

    versuchs doch erstmal mit etwas Literatur zu dem Thema (C++ Buch / Grundlagen)

    im header sind dir Deklarationenen
    in der cpp sind die Methoden

    MfG
    Klaus



  • Also, mit C++ beschäftige ich mich nun schon eine weile. Aber ich dachte, dass man in die Header-Datei auch die deklaration implementieren kann.

    Also gehen tut das wohl garnicht. Ich hatte angenommen, dass man Klasse udn Methode in eine implementieren kann.

    ciao zani1303



  • zani1303,

    zani1303 schrieb:

    Also, mit C++ beschäftige ich mich nun schon eine weile. Aber ich dachte, dass man in die Header-Datei auch die deklaration implementieren kann.

    Also gehen tut das wohl garnicht. Ich hatte angenommen, dass man Klasse udn Methode in eine implementieren kann.

    ciao zani1303

    aus Deinen Fragen kann man schließen, daß Du Dich zumindest mit dem C++-Klassenkonzept noch nicht sonderlich beschäftigt hast. Das ist so ziemlich das Wichtigste überhaupt in der Sprache. Wenn man sich da etwas Wissen aneignet, fängt man irgendwann an zu verstehen was der C++Builder eigentlich da treibt - ging mir zumindest so. Ausserdem benutzen praktisch alle großen Sprachen Klassen (Java, Delphi, C#, ...) und man lernt einfach was für's ganze (Programmierer-)Leben.
    Der Ratschlag von KlausB, mal in ein Buch zu schauen, ist deshalb ein echt wertvoller.


Anmelden zum Antworten