AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TShellTreeView: auf Enter-Taste reagieren...
Thema durchsuchen
Ansicht
Themen-Optionen

TShellTreeView: auf Enter-Taste reagieren...

Ein Thema von juergen · begonnen am 1. Okt 2008 · letzter Beitrag vom 2. Okt 2008
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#1

TShellTreeView: auf Enter-Taste reagieren...

  Alt 1. Okt 2008, 21:57
Hallo zusammen,

ich habe einiges probiert, aber mir will es nicht gelingen...
Ich möchte im ShellTreeView beim Betätigen der Entertaste etwas auslösen.
Den ShellTreeView erzeuge ich zur Laufzeit auf einem Panel.
Nur wie kann ich sowas wie ein OnKeyDown implementieren?

So habe ich ShellTreeView eingebunden:
Delphi-Quellcode:
...
   private
      { Private-Deklarationen }
      My_ShellTreeViewData: TShellTreeView;

...
procedure TForm1.FormCreate(Sender: TObject);
begin
   My_ShellTreeViewData := TShellTreeView.Create(Self);
   with My_ShellTreeViewData do
   begin
      Parent := panelShellTreeViewData;
      Align := alClient
   end;
end;

procedure TForm1.?????
begin
   if (Key = $0D) then //oder VK_Return
begin
      ShowMessage('Enter-Taste erfolgreich');
end;

Vielen Dank schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
J3rk

Registriert seit: 28. Sep 2008
5 Beiträge
 
#2

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 00:03
Delphi-Quellcode:
...
   private
      { Private-Deklarationen }
      My_ShellTreeViewData: TShellTreeView;

      procedure ShellKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); // <------------------


...
procedure TForm1.FormCreate(Sender: TObject);
begin
   My_ShellTreeViewData := TShellTreeView.Create(Self);

   My_shellTreeviewdata.OnKeyDown := ShellKeyDown; // <------------------

   with My_ShellTreeViewData do
   begin
      Parent := panelShellTreeViewData;
      Align := alClient
   end;
end;

procedure TForm1.ShellKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
begin
   if (Key = $0D) then ...

Ich hoffe das hilft dir.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 08:43
Hallo J3rk,

danke für deine Mühe.
Leider hilft das auch nicht, genauso hatte ich es auch schon probiert (allzumal es die Eigenschaft My_ShellTreeViewData.OnKeyDown auch gibt) .
Es scheint aber so, dass die ShellTreeView eine eigene Tastatur-Behandlung hat?
Egal welche Taste ich verwende, man hört dann jeweils den Windows "Standard Warnsignal" -Ton.
Die Showmessage wird aber nie aufgerufen...

Das Ganze scheint dann doch nicht ganz so einfach zu sein.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 08:48
Ich habe jetzt gerade weder D2007 noch die ShellTreeview zur Verfügung, aber ein KeyDown-Event könnte man doch nachrüsten z.B. über einen class helper, oder irre ich mich?
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
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#5

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:09
Hab grad mal mit D2006 getestet da läuft J3rk´s Code

Delphi-Quellcode:
unit Unit7;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ShellCtrls, ExtCtrls;

type
  TForm7 = class(TForm)
    panelShellTreeViewData: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure ShellTreeViewKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form7: TForm7;
  My_ShellTreeViewData: TShellTreeView;

implementation

{$R *.dfm}

procedure TForm7.FormCreate(Sender: TObject);
begin
   My_ShellTreeViewData := TShellTreeView.Create(Self);
   My_shellTreeviewdata.OnKeyDown := ShellTreeViewKeyDown;

   with My_ShellTreeViewData do
   begin
      Parent := panelShellTreeViewData;
      Align := alClient
   end;
end;

procedure TForm7.ShellTreeViewKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (Key = $0D) then ShowMessage('Enter-Taste erfolgreich');
end;

end.
Marcel
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:09
Hallo,

Delphi-Quellcode:
procedure TForm1.ShellTreeView1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  ShowMessage('ShellTreeView1KeyDown' + #13 + IntToStr(Key));
end;

procedure TForm1.ShellTreeView1KeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessage('ShellTreeView1KeyPress' + #13 + '>' + Key + '<');
end;

procedure TForm1.ShellTreeView1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  ShowMessage('ShellTreeView1KeyUp' + #13 + IntToStr(Key));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  My_ShellTreeViewData := TShellTreeView.Create(Self);
  with My_ShellTreeViewData do
  begin
    Parent := panelShellTreeViewData;
    Align := alClient;
  end;
  My_ShellTreeViewData.OnKeyDown := ShellTreeView1KeyDown;
  My_ShellTreeViewData.OnKeyPress := ShellTreeView1KeyPress;
  My_ShellTreeViewData.OnKeyUp := ShellTreeView1KeyUp;
end;
Das funktioniert bei mir, allerdings wird ShellTreeView1KeyUp nie angezeigt.
Delphi 7 Prof. unter XP-Prof.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#7

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:10
Moin, Moin.
Seltsam - wir reden doch hier hoffentlich von der gleichen Komponente. Habe das nachgestellt, es funktioniert sowohl direkt auf dem Form als auch auf einem Panel ohne Probleme. Zeige doch mal deinen Code...

// edit: Na, noch einer (hab's mit D7 getestet)
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:11
Gerade unter Delphi 5 bei einer Treeview nachgesehen: dort gibt es ein OnKeyDown-Event. Ist das bei der Shelltreeview wirklich verborgen?
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
nahpets
(Gast)

n/a Beiträge
 
#9

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:17
Hallo,
Zitat von DeddyH:
Gerade unter Delphi 5 bei einer Treeview nachgesehen: dort gibt es ein OnKeyDown-Event. Ist das bei der Shelltreeview wirklich verborgen?
nein, bei Delphi 7 nicht.
KeyPreview des Formulars steht bei mir auf False, allerdings führt die Änderung auf True zu keinem anderen Verhalten.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TShellTreeView: auf Enter-Taste reagieren...

  Alt 2. Okt 2008, 09:28
Hallo zusammen,

die ShellTreeView ist in meinem D2007 im Standard nicht als VCL vorhanden.
Daher hatte ich diese Komponeten wie im 1. Thread dargestellt, aufgerufen.

Inzwischen habe ich mir die ShellTreeView als VCL eingebunden.
Diese Komponente auf ein Panel gelegt und .... taräääääh.... es funktioniert!

Vielen Dank für Eure Mühen!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:42 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