AccessViolation bei Dialog



  • Ich habe bei mir in meinem Projekt einen neuen Dialog aus dem Reiter
    C++ Builder-Dateien -> Standarddialogfeld(Vertikal)
    in mein projekt aufgenommen.
    Erstmal leer erstellt, den Namen des Dialos auf Dialog geändert und in mein hauptprogramm eingebunden den Header.

    Wenn ich jetzt die Eigenschaft visible über den Objektinspektor auf true setze und das Programm starte wird der Dialog direkt mit erzeugt und angezeigt.
    Wenn ich allerdings im Objektinspektor den Wert auf false setze und im Hauptprogramm manuell auf true ändern will, kommt ein Popup mit der Meldung "EAccessViolation".

    Warum???

    Hier der Code:

    #include "OKCANCL2.h"
    
    Dialog->Visible=true; //erzeugt Fehler wenn Wert im Objektinspektor auf false
    //Dialog->Visible=true; //erzeugt keinen Fehler, egal ob Wert im Objektinspektor auf true oder false
    

    Dialog-Datei:

    //---------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include "OKCANCL2.h"
    //---------------------------------------------------------------------
    #pragma resource "*.dfm"
    TDialog *Dialog;
    //--------------------------------------------------------------------- 
    __fastcall TDialog::TDialog(TComponent* AOwner)
    	: TForm(AOwner)
    {
    }
    //---------------------------------------------------------------------
    

    Header:

    //----------------------------------------------------------------------------
    #ifndef OkCancl2H
    #define OkCancl2H
    //----------------------------------------------------------------------------
    #include <vcl\ExtCtrls.hpp>
    #include <vcl\Buttons.hpp>
    #include <vcl\StdCtrls.hpp>
    #include <vcl\Controls.hpp>
    #include <vcl\Forms.hpp>
    #include <vcl\Graphics.hpp>
    #include <vcl\Classes.hpp>
    #include <vcl\SysUtils.hpp>
    #include <vcl\Windows.hpp>
    #include <vcl\System.hpp>
    //----------------------------------------------------------------------------
    class TDialog : public TForm
    {
    __published:
    	TButton *OKBtn;
    	TButton *CancelBtn;
    	TBevel *Bevel1;
    private:
    public:
    	virtual __fastcall TDialog(TComponent* AOwner);
    };
    //----------------------------------------------------------------------------
    extern PACKAGE TDialog *Dialog;
    //----------------------------------------------------------------------------
    #endif
    


  • hab das Problem lösen können.



  • Hi,

    und, woran hat es gelegen / woher kam die Zugriffsverletzung?

    MfG


Anmelden zum Antworten