AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TreeView-->OnEditing/OnEdited die Enter-Taste abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView-->OnEditing/OnEdited die Enter-Taste abfangen

Ein Thema von RWarnecke · begonnen am 12. Feb 2009 · letzter Beitrag vom 21. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

TreeView-->OnEditing/OnEdited die Enter-Taste abfangen

  Alt 12. Feb 2009, 14:00
Hallo zusammen,

ich habe da mal wieder ein Problem. Ich erstelle mit dem folgenden Code eine neue Node in einem TreeView und setze diese in den Editiermodus :
Delphi-Quellcode:
  tmpNode := TV_Category.Items.AddChild(TV_Category.Selected, 'Neue Kategorie');
  tmpNode.ImageIndex := 0;
  tmpNode.SelectedIndex := 0;
  TV_Category.Selected.Expand(False);
  tmpNode.Selected := True;
  TV_Category.Selected.EditText;
Funktioniert auch soweit ganz gut. Nun zu meinem Problem, wenn ich jetzt einfach die Enter-Taste drücke, wird die neue Node mit dem Namen "Neue Kategorie" eingefügt und das Ereignis OnEdited wird nicht ausgeführt. Das heißt, dass die Node nicht in meiner Datenbank abgeseichert wird.

Wie kann ich das ganze jetzt abfangen ? Denn ich möchte, dass der User einen neuen Namen für die Kategorie vergibt und nicht eher aus dem Editiermodus des TreeViews rauskommt bis mindestens ein Name vergeben ist. Über die OnKeyxxx-Ereignisse habe ich es auch schon probiert. Diese werden aber im Editiermodus nicht angesprochen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 12. Feb 2009, 21:01
Hallo evtl. hilft dir meine damalige Antwort weiter. Nicht so fein formatiert (wie mir zu recht vorgeworfen wurde... ), aber funktioniert.
Hartmut
*
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 12. Feb 2009, 21:04
Ehm, habe vergessen auf das hinzuweisen, was ich eigentlich sagen wollte: Versuche mal die Enter-Taste schon global auf Applikationsebene abzufangen, wie im Link des letzten Beitrags beschrieben.
Hartmut
*
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 12. Feb 2009, 21:36
Zitat von HHennig:
Hallo evtl. hilft dir meine damalige Antwort weiter. Nicht so fein formatiert (wie mir zu recht vorgeworfen wurde... ), aber funktioniert.
Zitat von HHennig:
Ehm, habe vergessen auf das hinzuweisen, was ich eigentlich sagen wollte: Versuche mal die Enter-Taste schon global auf Applikationsebene abzufangen, wie im Link des letzten Beitrags beschrieben.
Dann müsste ich ja meine anderen KeyDown, KeyPress etc. alle umbauen. Das ist nicht was ich will, da ich in mehreren Komponenten auf Tasten reagiere.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 12. Feb 2009, 23:30
Zitat:
Dann müsste ich ja meine anderen KeyDown, KeyPress etc. alle umbauen
Nicht unbedingt, wenn in der globalen OnAppMsg gerade nicht die richtige Komponente den Tastaturfokus hat, kannst du das ja abfragen und mit Handled := False die Tastaturereignisse ganz normal an die nachfolgenden KeyDown, KeyPress, etc. weiterreichen.
Hartmut
*
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 12. Feb 2009, 23:44
Ok, dabei stellt sich mir jetzt aber die Frage, welche wird als erstes Ausgeführt ? Das OnKeyDown, OnKeyPress Ereignis von der Komponente oder das globale ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 13. Feb 2009, 00:02
Ich bin fast sicher, dass der globale Event zuerst kommt, sonst würde ja der Parameter Handled keinen Sinn machen.

Aber, am besten testen: je einen Breakpoint in das globale und in ein sonstiges Key-Event setzen und starten. Wer zuerst kommt mahlt auch zu erst...
Hartmut
*
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 13. Feb 2009, 00:13
Ok, ich werde es mal testen. Aber ganz zufrieden bin ich damit nicht. Da das eine Menge Aufwand bedeutet.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
HHennig

Registriert seit: 16. Feb 2007
Ort: Pforzheim
51 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 13. Feb 2009, 00:21
Sicher kann das ggf. aufwendig werden. Hast du aber überhaupt eine andere Wahl, wenn doch, wie du anfangs sagtest, die 'normalen' Events gar nicht greifen?

Ich wüsste jetzt gerade keine Alternative.
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: TreeView-->OnEditing/OnEdited die Enter-Taste abfange

  Alt 13. Feb 2009, 00:30
Zitat von HHennig:
Sicher kann das ggf. aufwendig werden. Hast du aber überhaupt eine andere Wahl, wenn doch, wie du anfangs sagtest, die 'normalen' Events gar nicht greifen?
Das haben zumindest meine bisherigen Tests ergeben. Ich habe zu dem Editiermodus des TreeViews aber auch noch nichts weiteres gefunden. Mir wäre es am liebsten, ich kann das über das normale KeyDown vom TreeView abhandeln. So brauche ich die anderen Komponenten nicht anzufassen. Das blöde ist halt, wenn ich per Sourcecode einen Text für die Node vorgebe und dann nur Enter gedrückt wird, wird das OnEdited-Ereignis nicht ausgeführt. Gebe ich zum Beispiel nur eine 1 hinter dem vorgegebenen Namen ein, dann funktioniert es.

Eine andere Möglichkeit wäre noch eine Dialogbox zu machen, wo ich dann das entsprechende Edit-Feld auswerten kann. Was ich aber aus Designersicht wiederum nicht elegant gelöst finde.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:03 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