Name des Objektes unter dem Maus-Zeiger



  • Wie kommt man z.B. bei einer ListView an den Namen (Caption) des Elementes unter dem Maus-Zeiger (Cursor) heran ?

    Bei Buttons löse ich das Problem z.B. so:

    void __fastcall TForm1::GroupBox1MouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
    {
            AnsiString ButtonCaption = ((TButton *)Sender)->Caption;
    }
    

    bei der ListView funktioniert das oben genannte leider nicht.

    Jemand einen Vorschlag ?

    ==>Eisbeer<==



  • Hallo

    Dazu brauchst du die Funktion TListView::GetItemAt

    bis bald
    akari



  • Danke. Gut umgesetzt.

    Wenn der Cursor jedoch nicht auf ein TListItem zeigt (z.B. am Ende der Liste oder am Rand) Bricht das Programm ab.

    Habe es bis jetzt so gelößt...

    void __fastcall TForm1::ListView1MouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
    {
            TListItem* MeinItem = ListView1->GetItemAt(X,Y);
    
            if (MeinItem->Caption == "") //Hier entsteht der Fehler
            {
            //Tritt auf, wenn der Cursor nicht auf einen Eintrag zeigt
            }
    
            else
            {
            Form1->Caption = MeinItem->SubItems->operator [](2);
            }
    }
    

    ==>Eisbeer<==



  • Denkfehler...

    habe

    if (MeinItem->Caption == "")
    

    durch

    if (!MeinLinkesItem)
    

    ersetzt, und es läuft prima...

    ==>Eisbeer<==


Anmelden zum Antworten