AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TListView - auf Doppelklick und Enter reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

TListView - auf Doppelklick und Enter reagieren

Ein Thema von Kinimod8 · begonnen am 13. Okt 2005 · letzter Beitrag vom 13. Okt 2005
Antwort Antwort
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#1

TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 13:53
Hallo,

Folgendes Problem:

Ich habe ein ListView (vsReport) und möchte - ähnlich wie im Windows-Explorer - bei Doppelklick oder Enter-Druck ein Bearbeiten-Fenster aufrufen. Das OnDblClick-Event hab ich schon ausprobiert (in Verbindung mit einer if-Schleife, ob ein Eintrag makiert ist), aber diese Lösung arbeitet nicht wirklich zuverlässig.

Könnt ihr mir helfen?

Danke,
Dominik
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 14:01
Der Weg über OnDblClick ist völlig richtig. Wäre gut gewesen, wenn du noch etwas Code gezeigt hättest. Richtig müsste es die IF-Abfrage so sein:

Delphi-Quellcode:
if ListView1.Selected <> nil then
begin
  // mache was
end;
Für das Enter müsstest du OnKeyPress abfangen und den Parameter Key auf #13 überprüfen.

P.S: Es gibt keine IF-Schleifen Wenn dann sind es IF-Bedingungen oder IF-Abfragen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 14:19
Hallo Dominik,

füge deiner Form eine ActionList zu, wenn du das noch nicht gemacht hast. Im ActionListEditor definierst du dann eine ListOpenAction mit dem ShortCut "Enter" und der Caption "Open", der du deinen Code zum Öffnen des Berabeitungsdialogs zuweist. Jetzt musst du noch deiner ListView ein PopupMenu zuordnen und darin einem neuen Item die ListOpenAction. Im Event-Handler für ListView.OnDoubleClick rufst du dann ListOpenAction.Execute auf und damit du nicht erst im Action-Code überprüfst, ob überhaupt ein Item selektiert ist, machst du diese Überprüfung in der OnIdle-Routine deiner Application, die du im FormCreate initialisierst:

Delphi-Quellcode:
procedure TDemoForm.AppIdle(Sender: TObject; var done: boolean);
begin
  ListOpenAction.Enabled := Assigned(ListView.Selected);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#4

Re: TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 14:35
@jim_raynor:
Danke, jetzt funktioniert es.

Delphi-Quellcode:
procedure TForm1.ListView1DblClick(Sender: TObject);
begin
 if ListView1.Selected <> nil then
  ShowMessage(ListView1.Selected.Caption);
end;

procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key = VK_RETURN then
  ShowMessage(ListView1.Selected.Caption);
end;
@marabu:
In Delphi 3 gibt es leider noch keine ActionLists, trotzdem Danke!
Dominik Peters
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 17:08
Zitat von Kinimod8:
Delphi-Quellcode:
procedure TForm1.ListView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key = VK_RETURN then
  ShowMessage(ListView1.Selected.Caption);
end;
Da solltest du auch noch das if <>nil einbauen oder rufst alternativ die OnDblClick-Prozedur auf:

ListView1DblClick(Sender)
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Kinimod8

Registriert seit: 9. Jan 2004
Ort: Barsbüttel
317 Beiträge
 
Delphi 6 Personal
 
#6

Re: TListView - auf Doppelklick und Enter reagieren

  Alt 13. Okt 2005, 17:12
Stimmt, hast ja recht Danke!
Dominik Peters
  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 02:51 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