Announcement

Collapse
No announcement yet.

TreeView ID

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

  • TreeView ID

    Hallo,
    nach dem ich im Internet zu meinem Problem nichts passendes gefunden habe versuche ich es mal hier.
    Und zwar habe ich ein TreeView was folgendermaßen aussieht:

    Ich habe nun schon die ersten beiden Einträge beim OnDblClick Ereignis so gestaltet, dass sich dann ein StringGrid in einem neuen Fenster öffnet. Allerdings ist es wenn ich z.B. das 1. anklicke dann öffnet sich das zweite auch gleich mit.
    Habe es mit einer if-Anweisung realisiert:
    Code:
    if(TreeView1->Selected!="SG Sachsenhagen")Form3->Show();
    		if(TreeView1->Selected!="SG Nenndorf")Form4->Show();
    Wie kann ich es verhindern, dass sich auch nur die Form öffnet, von dem was auch im TreeView angeklickt wurde?
    Ich weiß das es dafür IDs gibt für die einzelnen Einträge aber wie kann ich die rausfinden und so verwenden? Ich benutze das BDS 2006.

    Viele Grüße
    Henning

  • #2
    Du weisst, wie gleich und ungleich funktionieren??

    Klar öffenet sich bei Klick auf den ersten (Feuerwehrfahrzeuge) der Erste und der Zweite ebenfalls, denn der selektierte Eintrag ist ja NICHT Sachsenhagen und NICHT Nenndorf

    Arbeite mit ==
    und
    else if

    EDIT:
    Des Weiteren gibt

    TreeView1->Selected

    einen Node zurück, da ist der Vergleich mit einem String fehlerhaft

    TreeView1->Selected->Text
    Zuletzt editiert von Christian Marquardt; 07.10.2007, 14:56.
    Christian

    Comment


    • #3
      Hallo,
      ja ich weiß was ungleich und gleich ist. Mich hatte es nur am Anfang ein wenig gewundert, da immer NULL zurückgegeben wurde, und das heißt dabei ja, dass kein String ausgewählt bzw. gefunden wurde. Und er hat NULL zurückgegeben obwohl ich den passenden String ausgewählt hatte.

      Viele Grüße
      Henning

      Comment


      • #4
        Hi,
        also ich habe bisher leider noch kein passendes Ergebnis erzielt. Wenn ich mit else if und if arbeite sowie ==, dann öffnet er gar nichts, was mich schon ein bisschen wundert.

        Viele Grüße
        Henning

        Comment


        • #5
          Also ich bin im Moment zwar C++/CLI mit dem Visual C++ 2005 am lernen aber aus dem was Christian geschrieben hat trau ich mich mal einen Vorschlag zu machen. (habe früher gaaaanz einwenig mit dem Borland C++ Builder 5 gearbeitet!)

          also ich habe bisher leider noch kein passendes Ergebnis erzielt. Wenn ich mit else if und if arbeite sowie ==, dann öffnet er gar nichts, was mich schon ein bisschen wundert.
          Hast du es ungefähr so?

          Code:
          if(TreeView1->Selected->Text == "SG Sachsenhagen")
          	Form3->Show();
          else if(TreeView1->Selected->Text == "SG Nenndorf")
          	Form4->Show();
          Den Text findet man wie Christian schon sagte unter "TreeView1->Selected->Text" und nicht unter "TreeView1->Selected"! Ich habe leider nicht die möglichkeit das auszuprobieren deswegen bitte ich euch mir kurz bescheid zu sagen ob es funktioniert.

          Ich bin mal über die Meinung/Antwort von euch Experten gespannt
          Lerne aus den fehlern Anderer! Du hast nicht die Zeit sie selbst zu machen.

          Comment


          • #6
            Hi,
            ja genau so habe ich es. Aber wie gesagt er will gar nichts öffnen, deshalb will ich es mit der ID versuchen.

            Viele Grüße
            Henning

            Comment


            • #7
              Es gibt keine ID oder gibt es sowas in den Eigenschaften von TNode?

              Wenn du es genau so gemacht hast, dann sollte es gehen.

              Debugge die Anwendung an dieser Stelle und schau nach was wo drin steht
              Christian

              Comment


              • #8
                Hi,
                also normalerweise ist es so glaube ich, dass man den Knoten auch eine ID zuweisen kann. Im Eintragseditor steht nämlich was von Statusindex und Auswählindex. Und es muss ja irgendwie möglich sein, dass ich dort was anklicke und er auch das richtige öffnet bzw. übhaupt was öffnet.

                Viele Grüße
                Henning

                Comment


                • #9
                  Lies doch bitte in der Klassenbeschreibung nach wozu diese Indizies sind. -> Anzeige der Bilder...


                  Und es muss ja irgendwie möglich sein, dass ich dort was anklicke und er auch das richtige öffnet bzw. übhaupt was öffnet.
                  Klar geht das.

                  Aber dann post hier deinen Quellcode,

                  oder - wie gesagt - debugge die Stelle
                  Christian

                  Comment


                  • #10
                    Hallo,
                    also ich habe die Abfrage so realisiert wie sie hier schon steht:
                    Code:
                    if(TreeView1->Selected->Text == "SG Sachsenhagen")
                    	Form3->Show();
                    else if(TreeView1->Selected->Text == "SG Nenndorf")
                    	Form4->Show();
                    und das ganze im Ereignis OnDblClick von TreeView.

                    Viele Grüße
                    Henning

                    Comment


                    • #11
                      Geh mal bitte in dein TreeView und geh da mal in den Editor, überprüfe ob bei den Eintrag "SG Sachsenhagen" kein unnötiges Leerzeichen hinten dranhängt oder davor steht.

                      Ich habe es mal ausprobiert und bei mir funktioniert das einwandfrei und ich habe mal absichtlich beim TreeView-Editor beim Eintrag "SG Sachsenhagen" ein Leerzeichen eingefügt das es so aussah "SG Sachsenhagen " und schon passierte einfach nix wenn ich auf "SG Sachsenhagen" doppelt geklickt habe.

                      Denn das überhaupt nix passiert heißt ja eigentlich ja nur das der Eintrag "SG Sachsenhagen" (und das ganz genauso) nicht im Text von TreeView gefunden wird.
                      Lerne aus den fehlern Anderer! Du hast nicht die Zeit sie selbst zu machen.

                      Comment


                      • #12
                        Hi!

                        Keine Ahnung ob das noch relevant ist, aber mal ein Beispiel für den Index...

                        Code:
                           switch (TreeView1->Selected->Index) 
                           {
                             case 0: Form3->Show(); break;
                             case 1: Form4->Show(); break;
                           }
                        Ich nehm mal an, das Du das mit Index gemeint hasst.

                        Bye...

                        Comment


                        • #13
                          Hallo,
                          danke Rudi! Es funktioniert jetzt. Ich werde es auch noch mla mit Switch Case ausprobieren ob das auch geht.

                          Edit: Es funktioniert auch sehr schön mit Switch Case und dem Index. Denn so vermeide ich die Schreibfehler. Vielen Dank für die Lösung meines Problems!

                          Viele Grüße
                          Henning
                          Zuletzt editiert von Henning; 10.10.2007, 15:31.

                          Comment

                          Working...
                          X