locked
Gegenseitige Sichtbarkeit von "Nebenklassen" (verwandte Klassen) mit VC++ Express 2008 (1 eingebundene .h Datei) RRS feed

  • Frage

  • Hallo,

    Nach der Namespace Zusammenfassung zeigt es zB. zwei "Nebenklassen"(miteinander verwandte Klassen) graphisch an, selbe lassen sich auch jeweils auswaehlen, doch es kommt immer die Fehlermeldung:

    "Form1"(KLasse): Das Symbol links neben "::" muss ein Typ sein."

    "'listBox1': Ist kein Element von 'Bildbetrachter01'(=namespace)"

    Vielen Dank im voraus AAAFFF

    Dienstag, 30. März 2010 14:39

Antworten

Alle Antworten

  • Hallo AAAFFF!

    > "Form1"(KLasse): Das Symbol links neben "::" muss ein Typ sein."

    Du hast einen Programmierfehler...

    Lies bitte das hier:
    http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/

    Wenn Du wirklich C++/CLI weiter machen willst, dann musst Du zuerst mal
    die Grundlagen lernen... und wenn wir bei diesem Problem weiterhelfen
    sollen, so musst Du uns den Code zeigen, den Du verwendet hast...

    Jochen Kalmbach (MVP VC++)
    Dienstag, 30. März 2010 15:58
  • /*Ein Bildbetrachter(copyrighted) wo ich gerne einige Zusatzfunktionalitaeten implementieren moechte, DIES IST DIE formMax.h
    von selber geht nicht auf "Form1 zuzugreifen" */


    #pragma once

    /*NICHT WEGLASSEN DAS IST WICHTIG SONST BRINGT ER UNMASSEN VON FEHLERMELDUNGEN  */

    ///////////#include "Form1.h"

     

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

     

    namespace Bildbetrachter01 {

     


     /// <summary>
     /// Zusammenfassung für formMax
     ///
     /// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
     ///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
     ///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
     ///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
     ///          arbeiten, die diesem Formular zugewiesen sind.
     /// </summary>
     public ref class formMax : public System::Windows::Forms::Form
     {
      
      formMax ^fensterBilderschau;//selber hinzugefuegter Code(Handle auf "formMax")


       
           

     public:
      formMax(void)
      {
       InitializeComponent();
       //
       //TODO: Konstruktorcode hier hinzufügen.
       //

     

      }
     public:

       Void bildLaden(String ^bildname)
       {
       
        pictureBoxFormMax->Load(bildname);
       
       }

     protected:
      /// <summary>
      /// Verwendete Ressourcen bereinigen.
      /// </summary>
      ~formMax()
      {
       if (components)
       {
        delete components;
       }
      }
     private: System::Windows::Forms::PictureBox^  pictureBoxFormMax;
     public: System::Windows::Forms::Timer^  timer1;
     private: System::ComponentModel::IContainer^  components;
        public: System::Windows::Forms::ListBox^  listBox1;
        public: System::Windows::Forms::Button^  buttonStarten;

     protected:

     protected:

     private:
      /// <summary>
      /// Erforderliche Designervariable.
      /// </summary>


     
    #pragma region Windows Form Designer generated code
      /// <summary>
      /// Erforderliche Methode für die Designerunterstützung.
      /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
      /// </summary>
      void InitializeComponent(void)
      {
       //nachfolgender 1.ter Satz selber hinzugefuegt(aus Form1.h):
                    this->listBox1 = (gcnew System::Windows::Forms::ListBox());


       this->components = (gcnew System::ComponentModel::Container());
       this->pictureBoxFormMax = (gcnew System::Windows::Forms::PictureBox());
       this->timer1 = (gcnew System::Windows::Forms::Timer(this->components));
       (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBoxFormMax))->BeginInit();
       this->SuspendLayout();
       //
       // pictureBoxFormMax
       //
       this->pictureBoxFormMax->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)
        | System::Windows::Forms::AnchorStyles::Left)
        | System::Windows::Forms::AnchorStyles::Right));
       this->pictureBoxFormMax->Location = System::Drawing::Point(0, 0);
       this->pictureBoxFormMax->Name = L"pictureBoxFormMax";
       this->pictureBoxFormMax->Size = System::Drawing::Size(400, 292);
       this->pictureBoxFormMax->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Zoom;
       this->pictureBoxFormMax->TabIndex = 0;
       this->pictureBoxFormMax->TabStop = false;
       this->pictureBoxFormMax->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &formMax::pictureBoxFormMax_MouseDoubleClick);
       this->pictureBoxFormMax->MouseClick += gcnew System::Windows::Forms::MouseEventHandler(this, &formMax::pictureBoxFormMax_MouseClick);
       //
       // timer1
       //
       this->timer1->Interval = 5000;
       //
       // formMax
       //
       this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
       this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
       this->ClientSize = System::Drawing::Size(400, 291);
       this->Controls->Add(this->pictureBoxFormMax);
       this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
       this->Location = System::Drawing::Point(349, 52);
       this->MaximizeBox = false;
       this->MinimizeBox = false;
       this->Name = L"formMax";
       this->Text = L"Starten";
       this->TopMost = true;
       this->WindowState = System::Windows::Forms::FormWindowState::Maximized;
       this->Load += gcnew System::EventHandler(this, &formMax::formMax_Load);
       this->Click += gcnew System::EventHandler(this, &formMax::buttonStarten_Click);
       (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBoxFormMax))->EndInit();
       this->ResumeLayout(false);
       /*  //
       // buttonStarten
       //
       this->buttonStarten->Location = System::Drawing::Point(349, 53);
       this->buttonStarten->Name = L"buttonStarten";
       this->buttonStarten->Size = System::Drawing::Size(75, 23);
       this->buttonStarten->TabIndex = 4;
       this->buttonStarten->Text = L"Starten";
       //this->buttonStarten->Click += gcnew System::Windows::Forms::MouseEventHandler(this, &formMax::buttonStarten_Click);
                */
      }

     

    #pragma endregion
     private: System::Void formMax_Load(System::Object^  sender, System::EventArgs^  e)
        {

        
        
        }

     

     

     

       
     public: System::Void pictureBoxFormMax_MouseClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
        {
          MessageBox::Show("Test","Test");
                       //ein neues Fenster fuer die Bilderschau erzeugen
        ///fensterBilderschau = gcnew formMax;
         fensterBilderschau->timer1_Tick(sender,e);
        }
     public: System::Void pictureBoxFormMax_MouseDoubleClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
        {
         //MessageBox::Show("Test","Test");
        
        }

       //////////////////////////////////////////////////////////////////////////////////////////
     public: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e)
       {
        MessageBox::Show("innerhalb FormMax Objekt ruft das aufs Bild klicken timer1_Tick an","Test");

        if (/*Bildbetrachter01::Form1::*/listBox1->SelectedIndex < listBox1->Items->Count -1)
        {
         //den naechsten Eintrag markieren
                     listBox1->SelectedIndex++;

     

            //und das Bild laden
            fensterBilderschau->bildLaden( listBox1->SelectedItem->ToString());


         //Einen Sound aus der Systemsteuerung abspielen
         System::Media::SystemSounds::Asterisk->Play();
        }
        else
        {
        //die Markierungen loeschen
         listBox1->SelectedIndex = -1;
         //den Timer anhalten
         timer1->Stop();

         //das Fenster Bilderschau schliessen
         fensterBilderschau->Close();


       
       
        }
      }

            //*****************************************************************************************
      public: System::Void buttonStarten_Click(System::Object^  sender, System::EventArgs^  e)
       {

        MessageBox::Show("Diesen ruft er an","Test");

        //Befinden sich ueberhaupt Eintraege in der Liste?

        //Wenn nicht, erzeugen wir eine Meldung und verlassen die Methode wieder

        if ( listBox1->Items->Count == 0 )
        {
          MessageBox::Show("Sie müssen erst Dateien auswählen!","Fehler");
            return;
        }
                 
        //ist kein Eintrag im Listenfeld markiert?
        //dann den ersten Eintrag markieren
        if ( listBox1->SelectedIndex == -1 )
           {
             listBox1->SelectedIndex = 0;
           }

        //ein neues Fenster fuer die Bilderschau erzeugen
        fensterBilderschau = gcnew formMax;

        //das erste Bild laden
        fensterBilderschau->bildLaden( listBox1->SelectedItem->ToString());

        //den Titel des Formulars auf "Bilderschau" setzen
        fensterBilderschau->Text = "Agstner Florian's Bilderschau";

        //naechste 2 Zeilen sind neu:
        //Das Systemmenue und das Schliessen-Symbol ausblenden
        fensterBilderschau->ControlBox = false;

        //das Formular anzeigen
        fensterBilderschau->Show();

                 //nach anklicken von Button "Start" den Timer starten
                 timer1->Start();

                

       }
            //*****************************************************************************************
       ///////////Ende "formMax"///////////////////////////////////////////////////////////////////////////////
    };
    }

     

    //-------------------------------------------------------------------------
    #pragma once

    #include "formMax.h"


    namespace Bildbetrachter01 {


     using namespace System;
     using namespace System::ComponentModel;
     using namespace System::Collections;
     using namespace System::Windows::Forms;
     using namespace System::Data;
     using namespace System::Drawing;

     /// <summary>
     /// Zusammenfassung für Form1
     ///
     /// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
     ///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
     ///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
     ///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
     ///          arbeiten, die diesem Formular zugewiesen sind.
     /// </summary>
     public ref class Form1 : public System::Windows::Forms::Form
     {
        formMax ^fensterBilderschau;//selber hinzugefuegter Code(Handle auf "formMax")
     Bildbetrachter01::Form1 ^form1Test;

     public:
      Form1(void)
      {
       InitializeComponent();
       //
       //TODO: Konstruktorcode hier hinzufügen.
       //
      }

     protected:
      /// <summary>
      /// Verwendete Ressourcen bereinigen.
      /// </summary>
      ~Form1()
      {
       if (components)
       {
        delete components;
       }
      }
     private: System::Windows::Forms::TabControl^  tabControl1;
     private: System::Windows::Forms::TabPage^  tabPageEinzel;
     protected:

     private: System::Windows::Forms::TabPage^  tabPageSchau;
     private: System::Windows::Forms::Button^  buttonBeenden;

     private: System::Windows::Forms::Button^  buttonOeffnen;

     private: System::Windows::Forms::Button^  buttonAnzeigen;
     private: System::Windows::Forms::TextBox^  textBoxDateiAuswahl;

     private: System::Windows::Forms::CheckBox^  checkBoxNeuesFenster;

     private: System::Windows::Forms::CheckBox^  checkBoxOptimaleGroesse;
     private: System::Windows::Forms::PictureBox^  pictureBox1;
     private: System::Windows::Forms::OpenFileDialog^  openFileDialog1;
     private: System::Windows::Forms::Button^  buttonBeenden1;

     private: System::Windows::Forms::Button^  buttonStarten;

     private: System::Windows::Forms::Button^  buttonAuswaehlen;

     //hier befand sich das Handle listBox
        public: System::Windows::Forms::ListBox^  listBox1;
     private: System::Windows::Forms::OpenFileDialog^  openFileDialog2;

     private: System::ComponentModel::IContainer^  components;

     


     private:
      /// <summary>
      /// Erforderliche Designervariable.
      /// </summary>


    #pragma region Windows Form Designer generated code
      /// <summary>
      /// Erforderliche Methode für die Designerunterstützung.
      /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
      /// </summary>
      void InitializeComponent(void)
      {
       this->tabControl1 = (gcnew System::Windows::Forms::TabControl());
       this->tabPageEinzel = (gcnew System::Windows::Forms::TabPage());
       this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
       this->checkBoxNeuesFenster = (gcnew System::Windows::Forms::CheckBox());
       this->checkBoxOptimaleGroesse = (gcnew System::Windows::Forms::CheckBox());
       this->textBoxDateiAuswahl = (gcnew System::Windows::Forms::TextBox());
       this->buttonBeenden = (gcnew System::Windows::Forms::Button());
       this->buttonOeffnen = (gcnew System::Windows::Forms::Button());
       this->buttonAnzeigen = (gcnew System::Windows::Forms::Button());
       this->tabPageSchau = (gcnew System::Windows::Forms::TabPage());
       this->buttonBeenden1 = (gcnew System::Windows::Forms::Button());
       this->buttonStarten = (gcnew System::Windows::Forms::Button());
       this->buttonAuswaehlen = (gcnew System::Windows::Forms::Button());
       this->listBox1 = (gcnew System::Windows::Forms::ListBox());
       this->openFileDialog1 = (gcnew System::Windows::Forms::OpenFileDialog());
       this->openFileDialog2 = (gcnew System::Windows::Forms::OpenFileDialog());
       this->tabControl1->SuspendLayout();
       this->tabPageEinzel->SuspendLayout();
       (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->BeginInit();
       this->tabPageSchau->SuspendLayout();
       this->SuspendLayout();
       //
       // tabControl1
       //
       this->tabControl1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)
        | System::Windows::Forms::AnchorStyles::Left)
        | System::Windows::Forms::AnchorStyles::Right));
       this->tabControl1->Controls->Add(this->tabPageEinzel);
       this->tabControl1->Controls->Add(this->tabPageSchau);
       this->tabControl1->Location = System::Drawing::Point(0, 0);
       this->tabControl1->Name = L"tabControl1";
       this->tabControl1->SelectedIndex = 0;
       this->tabControl1->Size = System::Drawing::Size(440, 380);
       this->tabControl1->TabIndex = 0;
       this->tabControl1->Enter += gcnew System::EventHandler(this, &Form1::tabControl1_Enter);
       //
       // tabPageEinzel
       //
       this->tabPageEinzel->Controls->Add(this->pictureBox1);
       this->tabPageEinzel->Controls->Add(this->checkBoxNeuesFenster);
       this->tabPageEinzel->Controls->Add(this->checkBoxOptimaleGroesse);
       this->tabPageEinzel->Controls->Add(this->textBoxDateiAuswahl);
       this->tabPageEinzel->Controls->Add(this->buttonBeenden);
       this->tabPageEinzel->Controls->Add(this->buttonOeffnen);
       this->tabPageEinzel->Controls->Add(this->buttonAnzeigen);
       this->tabPageEinzel->Location = System::Drawing::Point(4, 22);
       this->tabPageEinzel->Name = L"tabPageEinzel";
       this->tabPageEinzel->Padding = System::Windows::Forms::Padding(3);
       this->tabPageEinzel->Size = System::Drawing::Size(432, 354);
       this->tabPageEinzel->TabIndex = 0;
       this->tabPageEinzel->Text = L"Einzelbild";
       this->tabPageEinzel->UseVisualStyleBackColor = true;
       this->tabPageEinzel->Enter += gcnew System::EventHandler(this, &Form1::tabPageEinzel_Enter);
       //
       // pictureBox1
       //
       this->pictureBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)
        | System::Windows::Forms::AnchorStyles::Left)
        | System::Windows::Forms::AnchorStyles::Right));
       this->pictureBox1->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D;
       this->pictureBox1->Location = System::Drawing::Point(3, 6);
       this->pictureBox1->Name = L"pictureBox1";
       this->pictureBox1->Size = System::Drawing::Size(337, 291);
       this->pictureBox1->TabIndex = 6;
       this->pictureBox1->TabStop = false;
       //
       // checkBoxNeuesFenster
       //
       this->checkBoxNeuesFenster->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
       this->checkBoxNeuesFenster->AutoSize = true;
       this->checkBoxNeuesFenster->Location = System::Drawing::Point(254, 329);
       this->checkBoxNeuesFenster->Name = L"checkBoxNeuesFenster";
       this->checkBoxNeuesFenster->Size = System::Drawing::Size(95, 17);
       this->checkBoxNeuesFenster->TabIndex = 5;
       this->checkBoxNeuesFenster->Text = L"Neues Fenster";
       this->checkBoxNeuesFenster->UseVisualStyleBackColor = true;
       //
       // checkBoxOptimaleGroesse
       //
       this->checkBoxOptimaleGroesse->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
       this->checkBoxOptimaleGroesse->AutoSize = true;
       this->checkBoxOptimaleGroesse->Location = System::Drawing::Point(8, 329);
       this->checkBoxOptimaleGroesse->Name = L"checkBoxOptimaleGroesse";
       this->checkBoxOptimaleGroesse->Size = System::Drawing::Size(99, 17);
       this->checkBoxOptimaleGroesse->TabIndex = 4;
       this->checkBoxOptimaleGroesse->Text = L"Optimale Größe";
       this->checkBoxOptimaleGroesse->UseVisualStyleBackColor = true;
       this->checkBoxOptimaleGroesse->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBoxOptimaleGroesse_CheckedChanged);
       //
       // textBoxDateiAuswahl
       //
       this->textBoxDateiAuswahl->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Bottom | System::Windows::Forms::AnchorStyles::Left));
       this->textBoxDateiAuswahl->Location = System::Drawing::Point(8, 303);
       this->textBoxDateiAuswahl->Name = L"textBoxDateiAuswahl";
       this->textBoxDateiAuswahl->Size = System::Drawing::Size(416, 20);
       this->textBoxDateiAuswahl->TabIndex = 3;
       //
       // buttonBeenden
       //
       this->buttonBeenden->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
       this->buttonBeenden->Location = System::Drawing::Point(346, 117);
       this->buttonBeenden->Name = L"buttonBeenden";
       this->buttonBeenden->Size = System::Drawing::Size(75, 23);
       this->buttonBeenden->TabIndex = 2;
       this->buttonBeenden->Text = L"Beenden";
       this->buttonBeenden->UseVisualStyleBackColor = true;
       this->buttonBeenden->Click += gcnew System::EventHandler(this, &Form1::buttonBeenden_Click);
       //
       // buttonOeffnen
       //
       this->buttonOeffnen->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
       this->buttonOeffnen->Location = System::Drawing::Point(346, 71);
       this->buttonOeffnen->Name = L"buttonOeffnen";
       this->buttonOeffnen->Size = System::Drawing::Size(75, 23);
       this->buttonOeffnen->TabIndex = 1;
       this->buttonOeffnen->Text = L"Öffnen";
       this->buttonOeffnen->UseVisualStyleBackColor = true;
       this->buttonOeffnen->Click += gcnew System::EventHandler(this, &Form1::buttonOeffnen_Click);
       //
       // buttonAnzeigen
       //
       this->buttonAnzeigen->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
       this->buttonAnzeigen->Location = System::Drawing::Point(346, 23);
       this->buttonAnzeigen->Name = L"buttonAnzeigen";
       this->buttonAnzeigen->Size = System::Drawing::Size(75, 23);
       this->buttonAnzeigen->TabIndex = 0;
       this->buttonAnzeigen->Text = L"Anzeigen";
       this->buttonAnzeigen->UseVisualStyleBackColor = true;
       this->buttonAnzeigen->Click += gcnew System::EventHandler(this, &Form1::buttonAnzeigen_Click);
       //
       // tabPageSchau
       //
       this->tabPageSchau->Controls->Add(this->buttonBeenden1);
       this->tabPageSchau->Controls->Add(this->buttonStarten);
       this->tabPageSchau->Controls->Add(this->buttonAuswaehlen);
       this->tabPageSchau->Controls->Add(this->listBox1);
       this->tabPageSchau->Location = System::Drawing::Point(4, 22);
       this->tabPageSchau->Name = L"tabPageSchau";
       this->tabPageSchau->Padding = System::Windows::Forms::Padding(3);
       this->tabPageSchau->Size = System::Drawing::Size(432, 354);
       this->tabPageSchau->TabIndex = 1;
       this->tabPageSchau->Text = L"Bilderschau";
       this->tabPageSchau->UseVisualStyleBackColor = true;
       this->tabPageSchau->Enter += gcnew System::EventHandler(this, &Form1::tabPageSchau_Enter);
       //
       // buttonBeenden1
       //
       this->buttonBeenden1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
       this->buttonBeenden1->Location = System::Drawing::Point(349, 99);
       this->buttonBeenden1->Name = L"buttonBeenden1";
       this->buttonBeenden1->Size = System::Drawing::Size(75, 23);
       this->buttonBeenden1->TabIndex = 3;
       this->buttonBeenden1->Text = L"Beenden";
       this->buttonBeenden1->UseVisualStyleBackColor = true;
       this->buttonBeenden1->Click += gcnew System::EventHandler(this, &Form1::buttonBeenden_Click);
       //
       // buttonStarten
       //
       this->buttonStarten->Location = System::Drawing::Point(349, 53);
       this->buttonStarten->Name = L"buttonStarten";
       this->buttonStarten->Size = System::Drawing::Size(75, 23);
       this->buttonStarten->TabIndex = 4;
       this->buttonStarten->Text = L"Starten";
       this->buttonStarten->MouseClick += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::buttonStarten_MouseClick);
       //
       // buttonAuswaehlen
       //
       this->buttonAuswaehlen->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
       this->buttonAuswaehlen->Location = System::Drawing::Point(349, 6);
       this->buttonAuswaehlen->Name = L"buttonAuswaehlen";
       this->buttonAuswaehlen->Size = System::Drawing::Size(75, 23);
       this->buttonAuswaehlen->TabIndex = 1;
       this->buttonAuswaehlen->Text = L"Auswählen";
       this->buttonAuswaehlen->UseVisualStyleBackColor = true;
       this->buttonAuswaehlen->Click += gcnew System::EventHandler(this, &Form1::buttonAuswaehlen_Click);
       //
       // listBox1
       //
       this->listBox1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)
        | System::Windows::Forms::AnchorStyles::Left)
        | System::Windows::Forms::AnchorStyles::Right));
       this->listBox1->FormattingEnabled = true;
       this->listBox1->Location = System::Drawing::Point(8, 6);
       this->listBox1->Name = L"listBox1";
       this->listBox1->Size = System::Drawing::Size(335, 251);
       this->listBox1->TabIndex = 0;
       //
       // openFileDialog1
       //
       this->openFileDialog1->Filter = L"Graphikdateien| *.bmp;*.gif;*.jpg;*.png;*.tif;*.wmf";
       this->openFileDialog1->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Form1::openFileDialog1_FileOk);
       //
       // openFileDialog2
       //
       this->openFileDialog2->Filter = L"Graphikdateien| *.bmp;*.gif;*.jpg;*.png;*.tif;*.wmf";
       this->openFileDialog2->Multiselect = true;
       this->openFileDialog2->FileOk += gcnew System::ComponentModel::CancelEventHandler(this, &Form1::openFileDialog2_FileOk);
       //
       // Form1
       //
       this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
       this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
       this->ClientSize = System::Drawing::Size(440, 380);
       this->Controls->Add(this->tabControl1);
       this->Name = L"Form1";
       this->Text = L"Agstner Florian\'s Bildbetrachter";
       this->WindowState = System::Windows::Forms::FormWindowState::Maximized;
       this->tabControl1->ResumeLayout(false);
       this->tabPageEinzel->ResumeLayout(false);
       this->tabPageEinzel->PerformLayout();
       (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->pictureBox1))->EndInit();
       this->tabPageSchau->ResumeLayout(false);
       this->ResumeLayout(false);

      }
    #pragma endregion
     private: System::Void buttonBeenden_Click(System::Object^  sender, System::EventArgs^  e)
        {

                       Close();

        }
    private: System::Void buttonAnzeigen_Click(System::Object^  sender, System::EventArgs^  e)
       {
      
        if (textBoxDateiAuswahl->Text != String::Empty)
        {
         //existiert die Datei ueberhaupt?
         if (IO::File::Exists(textBoxDateiAuswahl->Text))
         {
          //soll die Datei in einem neuen Fenster angezeigt werden?
          if ( checkBoxNeuesFenster->Checked )
          {
              //das neue Formular ERZEUGEN (gcnew bzw. auf Heap)
              formMax ^neuesFormular = gcnew formMax;
           //das Formular "modal" anzeigen

           //2tes Formular:
           neuesFormular->bildLaden(textBoxDateiAuswahl->Text);

           neuesFormular->ShowDialog();
                             //Das Bild in die PictureBox im zweiten Formular laden
                             /////////neuesFormular->pictureBoxFormMax->Load(textBoxDateiAuswahl->Text);
           //das Formular modal anzeigen
           /////////neuesFormular->ShowDialog();
                          
          }
          else
          {
                         //( wenn ja, dann laden und anzeigen
          pictureBox1->Load(textBoxDateiAuswahl->Text);
          }
         }
         else
         {
          MessageBox::Show("Die Datei existiert nicht!", "Fehler", MessageBoxButtons::OK, MessageBoxIcon::Error);
         }
        }
      
       }
    private: System::Void checkBoxOptimaleGroesse_CheckedChanged(System::Object^  sender, System::EventArgs^  e)
       {
      
           if ( checkBoxOptimaleGroesse->Checked )
        {
         pictureBox1->SizeMode = PictureBoxSizeMode::Zoom;
        }
        else
        {
         pictureBox1->SizeMode = PictureBoxSizeMode::Normal;
        }
      
       }
    private: System::Void buttonOeffnen_Click(System::Object^  sender, System::EventArgs^  e)
       {

        openFileDialog1->ShowDialog();

       }
    private: System::Void openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e)
       {

         //Den Namen der ausgewaehlten Datei in das Eingabefeld schreiben
            textBoxDateiAuswahl->Text = openFileDialog1->FileName;
         //Die eigene Methode 'buttonAnzeigen_Click' aufrufen
         buttonAnzeigen_Click(sender, e);
      
       }
    private: System::Void buttonAuswaehlen_Click(System::Object^  sender, System::EventArgs^  e)
       {

                  openFileDialog2->ShowDialog();

       }
    private: System::Void openFileDialog2_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e)
       {
        //Ein neues Array fuer den Typ String anlegen und die markierten Namen kopieren
            array <String^> ^dateien = openFileDialog2->FileNames;

         //Wenn sich noch Eintraege in dem Feld befinden, loeschen wir sie
         if ( listBox1->Items->Count != 0 )
         {
            listBox1->Items->Clear();
         }

                 //die Namen in das Listenfeld kopieren
         for each (String ^datei in dateien)
          listBox1->Items->Add(datei);

      
       }


            //*****************************************************************************************

    public: System::Void buttonStarten_Click(System::Object^  sender, System::EventArgs^  e)
      {
       fensterBilderschau->buttonStarten_Click(sender,  e);
      
      }

       
       
       
       
      
    private: System::Void tabControl1_Enter(System::Object^  sender, System::EventArgs^  e)
       {
      
             
      
       }
    private: System::Void tabPageEinzel_Enter(System::Object^  sender, System::EventArgs^  e)
       {
      
               AcceptButton = buttonAnzeigen;
      
      
       }
    private: System::Void tabPageSchau_Enter(System::Object^  sender, System::EventArgs^  e)
       {
      
               AcceptButton = buttonStarten;
      
       }

     


    public: System::Void buttonStarten_MouseClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
       {
        //////////fensterBilderschau->buttonStarten_Click(sender,  e);
       
    //Befinden sich ueberhaupt Eintraege in der Liste?

        //Wenn nicht, erzeugen wir eine Meldung und verlassen die Methode wieder

        if ( listBox1->Items->Count == 0 )
        {
          MessageBox::Show("Sie müssen erst Dateien auswählen!","Fehler");
            return;
        }
                 
        //ist kein Eintrag im Listenfeld markiert?
        //dann den ersten Eintrag markieren
        if ( listBox1->SelectedIndex == -1 )
           {
             listBox1->SelectedIndex = 0;
           }

        ////ein neues Fenster fuer die Bilderschau erzeugen
        ////ein neues Fenster fuer die Bilderschau erzeugen
        fensterBilderschau = gcnew formMax;

        //das erste Bild laden
        fensterBilderschau->bildLaden( listBox1->SelectedItem->ToString());

        //den Titel des Formulars auf "Bilderschau" setzen
        fensterBilderschau->Text = "Agstner Florian's Bilderschau";

        //naechste 2 Zeilen sind neu:
        //Das Systemmenue und das Schliessen-Symbol ausblenden
        fensterBilderschau->ControlBox = false;

        //das Formular anzeigen
        fensterBilderschau->Show();

                 //nach anklicken von Button "Start" den Timer starten
        /////////Bildbetrachter01::formMax::timer1->Start();
        fensterBilderschau->timer1->Start();    
       }
    };
    }

    /* #pragma once
       #include "formMax.h"  */

    //================================================Ende====================

    Mittwoch, 31. März 2010 14:32
  • Hallo AAAFFF!

    Und wo ist jetzt die konkrete Frage?

    Jochen Kalmbach (MVP VC++)
    Mittwoch, 31. März 2010 14:56
  • Hallo Herr Kalmbach,

    Ich habe 2 Klassen namens "formMax" und "Form1". formMax.h ist bei Form1.h includiert.

    Beide besitzen einen uebergeordneten Namespace namens "Bildbetrachter01".

    Auf alles was in "formMax" steht laesst sich zugreifen(zB. auf oeffentliche Methoden).

    Von "formMax.h" aus laesst sich auf "Form1"-Inhalt(zB. Methoden) NICHT zugreifen.

    Wenn ich in eine Methode von "formMax" Bildbetrachter01:: schreibe, tut sich ein

    kleines Fenster mit 2 Optionen, naehmlich "Form1" und "formMax" graphisch angezeigt auf.

    Warum funktioniert dies, doch zugreifen laesst sich auf zB. (oeffentliche) Methoden von

    "Form1" trotzdem nicht?

    Gruesse AAAFFF

    Mittwoch, 31. März 2010 14:59
  • Hallo Robert!

    Der Therad ist doppelt... siehe VC++ Express-Forum...

    Antwort siehe anderen Thread.

    Jochen Kalmbach (MVP VC++)
    Mittwoch, 31. März 2010 15:08
  • Hallo, Herr Kalmbach,

     

    Haben Sie eine email-Adresse? Ich moechte gerne wissen, was Sie verlangen,

    wenn Sie mir einen Ausweg zu dem besagten Problem zeigen!

    Meine email Adresse ist jedenfalls Agstner@gmx.li

     

    Gruesse Agstner,  AAAFFF

    Samstag, 3. April 2010 09:28
  • Montag, 5. Dezember 2011 14:06
    Moderator