Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mit rechte Maustaste Ordner öffnen (https://www.delphipraxis.net/110342-mit-rechte-maustaste-ordner-oeffnen.html)

SaFu 16. Mär 2008 20:10


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;

SaFu 16. Mär 2008 21:35

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???

Blackheart 16. Mär 2008 22:15

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.

SaFu 17. Mär 2008 05:55

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

Sharky 17. Mär 2008 06:07

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.

SaFu 17. Mär 2008 06:09

Re: Mit rechte Maustaste Ordner öffnen
 
Wie gesagt ich habe ja schon einiges versucht ich hatte das Problem schonmal

Delphi-Quellcode:
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;
Damit geht es bei einer FileListBox aber bei der ShellTreeview nichtbesser gesagt ich komm einfach net drauf egal was ich mach

Sharky 17. Mär 2008 06:23

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;

SaFu 17. Mär 2008 06:33

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

Sharky 17. Mär 2008 06:36

Re: Mit rechte Maustaste Ordner öffnen
 
Zitat:

Zitat von fuknersascha
Hey danke das funktioniert so. ...

*g* Sonst hätte ich es ja nicht geschrieben. Du solltest natürlich noch abfragen ob die rechte Maustaste gedrückt wurde. Dann ist der Code "sauberer" auch wenn es nicht notwendig ist.

SaFu 17. Mär 2008 06:37

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