Tree View



  • Hallo,

    ich benutze im Moment Borland Builder und möchte eine Tree View Steuerelement benutzen.

    Die Tree View kann ich auch schön mit Elementen füllen. Jetzt möchte ich in meiner Anwendung auf die Elemente klicken können. Daraufhin soll Text angezeigt werden usw.

    Mein Problem ist, wie kann ich im Builder den Code dafür eingeben?
    Wenn ich auf den Tree View klicke öffnet sich der Tree View Eintrags Editor und ich lande nicht im Code.

    Muss ich die void fastcall usw selber schreiben?

    Ich versteh das nicht, bei anderen Steuerelementen wird der OnClick ja auch von BCB geschrieben....

    mfg 😕 😕 😕 😕 😕 😕 😕 😕 😕 😕



  • Schau Dir mal den Reiter Ereignisse im Objektinspektor an...



  • soweit so gut,

    ähm und die Elemente in der Listview kann ich wie zuordnen / ansprechen?
    Mit switch(TreeView->ItemIndex) , case 0 : //0 = erstes Element????

    oder ?



  • Einfüge- und Zugriffsoperations finden über TTreeView::Items statt. Schau mal in der Hilfe unter TTreeNodes und TTreeNode. Da sollten auch Beispiele sein.

    Direkten Zugriff auf das ausgewählte Element erhälst Du über TTreeView::Selected, respektive bei aktivierter Mehrfachauswahl über TTreeView::SelectionCount und TTreeView::Selections.



  • vielleicht noch anders gefragt, wie geht es nun, das ich wenn ich das erste element / item anklicke text x sich öffnet und wenn ich das zweite element / item anklicke sich text y öffnet.

    String info = "H:\\xx\\blah.txt";
     if (MemoInfo->Lines->Count > 0) MemoInfo->Clear();
              MemoInfo->Lines->LoadFromFile (info);
    

    Code zum öffnen in einem extra Memo Feld paßt, aber es geht mir drum einmal diesen und einmal jenen Text an zu zeigen. Je nachdem auf welches Item ich in der TreeView klicke.

    Oder seh ich den Wald vor lauter Bäumen ned???? 😃

    mfg



  • Aha, wenn Du so gut bist, dass Du Dir in 4 Minuten TTreeNode und TTreeNodes angesehen hast, brauchst Du sicherlich keine weitere Hilfe von uns...



  • Hallo

    Kleiner Tip :
    - alle notwendigen Texte in ein eigenes Array im Hintergrung
    - allen TreeNodes in deren Eigenschaft Data den Index des textes im Array zuweisen
    - beim Auswählen eines Nodes Eigenschaft Data abfragen und Text aus Array holen

    bis bald
    akari



  • nö, ich hab vorher schon geschaut, aber mir ist es nicht ganz klar.
    suche aber immer noch weiter....
    ich habe nur lange an dem post von vorher geschrieben, weil ich noch zwischen durch telefoniert habe.(als ich angefangen habe die frage anders zu formulieren, war noch keine antwort da)

    kein grund beleidigt zu sein....



  • Ich bin nicht beleidigt. Du zeigst mir nur nicht genug Eigeninitiative...

    Mal zwei examplarische Beispiele für den Zugriff auf den zur Zeit ausgewählten Knoten:

    TTreeNode* tnSelected = TreeView1->Selected; // zur Zeit markierten Knoten aus TreeView holen
    if (tnSelected) // ist überhaupt ein Eintrag markiert?
    {
    	AnsiString asText = tnSelected->Text; // Anzeigetext des Knoten holen
    }
    
    // unter berücksichtigung von akaris Vorschlag, also wenn der Text als TStringList in der Eigenschaft Data hinterlegt ist:
    
    TTreeNode* tnSelected = TreeView1->Selected; // zur Zeit markierten Knoten aus TreeView holen
    if (tnSelected) // ist überhaupt ein Eintrag markiert?
    {
    	TStringList* slText = static_cast<TStringList*> (tnSelected->Data);
    	Memo1->Lines = slText;
    }
    

Anmelden zum Antworten