Autor Beitrag
padawan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35
Erhaltene Danke: 1



BeitragVerfasst: So 24.11.13 21:39 
Hallo DelphiFreunde!

ACHTUNG!!! Titel war missverständlich! Besser: Markieren mit Rechtsklick klappt nur bei 1. Mal - Popupmenü stört??

I machs kurz:
Popupmenu erscheint bei rechtsklick auf Listbox-
Item unter Maus markiere ich im OnMousMove-Ereignis.
Klappt bestens beim 1. Mal.
Wähle ich(bei noch geöffnetem Popup) einen anderen Lb-Eintrag,
während ich das Popup ignoriere, wird das Item unter der Maus nicht mehr markiert.
Muss dann mehrere Male auf andere Items klicken bis irgendwann wieder markiert wird.
Die 'Macke' tritt auf ab 2. RechtsKlick.
Hab nach ner Möglichkeit gesucht, das Popup manuell auszublenden, nix klappt.
Is ja wat nervig.
Wenn ich nach jedem erscheinen einen popMenü-Eintrag anwähle denn is ok.
Aber ich kann mich doch mal verklickt- und dat falsche Item angewählt haben..
Nach jedem Erscheinen kann ich das Popup auch per Esc-Taste ausblenden,
dann klappt auch das Markieren mit rechtskl. wieder.

Mit einem Satz: solange das Popup zu sehen ist, läßt sich kein Item per Rechtsklick markieren. ufff :oops:
Jedenfalls nicht mit meiner Methode(Code unten)
DANKE IM VORAUS!!!
Gruß Uli

// Mit Rechtsklick Markieren
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm2.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
//SetForegroundWindow(Handle); soll Popupmenü ausblenden?? Im inet gefunden-funzt so nich
if Button=mbRight then
  begin
  Listbox1.ItemIndex:=_Lb1II; 
  end;
end;

procedure TForm2.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
var
pt: TPoint;
begin
pt.X := X;
pt.Y := Y;
_Lb1II:= Listbox1.ItemAtPos(pt, True); // Item unter Maus feststellen
end;
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: So 24.11.13 22:11 
So besser?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Pt: TPoint;
begin
  if Button = mbRight then
    begin
      Pt := Point(X, Y);
      ListBox1.ItemIndex := ListBox1.ItemAtPos(Pt, true);
    end;
end;
padawan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35
Erhaltene Danke: 1



BeitragVerfasst: So 24.11.13 22:58 
Very Very Besser!!!
DANKE DIR!!!!!!!!!! :roll: