Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi In TreeView Markieren mit Tasten verhindern? (https://www.delphipraxis.net/81398-treeview-markieren-mit-tasten-verhindern.html)

PeterPanino 26. Nov 2006 15:07


In TreeView Markieren mit Tasten verhindern?
 
Wenn ich zur Laufzeit in einem TTreeView eine Zeichentaste drücke (z.B. "E"), wird der nächste Knoten, der mit diesem Zeichen beginnt (z.B. "Erika") markiert. Wie kann man das verhindern?

Relicted 26. Nov 2006 15:24

Re: In TreeView Markieren mit Tasten verhindern?
 
du weist die OnKeyPress methode zu und da der Key der übergeben wird nen var parameter ist kannst den überschreiben...

hier das hier wird den tree dazu veranlassen keine keys mehr zu akzeptieren... du kannst da natürlich auch drin unterscheiden ob du gerade im edit modus bist oder nicht..

Code:
procedure TForm1.TreeView1KeyPress(Sender: TObject; var Key: Char);
begin
  key := #0;
end;
gruß
reli

PeterPanino 26. Nov 2006 17:20

Re: In TreeView Markieren mit Tasten verhindern?
 
Vielen Dank für den Tipp! Ich hatte das noch nicht versucht, weil ich glaubte, dass dann OnKeyDown und OnKeyUp nicht mehr durchkommen würde - aber dem ist offensichtlich nicht so.

Welche prinzipiellen Abhängigkeiten gibt es eigentlich zwischen OnKeypress, OnKeyDown und OnKeyUp? Sind solche Abhängigkeiten ggf. bei allen Komponenten gleich oder ähnlich?

Relicted 26. Nov 2006 17:35

Re: In TreeView Markieren mit Tasten verhindern?
 
die genauen abhängigkeiten zwischen den 3 events kann ich dir jetzt ned sagen aber ich kann dir sagen dass die events bei allen controls drin sind, welche von twincontrols abgeleitet sind. mir würde jetzt ad hoc kein control einfallen wo das überschrieben ist - also ist es bei (fast) allen controls das selbe.

achja zitat onlinehilfe:

Das Ereignis OnKeyDown tritt auf, wenn der Benutzer eine Taste drückt, während das Steuerelement den Fokus hat.
Das Ereignis OnKeyPress tritt auf, wenn eine Taste gedrückt wird.
Das Ereignis OnKeyUp tritt auf, wenn der Benutzer eine zuvor gedrückte Taste loslässt.

gruß
reli

PeterPanino 26. Nov 2006 17:55

Re: In TreeView Markieren mit Tasten verhindern?
 
Zitat:

Zitat von Relicted
Das Ereignis OnKeyDown tritt auf, wenn der Benutzer eine Taste drückt, während das Steuerelement den Fokus hat.
Das Ereignis OnKeyPress tritt auf, wenn eine Taste gedrückt wird.
Das Ereignis OnKeyUp tritt auf, wenn der Benutzer eine zuvor gedrückte Taste loslässt.

Sehr intelligent ist da die Online-Hilfe nicht (wie so oft). Auch hier wird keine allfällige Abhängigkeit beschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 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