Announcement

Collapse
No announcement yet.

Ein Eintrag von ListView zu einer neuen Form übergeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ein Eintrag von ListView zu einer neuen Form übergeben

    Hallo,

    Ich weiss nicht wie ich aus einer ListView steht auf vsReport ein Eintrag den ich dann im Focus habe in eine Neue Form einlesen möchte.

    Die Daten kommen aus der DatenBank (MySQL) es würde ja reichen das ich nur die ID in die Neue Form bekomme.


    Ich hoffe das mir einer Helfen kann.

    MfG Rave
    MfG Rave

    -Jeder fängt mal klein an

  • #2
    http://www.marquardtnet.info/cecke/q...quicky_15.html

    EDIT
    Link berichtigt
    Christian

    Comment


    • #3
      Danke aber ich brauche was anderes.

      Das ist aus Form1 ListView da ein eintrag, den ich dann per PopUpMenu dann auswählen kann oder per DBLClick währe ja auch nicht schlecht ... dann in Form2 zubekommen um ihn da zu bearbeiten.

      ich habe es mal mit __property probiert aber der wert in Form2 bleibt dann leer.


      Code:
      Unit1.h
      
      private:	// Anwender-Deklarationen
      
      void __fastcall SetMyString(String Value);
      
      
      public:		// Anwender-Deklarationen
      
      String FParameter;
      String __fastcall GetMyString();
      
      __property String Parameter={read=GetMyString, write=SetMyString};
      
      
      
      Unit1.cpp
      
      void __fastcall TForm1::SetMyString(String Value)
      {
       FParameter = Value;
      }
      //---------------------------------------------------------------------------
      
      String __fastcall TForm1::GetMyString()
      {
        return FParameter;
      }
      //---------------------------------------------------------------------------
      
      
      Unit2.cpp
      
      Form1->GetMyString(); // Verwendet in Form2 Bleibt dann aber Leer
      Getestet habe ich ihn schon in Form1 da gibt er mir ein wert raus, aber nicht in Form2 dann.
      Ich weiß nicht ob ich da ein Fehler drin habe oder das es damit eventuell gar nicht geht. Vielleicht hat ja noch einer eine Idee.

      MfG Rave
      MfG Rave

      -Jeder fängt mal klein an

      Comment


      • #4
        Danke aber ich brauche was anderes.
        Denke eigentlich nicht, denn aus Form2 kannst du - nachdem du beide Forms wie in Beitrag 2 miteinander bekannt gemacht hast - die Listview ansprechen und den gerade selektierten Eintrag auswählen.

        Weitere Methode:

        Dann schreibe in der Zielform eine Methode

        public setID(int id);

        Dann, nachdem du beide Forms wie in Beitrag 2 miteinander bekannt gemacht hast, kannst du die Methode aufrufen und die ID übergeben
        Christian

        Comment


        • #5
          @Christian Erst mal Danke für Deine Antworten

          Wen ich das mache aus dein Beitrag 2 bekomme ich eine Fehler Meldung

          Code:
          Hier an der stelle bleibt er stehen
          
          __fastcall TForm2::TForm2(TComponent* Owner)
          
          
          
          [C++ Fehler] Unit2.cpp(17): E2090 Qualifizierer 'TForm2' ist kein Name einer Klasse oder einer Struktur
          
          [C++ Fehler] Unit2.cpp(17): E2040 Deklaration nicht ordnungsgemäß abgeschlossen

          Zu Beitrag 4:

          In Moment weiß ich nicht wie ich eine Methode schreiben soll
          Es ist für mich noch ein bisschen neu Land


          MfG Rave
          MfG Rave

          -Jeder fängt mal klein an

          Comment


          • #6
            Kann nicht erkennen, was schief gehen könnte, wenn man aus der Dialogbox die 2. Form auswählt, wenn du selbst an der Headerdatei nichts geändert hast.

            Hinsichtlich der Methode:

            http://de.wikipedia.org/wiki/Objekto...Programmierung

            deklariere in der Headerdatei im public Bereich der 2. Form

            void getID(int id);

            implementiere in der cpp-Datei der 2. Form

            void NANE_DEINER_FORM::getID(int id)
            {
            //mache was mit der ID
            }
            Christian

            Comment


            • #7
              Was mache ich Falsch ?

              Habe jetzt fest gestellt das der Wert von einer Methode nicht sofort in das Neue Formular rein geht. Da habe ich mal ein Button dazwischen gemacht und dann war erst der Wert da.

              Ich weiß nicht ob eine INCLUDE fehlt

              oder

              der Befehl ''Form2->ShowModal()'' falsch ist
              MfG Rave

              -Jeder fängt mal klein an

              Comment


              • #8
                Bei den wenigen Informationen kann keiner sagen was falsch ist

                Ich weiß nicht ob eine INCLUDE fehlt
                Sicher nicht, sonst würdest du Compilerfehler erhalten

                der Befehl ''Form2->ShowModal()'' falsch ist
                Kann keiner sagen, da keiner weiss wann, wo, wie du diesen einsetzt. Der Befehl an sich ist in Ordnung
                Christian

                Comment


                • #9
                  OK hier die Dateien

                  Code:
                  Unit1.cpp
                  
                  //---------------------------------------------------------------------------
                  
                  #include <vcl.h>
                  #pragma hdrstop
                  
                  #include "Unit1.h"
                  #include "Unit2.h"
                  //---------------------------------------------------------------------------
                  #pragma package(smart_init)
                  #pragma resource "*.dfm"
                  TForm1 *Form1;
                  //---------------------------------------------------------------------------
                  __fastcall TForm1::TForm1(TComponent* Owner)
                          : TForm(Owner)
                  {
                  }
                  //---------------------------------------------------------------------------
                  
                  void __fastcall TForm1::Button1Click(TObject *Sender)
                  {
                  Label1->Caption = Edit1->Text;
                  
                  Form2->SetMyString(Edit1->Text);
                  
                  Form2->ShowModal();
                  }
                  //---------------------------------------------------------------------------
                  
                  
                  Unit1.h
                  
                  //---------------------------------------------------------------------------
                  
                  #ifndef Unit1H
                  #define Unit1H
                  //---------------------------------------------------------------------------
                  #include <Classes.hpp>
                  #include <Controls.hpp>
                  #include <StdCtrls.hpp>
                  #include <Forms.hpp>
                  //---------------------------------------------------------------------------
                  class TForm1 : public TForm
                  {
                  __published:	// Von der IDE verwaltete Komponenten
                          TEdit *Edit1;
                          TButton *Button1;
                          TLabel *Label1;
                          void __fastcall Button1Click(TObject *Sender);    
                  private:	// Anwender-Deklarationen
                  public:		// Anwender-Deklarationen
                          __fastcall TForm1(TComponent* Owner);
                  };
                  //---------------------------------------------------------------------------
                  extern PACKAGE TForm1 *Form1;
                  //---------------------------------------------------------------------------
                  #endif
                  Code:
                  Unit2.cpp
                  
                  //---------------------------------------------------------------------------
                  
                  #include <vcl.h>
                  #pragma hdrstop
                  
                  #include "Unit1.h"
                  #include "Unit2.h"
                  
                  //---------------------------------------------------------------------------
                  #pragma package(smart_init)
                  #pragma resource "*.dfm"
                  TForm2 *Form2;
                  //---------------------------------------------------------------------------
                  
                  __fastcall TForm2::TForm2(TComponent* Owner)
                          : TForm(Owner)
                  {
                  Label1->Caption = GetMyString();        // Hier an der stelle bleibt er leer
                  }
                  //---------------------------------------------------------------------------
                  
                  
                  void __fastcall TForm2::Button1Click(TObject *Sender)
                  {
                    Label1->Caption = GetMyString();   // Und hier ist der Wert auf einmal da
                  }
                  //---------------------------------------------------------------------------
                  
                  void __fastcall TForm2::SetMyString(String Value)
                  {
                    FMyString = Value;
                  }
                  
                  String __fastcall TForm2::GetMyString()
                  {
                    return FMyString;
                  }
                  
                  
                  Unit2.h
                  
                  
                  //---------------------------------------------------------------------------
                  
                  #ifndef Unit2H
                  #define Unit2H
                  //---------------------------------------------------------------------------
                  #include <Classes.hpp>
                  #include <Controls.hpp>
                  #include <StdCtrls.hpp>
                  #include <Forms.hpp>
                  //---------------------------------------------------------------------------
                  class TForm2 : public TForm
                  {
                  __published:	// Von der IDE verwaltete Komponenten
                          TLabel *Label1;
                          TButton *Button1;
                          void __fastcall Button1Click(TObject *Sender);
                  private:	// Anwender-Deklarationen
                  public:		// Anwender-Deklarationen
                  
                  String __fastcall GetMyString();
                  String FMyString;
                  void __fastcall SetMyString(String Value);
                  
                          __fastcall TForm2(TComponent* Owner);
                  };
                  //---------------------------------------------------------------------------
                  extern PACKAGE TForm2 *Form2;
                  //---------------------------------------------------------------------------
                  #endif
                  MfG Rave

                  -Jeder fängt mal klein an

                  Comment


                  • #10
                    Sicherlich ist er im Konstuktor leer. Da wird die Klasse erst angelegt und die Methode SetMyString konnte noch überhaupt nicht aufgerufen werden

                    Schau dir OnShow() für deine zweite Form an. Dieses Ereignis sollte dir helfen
                    Zuletzt editiert von Christian Marquardt; 04.11.2009, 14:39. Reason: Rechtschreibung
                    Christian

                    Comment

                    Working...
                    X