Einzelnen Beitrag anzeigen

Tommy1988
(Gast)

n/a Beiträge
 
#1

Generelle Code-Frage zu ListBox/Markierung etc

  Alt 16. Sep 2007, 11:23
Also, zur Vorsache:
Ich hab eine ListBox, dort popt ein PopUpmenu bei Rechtsklick mit diversen
Informationen enthalten auf. z.B. u.a. der TEXT der aktuellen Eintrags.

Ich habe dann ein paar Zeilen Code hinzugeschrieben, damit man die Einträge
ganz bequem nach OBEN und UNTEN verschieben kann (via PopUpmenu).

So, klicke ich aber Rechtsklick auf einen Eintrag, so ist der Focus ja NICHT mehr
auf dem Eintrag (keine selektierung) sondern auf dem PopUpmenu.

So habe ich es gelöst, dass das PopUpMenu auftaucht und der Eintrag trotzdem markiert wird.
Ich hoffe der Code ist nicht allzu eckelhaft.

Delphi-Quellcode:
procedure TForm1.ListBox1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
{var
P: TPoint;}
 // weggenommen, da oben ja MousePos steht
begin
 ListBox1.Perform(WM_LBUTTONDOWN,0,0); // Auf Eintrag klicken (simulieren)
 ListBox1.Perform(WM_LBUTTONUP,0,0); // loslassen
 GetCursorPos(MousePos); // Cursorposition emritteln
 PopUpMenu1.Popup(MousePos.X,MousePos.Y); // und schließlich PopUpMenu genau wo die Maus ist anzeigen
end;
Jedoch hat das alles einen Nachteil:
Das PopUpmenu verschwindet nicht mehr wenn man einen Eintrag geklickt hat
  Mit Zitat antworten Zitat