
Zitat von
Corpsman:
... warum es die Function gibt wenn ich sie nicht brauche.
Hai Corpsman,
hier mal ein mögliches Beispiel. Ich habe ein PopUp-Menü (das nicht mit der Listbox verknüpft ist!) mit einem Eintrag um etwas aus der ListBox zu löschen.
Ich möchte aber sicherstellen das beim klick mit der rechten Maustaste auch ein Item ausgewählt wird.
Genau das kann ich mit ItemAtPos sehr schön machen.
Delphi-Quellcode:
procedure TDemoForm.Delete1Click(Sender: TObject);
begin
with ListBox1 do
begin
if (ItemIndex > -1) then
begin
Items.Delete(ItemIndex);
end;
end;
end;
procedure TDemoForm.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
NewItemIndex: Integer;
MousePoint: TPoint;
begin
if (Button = mbRight) then
begin
with (Sender as TListBox) do
begin
MousePoint.X := X;
MousePoint.Y := Y;
NewItemIndex := ItemAtPos(MousePoint, TRUE);
if (NewItemIndex > -1) then
begin
ItemIndex := NewItemIndex;
MousePoint := ClientToScreen(MousePoint);
PopupMenu1.Popup(MousePoint.X, MousePoint.Y);
end;
end;
end;
end;
Stephan B.