AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView Item und ein Popup Menu

Ein Thema von bezarre · begonnen am 1. Mai 2010 · letzter Beitrag vom 1. Mai 2010
Antwort Antwort
bezarre

Registriert seit: 30. Apr 2010
33 Beiträge
 
RAD-Studio 2009 Arc
 
#1

ListView Item und ein Popup Menu

  Alt 1. Mai 2010, 11:41
Hallo,

ich habe jetzt gerade ein Popup Menü angelegt und dieses meiner TListView zugewiesen. Was mit nun dabei aufgefallen ist, ist dass sich das Menu auch öffnet, wenn man auf einen leeren Bereich in der ListView klickt, was ja auch logisch ist, aber nicht gewollt von mir.
Daher dachte ich mir, dass ich vielleicht den einzelnen Items das Menu zuweise, das scheint aber dort nicht zu gehen. Gibt es eine Möglichkeit, dass das PopUp Menu nur bei den Items geöffnet wird?

Ein paar Eigenschaften meiner TListView:
Rowselect : true
viewstyle: vsreport

Danke und Gruß
micha
Micha
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#2

Re: ListView Item und ein Popup Menu

  Alt 1. Mai 2010, 11:45
Verwende das onClick-Ereignis:

Delphi-Quellcode:
  if Assigned(ListView.Selected) then
    PopupMenu.Popup(...);
  Mit Zitat antworten Zitat
bezarre

Registriert seit: 30. Apr 2010
33 Beiträge
 
RAD-Studio 2009 Arc
 
#3

Re: ListView Item und ein Popup Menu

  Alt 1. Mai 2010, 11:49
Hallo,

danke für deine Antwort.

Delphi-Quellcode:
if Assigned(ListView1.Selected) then
    PopupMenu1.Popup();
So habe ich das jetzt gemacht. Nun muss ja aber noch eine X und Y Angabe bei Popup rein. Was geben die den an? Die Position wo sich das Popup öffnen soll? Falls ja, wie stelle ich die jetzige Position der Maus fest?

// Edit
Delphi-Quellcode:
procedure TForm2.ListView1Click(Sender: TObject);
var
  p: TPoint;
begin
  p := Mouse.CursorPos;
  if Assigned(ListView1.Selected) then
    PopupMenu1.Popup(p.X,p.Y);
end;
Habe das jetzt so gemacht, nun öffnet sich das Popup, aber immer beim Linksklick. Soll aber beim Rechtsklick sich öffnen. Muss ich da ein anderes Event nutzen?

Edit //

So habe ich es jetzt gelöst, falls es eleganter geht, immer her damit.

Delphi-Quellcode:
procedure TForm2.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

var
  p: TPoint;
begin
  p := Mouse.CursorPos;
  if Assigned(ListView1.Selected) AND (Button = mbRight) then
    PopupMenu1.Popup(p.X,p.Y);
end;

Gruß
Micha
Micha
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz