![]() |
Delphi-Version: 5
Rechtsklick reagiert nicht
Hi zusammen
Wiedermal bin ich dabei, meinen OpenFileFrame zu erweitern. In einem Popup-Menü hab ich ein Menuitem 'Neu', dem ich in einem Untermenu zwei Subitems verpasst habe: 'Verzeichnis' und Textdatei'. in ersterem habe ich per Doppelklick im OI die Clickprozedur erzeugt und diese mit 'Leben' befüllt. Die Kruxist nur: die Prozedur wird nicht aufgerufen.
Delphi-Quellcode:
FSelectedNode sollte den Treenode enthalten, über dem ich mit der rechten Maustaste geklickt habe. Das Showmessage ist hier am Anfang eigentlich nur so was wie ein Lückenbüsser; ich habe auch schon mal erlebt, dass die erste Zeile einer Methode aus unerklärlichem Grund übersprungen wurde. Auf der Zeile mit dem FSelectedNode hab ich einen Haltepunkt gesetzt, der auch aktiv ist.
procedure TOpenFileFrame.VerzeichniserstellenClick(Sender: TObject);
var LParentNode: TTreeNode; LRealName: String; begin ShowMessage('FSelectedNode := ' + FSelectedNode.Text +sLineBreak+ 'LRealName := ' + LRealName); if FSelectedNode <> nil then begin LParentNode := FSelectedNode.Parent; LRealName := PNameRec(FSelectedNode.Data)^.RealName; //PNameRec(FSelectedNode.Data)^.RealName ShowMessage('FSelectedNode := ' + FSelectedNode.Text +sLineBreak+ 'LRealName := ' + LRealName); // TDirectory.CreateDirectory(); end; end; Trotzdem geschieht rein gar nichts, wenn ich einen Eintrag des Treeviews rechts anklicke. Wieso nicht, bzw. wie oder wo könnte ich den Fehler finden? Gruss Delbor |
AW: Rechtsklick reagiert nicht
Wenn in deinem Windows die Maustasten nicht vertauscht sind, dann wird ein Click nur mit der linken Maustaste ausgelöst.
Einen Rechtsklick kannst du im Event OnContextPopup abfangen. |
AW: Rechtsklick reagiert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Uwe Raabe
Den Threenode im OpenfileFrame, respektive im TVFilesExplorer klicke ich rechts an und im OnContextPopup zeige ich das Popup an:
Delphi-Quellcode:
Anhang 51746
procedure TOpenFileFrame.TVFilesExplorerContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean); var P: TPoint; X,Y: integer; begin FReportlist.Add('----------------'); FReportlist.Add('prozedur TVFilesExplorerContextPopup'); FReportlist.Add('Button =(mbRight)-Block'); X := MousePos.X; Y := MousePos.Y; P := ClientToScreen(Point(x,y)); PopupMenu1.Popup(P.X, P.Y); end; Die einzelnen Einträge in diesem PopUp jedoch klicke ich mit der linken Maustaste an - im Falle des Wurzelverzeichnisses und des Zurücksetzens klappt das einwandfrei. Ursprünglich waren 'Verzeichnis' und 'Textdatei' Untermenüs von 'Neu' - ich hab sie verschoben, weil ich erst vermutete, ich müsste dem Popup noch irgendwie mitteilen, dass es sich aktuell um Submenues handelt. Das hat nichts gebracht. Auch den Namen löschen und Delphi einen neuen erzeugen lassen, war Fehlanzeige. Gruss Delbor |
AW: Rechtsklick reagiert nicht
Ist denn die Methode VerzeichniserstellenClick dem OnClick-Ereignis des PopupMenu-Items zugeordnet?
Grüße Dalai |
AW: Rechtsklick reagiert nicht
Hi zusammen
Irgendwie läuft auf 'wunderliche Weise' alles wieder so, wie es sollte. Ich hatte das Popup aufgerufen, um die Funktion unter 'Wurzelverzeichnis' zu testen. Das funktionierte soweit, dass das Treevie gelöscht und das neue Wurzelverzeichnis angezeigt wurde. Dabei fror allerdings die Anwendung ein, so dass ich sie über den Taskmanager abschiessen musste. Ein Anklicken und über 'zurücksetzen' den Originalzustandwieder herstellen, war nicht möglich. Geändert hab ich nicht wirklich viel. Ausser dies:
Delphi-Quellcode:
Wieso ich das überhaupt auskommentiert hatte, kann ich nicht mehr nachvollziehen. Muss wohl echt spät gewesen sein...
procedure TOpenFileFrame.Zurcksetzen1Click(Sender: TObject);
begin if FileSearcher1.RootDir <> 'C:\' then begin TVFilesExplorer.Items.Clear; // FileSearcher1.RootDir := 'C:\'; // <<== DisplayAllFiles; end; end; Zitat:
Momentan nicht wirklich nachvollziehen kann ich, wieso mir die Anwendung eingefroren ist. DisplayAllFiles ist aus der Oncreateprozedur extrahiert und sucht erstmal nach den diversen Laufwerken. Und dazu braucht FileSearcher1 natürlich ein Rootverzeichnis... Gruss Delbor |
AW: Rechtsklick reagiert nicht
Ich hoffe, Dir ist bewusst, dass die Komponente asynchron arbeitet. Das bedeutet, dass Dinge nicht unbedingt in der Reihenfolge ausgeführt werden, in der Du sie schreibst. Wenn Du also z.B. das Wurzel-Suchverzeichnis änderst, solltest Du vorher eine evtl. noch laufende Suche erst einmal abbrechen und warten, bis das auch geschehen ist. Es gibt entsprechende Ereignisse dafür.
|
AW: Rechtsklick reagiert nicht
Hi DeddyH
Zitat:
Gruss Delbor |
AW: Rechtsklick reagiert nicht
Wenn die Suche beendet ist, wird ein evtl. zugewiesener Ereignishandler für OnExecuteComplete aufgerufen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 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 by Thomas Breitkreuz