Unterprogramme in 2Forms verwenden!



  • Will ein UP, dass ich im Form1-file geschrieben habe mit einem Button Click aufrufen bekomme aber immer Fehlermeldung! Habe sicherlich in der Header- Datei etwas falsch gemacht! Wo muss ich void Startpunkt_festlegen() definieren?? Oder kompletter Blödsinn was ich versuche? mfg

    //---------------------------------------------------------------------------
    
    #ifndef kurveH
    #define kurveH
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <Menus.hpp>
    //---------------------------------------------------------------------------
    class Tfrmbrennkurve : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TMainMenu *MainMenu1;
            TMenuItem *menu;
            TMenuItem *Neu;
            TMenuItem *oeffnen;
            TMenuItem *speichern;
            TMenuItem *ende;
            void  Startpunkt_festlegen();              //hier falsch?
            void __fastcall NeuClick(TObject *Sender);
            void __fastcall endeClick(TObject *Sender);
            void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
              TShiftState Shift, int X, int Y);
    private:                         	// Anwender-Deklarationen
    public:  int maxTemp,maxDauer;
             bool ok;
             void  Startpunkt_festlegen();       //hier auch falsch!?   	
            __fastcall Tfrmbrennkurve(TComponent* Owner);
    };
    
    //---------------------------------------------------------------------------
    extern PACKAGE Tfrmbrennkurve *frmbrennkurve;
    //---------------------------------------------------------------------------
    #endif
    


  • Hallo

    mit einem Button Click aufrufen bekomme aber immer Fehlermeldung!

    wie sieht der Aufruf aus? Was für eine Fehlermeldung genau?

    Wo muss ich void Startpunkt_festlegen() definieren??

    Was genau soll denn die Funktion/Methode machen?

    Ich glaube du solltest mal nach TForm::ShowModal() schauen.
    Denn du brauchst nur den Header des UP in deinem MainForm includen, dann kannst du mit dieser Methode das UP anzeigen lassen.

    bis bald
    akari



  • In Button Click (Form2) rufe ich UP so auf:

    frmbrennkurve->Startpunkt_festlegen();
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "kurve.h"
    #include "endwert.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    Tfrmbrennkurve *frmbrennkurve;
    
    #define anz=100;
    //---------------------------------------------------------------------------
    TPoint Startpunkt, Origin;   //Variablendeklaration
    
    int RR,LR,RO,RU,x,y;    //Rechter-,Linker-,....-rand; x,y für Starpunkt
    bool Drawing;
    
    //---------------------------------------------------------------------------
    
    __fastcall Tfrmbrennkurve::Tfrmbrennkurve(TComponent* Owner)
            : TForm(Owner)
    {
    }
    
    //---------------------------------------------------------------------------
    
    void Startpunkt_festlegen();
    void Endwerte_einlesen();
    void Diagramm_zeichnen();
    void Kurveneinstellung();
    
    //---------------------------------------------------------------------------
    void __fastcall Tfrmbrennkurve::NeuClick(TObject *Sender)
    {
    
     Endwerte_einlesen();
    
     Diagramm_zeichnen();
     Kurveneinstellung();
    }
    //---------------------------------------------------------------------------
    
    void Endwerte_einlesen()
    {
     frmendwerte->Show();
    
    }
    void Startpunkt_festlegen()
    {
    ........
    }
    

    Ist jetzt klarer? Will in Form2, dass up, das ich in Form1 habe wie oben aufrufen
    so bekomme ich folgende Fehlermeldung:
    [C++ Fehler] endwert.cpp(22): E2316 'Startpunkt_festlegen' ist kein Element von 'Tfrmbrennkurve'! Denke mir deshalb, dass ich void Startpunkt_festlegen in Header definieren muss!??
    mfg

    Edit:
    Bitte die Code-Tags verwenden. Danke!



  • Noname87 schrieb:

    In Button Click (Form2) rufe ich UP so auf:

    frmbrennkurve->Startpunkt_festlegen();
    

    ...

    Noname87 schrieb:

    void Startpunkt_festlegen();
    


  • Müsste das hier nicht dasselbe sein, wie mit normalen Variablen?

    Form1->Startpunkt_festlegen();
    


  • Hallo,

    Was junix meinte ist, dass bei der Definition einer Memberfunktion der Klassenname mit angegeben werden muss. Bei Noname87 stimmen Definition und Deklaration nicht überein.
    also in der cpp:

    void Tfrmbrennkurve::Startpunkt_festlegen()
    {
    ........
    }
    


  • Danke! Problem gelöst! Danke für die Hilfe! mfg



  • Braunstein schrieb:

    Was junix meinte ist, dass bei der Definition einer Memberfunktion der Klassenname mit angegeben werden muss.[/cpp]

    Braunstein, der junix-interpreter (o; SCNR

    Noname87: Wäre sich zu überlegen ob die Funktionen wirklich nach FormA oder FormB gehören, oder ob sie nicht in ein eigenes Objekt gehören auf das FormA und B zugreifen...


Anmelden zum Antworten