AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Rechtsklick reagiert nicht

Ein Thema von Delbor · begonnen am 26. Okt 2019 · letzter Beitrag vom 26. Okt 2019
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 13:46
Delphi-Version: 5
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:
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;
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.
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.086 Beiträge
 
Delphi 12 Athens
 
#2

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 13:58
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 14:25
Hi Uwe Raabe

Den Threenode im OpenfileFrame, respektive im TVFilesExplorer klicke ich rechts an und im OnContextPopup zeige ich das Popup an:
Delphi-Quellcode:
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;
popupmenue.jpg
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 15:04
Ist denn die Methode VerzeichniserstellenClick dem OnClick-Ereignis des PopupMenu-Items zugeordnet?

Grüße
Dalai
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 15:23
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:
procedure TOpenFileFrame.Zurcksetzen1Click(Sender: TObject);
begin
  if FileSearcher1.RootDir <> 'C:\then
  begin
    TVFilesExplorer.Items.Clear;
// FileSearcher1.RootDir := 'C:\'; // <<==
    DisplayAllFiles;
  end;
end;
Wieso ich das überhaupt auskommentiert hatte, kann ich nicht mehr nachvollziehen. Muss wohl echt spät gewesen sein...

Ist denn die Methode VerzeichniserstellenClick dem OnClick-Ereignis des PopupMenu-Items zugeordnet?
Ja, war sie. ich hab sie auch per Klick im OI extra nochmal neu ausgewählt.

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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 15:55
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 16:29
Hi DeddyH

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.
Ich gehe allerdings davon aus, dass die Suche abgeschlossen ist, wenn das Verzeichnis mit allen Unterverzeichnissen und allfälligen Dateien im Treeview angezeigt werden.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Rechtsklick reagiert nicht

  Alt 26. Okt 2019, 16:57
Wenn die Suche beendet ist, wird ein evtl. zugewiesener Ereignishandler für OnExecuteComplete aufgerufen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz