Announcement

Collapse
No announcement yet.

TTreeView und RightClickSelect=True => Bug?!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TTreeView und RightClickSelect=True => Bug?!?

    <br>Hi,...
    <br>
    <br>in der Delphi Hilfe steht:
    <br>"RightClickSelect muß den Wert True haben, damit sich das Klicken mit der rechten Maustaste auf die Eigenschaft Selected auswirkt."
    <br>
    <br>RightClickSelect hat bei bei mir nun den Wert True bekommen.
    <br>Drücke ich nun mit der rechten Maustaste auf ein Element in dem TreeView, so passiert folgendes:
    <br>-ein zuvor mit der linken Maustaste markiertes Element <b>A</b> verliert die blaue Markierung (behält jedoch noch einen schwarz gestrichelten Rahmen)
    <br>-das Element <b>B</b>, welches mit der linken Maustaste angeclickt wurde, wird Blau markiert und mein PopUpMenü öffnet sich
    <br>-wähle ich nun im PopUpMenü einen Menüpunkt wird folgender Code ausgeführt:
    <br> SourceNode := TreeView1.Selected;
    <br> Einfgen1.Enabled := True;
    <br>Die Globale Variable SourceNode enthählt jedoch nicht das Element <b>B</b> sondern das Element <b>A</b>, obwohl dieses derzeit nicht blau markiert ist!
    <br>-nachdem der Code ausgeführt wurde, wird das Element <b>B</b> wieder demarkiert und das Element <b>A</b> markiert
    <br>
    <br>Nun meine Frage:
    <br>ich habe RightClickSelect=True gesetzt damit ich eben auf Element <b>B</b> zugreifen kann habe ich was falsch gemacht?
    <br>ist das ein Bug?
    <br>gibt es einen Workaround?
    <br>
    <br>Danke für die Hilfe
    <br>
    <br>mfg
    <br>ps

  • #2
    Hallo Patrick,

    du hast recht, hier liegt wohl ein Bug vor der sich störend auf Programme auswirkt. Ich habe dieses Problem damit gelöst, indem ich bei einem Rightclick mir den Knoten geben lasse, auf dem die Maus gerade steht und dann den Knoten selektiert, dann funktionierts!

    <pre>
    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    var
    Node : TTreeNode;
    begin
    Node := TreeView1.GetNodeat(x,y);
    if node <> nil then
    node.selected:=true;
    end;
    </pre&gt

    Comment


    • #3
      <br>Vielen, vielen Dank!
      <br>
      <br>Das hilft mir weiter.
      <br>
      <br>mfg
      <br>P

      Comment

      Working...
      X