ListItem in ListView anlegen und in "OnEdited" prüfen, ob der Name schon vorhanden ist



  • Hallo,

    ich möchte in einem ListView per Buttonklick ein neues ListView-Item anlegen.
    Das soll genauso funktionieren, wie beim Windows Explorer:
    Button wird geklickt, im ListView erscheint ein leeres Symbol, ich gebe den Text ein und drücke Enter.

    Dann wird ja als Folge das Ereignis "OnEdited" ausgeführt. Hierin möchte ich nun klassisch mit einer for-Scheife überprüfen, ob das Icon mit entsprechendem Namen schon existiert. Wenn das der Fall ist, soll eine Fehlermeldung ausgegeben werden und der Editiermodus soll nicht verlassen werden.
    Wie mache ich das am besten?

    Ich habs mal so probiert, wusste aber eigentlich von vornherein schon, dass das rekursiv nicht klappt:

    void __fastcall TForm_RecipeExplorer::ListView_RecipesEdited(TObject *Sender, TListItem *Item,
    		  UnicodeString &StrNewName)
    {
        if (CheckIfIconExists(ListView_Test, StrNewName, 0)) // gibt true zurück, wenn bereits vorhanden
        {
            Application->MessageBox("dududu"...);
            Item->EditCaption();
        }
    }
    //---------------------------------------------------------------------

Log in to reply