![]() |
Mit rechte Maustaste Ordner öffnen
Hi
Wie kann ich mit der rechten Maustasste einen Ordner in einer ShellTreeview öffnen und selektieren bevor das Popup öffnet. Immoment muss ich erst die Linke Taste drücken und danach kann ich die funktion mit dem Popup ausführen das habe ich bis jetzt aber das funzt net
Delphi-Quellcode:
procedure TForm7.ShellTreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if Button = mbRight then with ShellTreeView1 do // um den Ordner der ShellTreeView zu öffnen begin Path := IncludeTrailingPathDelimiter(Root) + ExtractFileName(ShellTreeView1.Path); ShellTreeView1.SetFocus; // zeile Blau Markieren end; end; |
Re: Mit rechte Maustaste Ordner öffnen
Sorry das ich nochmal nerve habe gemerkt das ich voll den schrott geschrieben habe das geht so garnicht.
aber ich komm einfach net darauf und eine Lösung gibt es auch nirgends . hat vielleicht jemand eine??? |
Re: Mit rechte Maustaste Ordner öffnen
So richtig versteh ich dein Problem nicht, warum nicht Linksklick wie es normal ist und das Kontexmenu kannst Du doch ausblenden wenn du es
nicht möchtest. |
Re: Mit rechte Maustaste Ordner öffnen
Das Problem ist das ich mit dem Popupmenü dateien verschiben will und dazu übergebe ich den Namen beim auswählen.
So müsste ich zuerst mit der Linkenmaustaste den Namen(Ordner) wählen das er in die Variable übergeben wird. und dann kann ich erst mit der rechten Maustaste denOrdner verschieben. Ich würde das gerne in einem Schritt machen. Und wenn einer vergist´den ordner mit der linken Maustaste auszuwählen gibt es einen Fehlermeldung. hoffe das ist verständlich |
Re: Mit rechte Maustaste Ordner öffnen
Hai fuknersascha,
ich habe hier bei meinem D2006 leider kein ShellTreeview. Aber Du solltest im OnMouseDown die X,Y Koordinaten bekommen. Dann kannst Du sicher mit einer Methode ItemAtPos oder GetItem oder wie sie beim ShellTreeview heisst den Knoten der Cursorposition herausfinden. Diesen setzt Du dann zum aktiven Knoten. |
Re: Mit rechte Maustaste Ordner öffnen
Wie gesagt ich habe ja schon einiges versucht ich hatte das Problem schonmal
Delphi-Quellcode:
Damit geht es bei einer FileListBox aber bei der ShellTreeview nichtbesser gesagt ich komm einfach net drauf egal was ich mach
procedure TForm5.FileListBox2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if Button = mbRight then FileListBox2.ItemIndex:= FileListBox2.ItemAtPos(Point(X, Y), true); //Pfad in Variable übergeben RTF mit Pfadangabe Dokument:= LowerCase(ExtractFileExt(FileListBox2.Filename)); if (Dokument = '.rtf') then begin RichEdit1.PlainText:= False; //Formatierung Richtig stellen einstellen Richedit1.Lines.LoadFromFile(FileListBox2.FileName); end; LabAnzahlDokumente.Caption:= 'Dokument '+ IntToStr(FileListBox2.ItemIndex) +' von '+ IntToStr(FileListBox2.Items.Count); end; |
Re: Mit rechte Maustaste Ordner öffnen
Ich habe mir die TShellTreeView mal installiert.
Bei mir wird auch mit der rechten Maustaste ein Knoten selektiert. Dafür gibt es ja die Eigenschaft RightClickSelect. Ahh... Die funktioniert nur wenn AutoContextMenu := True ist. Du hast ja ein eigenes Popup. Na, dann halt so:
Delphi-Quellcode:
procedure TDemo_Form.ShellTreeView1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var node: TTreeNode; begin node := ShellTreeView1.GetNodeAt(X, Y); if Assigned(node) then begin node.Selected := True; end; end; |
Re: Mit rechte Maustaste Ordner öffnen
Hey danke das funktioniert so
Da war ich ja Kilometer weit weg ohman ich glaube da wäre ich auch nicht drauf gekommen. Ich danke dir für die Mühe. Gruß Sascha |
Re: Mit rechte Maustaste Ordner öffnen
Zitat:
|
Re: Mit rechte Maustaste Ordner öffnen
Stimmt hätte ich jetzt garnicht mehr daran gedacht trotzdem danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz