Avatar billede _benne_ Nybegynder
06. januar 2002 - 11:45 Der er 6 kommentarer og
1 løsning

Højreklik på et ListBoxItem

Jeg har en ListBox med en række items, og når jeg klikker på disse item, skal der komme en PopUp, men KUN når jeg trykker på et Item, dvs. når ListBox.ItemIndex < 0

Jeg har rodet meget med det, uden egentlig at finde en brugbar løsning... Nogen der kan hjælpe..?
Avatar billede _benne_ Nybegynder
06. januar 2002 - 11:47 #1
ListBox.ItemIndex => 0 even :o)
Avatar billede morten_s Nybegynder
06. januar 2002 - 11:52 #2
Skal det være ved venstre museclick eller højre museclick ?

Nedenstående virker ved venstreclick

procedure TForm1.ListBox1Click(Sender: TObject);
begin
  if ListBox1.ItemIndex > -1 then
    PopupMenu1.Popup(100,100);
end;
Avatar billede morten_s Nybegynder
06. januar 2002 - 11:54 #3
Sorry, jeg læste ikke lige din overskrift :(
Avatar billede morten_s Nybegynder
06. januar 2002 - 11:57 #4
Men du skal nok have fat i OnMouseDown eventet, checke om der er højreklikket, regne ud
om der er nogle \"Items\" inden for de givne X,Y koordinater og hvis så:

PopupMenu1.Popup(100,100);
Avatar billede speedy Nybegynder
06. januar 2002 - 11:59 #5
ListBoxen skal ikke have angivet hvilken popup du skal bruge. Desuden skal du sætte PopupMenuens AutoPopup til false, og tilføj dette i onMouseDown på listboxen.

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  punkt: TPoint;
begin
  ListBox1.ItemIndex := ListBox1.ItemAtPos(Point(X, Y), true);
  if (ssRight in shift) and (ListBox1.ItemIndex >= 0) then
    begin
      GetCursorPos(punkt);
      PopupMenu1.Popup(punkt.X, punkt.Y);
    end;
end;


/SpEeDy
Avatar billede morten_s Nybegynder
06. januar 2002 - 12:03 #6
Speedy> elegantløsning med ListBox1.ItemIndex := ListBox1.ItemAtPos(Point(X, Y), true); :-)
Avatar billede speedy Nybegynder
06. januar 2002 - 12:33 #7
morten_S>>hehe...det er bare fordi jeg er så træt af at når man højreklikker på et item som ikke er markeret, så bliver det normalt ikke markeret hvilket jeg synes det burde :)

/SpEeDy
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester