Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.259 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Allgemeine Frage zur Verwendung von TListbox

  Alt 5. Apr 2006, 08:18
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.
  Mit Zitat antworten Zitat