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 alle Eintrage in TListView mit STRG+A makieren (https://www.delphipraxis.net/76921-alle-eintrage-tlistview-mit-strg-makieren.html)

naujo 12. Sep 2006 07:22


alle Eintrage in TListView mit STRG+A makieren
 
Hallo alle zusammen,

ich möchte unter Delphi 6 mit der Tastenkombination STRG+A alle Einträge in der TListView makieren.

Meine erste Idee war:

Delphi-Quellcode:
procedure TForm1.ListView1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  // Strg+A abfragen
  if (Shift = [ssCtrl]) then
  begin
    if (Key = Ord('a')) or (Key = Ord('A')) then
    begin
      ListView1.SelectAll;
    end;
  end;
end;
Leider funktioniert, dass nicht.

Dann meine zweite Idee:

Delphi-Quellcode:
procedure TForm1.ListView1LocalKeyPress(Sender: TObject; var Key: Char);
begin
  if (KeyboardStateToShiftState = [ssCtrl]) then
  begin
    if LowerCase(Key) = 'a' then
    begin
      ListView1.SelectAll;
    end;
  end;
end;
Meine dritte Idee war dann halt:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  // Strg+A abfragen
  if (Shift = [ssCtrl]) then
  begin
    if (Key = Ord('a')) or (Key = Ord('A')) then
    begin
      ListView1.SelectAll;
    end;
  end;
end;
Delphi-Quellcode:
Form1.KeyPreView := True
ist natürlich gesetzt.

Vielleicht habt ihr noch eine Idee.

MfG

naujo

marabu 12. Sep 2006 07:38

Re: alle Eintrage in TListView mit STRG+A makieren
 
Hallo naujo,

ziehe von der Standard-Palette eine ActionList auf deine Form, öffne den Action-Editor durch Doppelklick auf die Komponente, wähle im Kontextmenü "Neue Standard-Aktion ..." und dort TEditSelectAll. Im OI trägst du für diese Action dann noch Strg+A als ShortCut ein. Den Rest findest du wahrscheinlich alleine heraus.

Grüße vom marabu

naujo 12. Sep 2006 08:04

Re: alle Eintrage in TListView mit STRG+A makieren
 
Hallo marabu,

danke fuer deine schnelle Hilfe. Ich hatte schon eine ActionList auf meinem Formular liegen :) , aber daran hatte ich gar nicht mehr gedacht. :oops:

Aber jetzt habe ich noch ein Problem, das ganze funkioniert nicht mit STRG+A sondern nur mit z.B. F9, das verstehe ich jetzt leider nicht wirklich. :?: :pale:

Vielleicht hat das was mit dem PopUp-Menü zu tun, dass ich noch an die ListView gebunden habe?
Im Porgramm werden zwar noch weitere ShortCuts genutzt, z.B. F3 bis F8, die alle funktionieren.

Ich habe die anderen Funktionen wieder aus dem Code wieder entfernt.

Oder kann man bei TListView noch weitere Einstellungen vornehmen?

MfG

naujo

marabu 12. Sep 2006 08:38

Re: alle Eintrage in TListView mit STRG+A makieren
 
Stelle sicher, dass du alle Spuren deiner früheren Versuche rund um den ShortCut Strg+A wieder aus deinem Programm entfernt hast. Vielleicht beißt sich da etwas.

marabu

naujo 13. Sep 2006 09:15

Re: alle Eintrage in TListView mit STRG+A makieren
 
Hallo,

ich habe den Code jetzt von alten Resten befreit. Aber leider ist es mir immer noch nicht möglich, alle Einträge mit STRG+A zu makeiren. Wie bereits erwähnt funktioniert, es mit anderen Tastenkobinationen z.B. STRG+B.

Kann es vielleicht sein, dass Delphi bzw. die VCL schon eine Routine mitbringt, die diesen Daten vor wege abfängt und deshalb nicht von der ActionList verarbeitet werden können?

Ich hatte schon mal danach im Forum sucht und auch schon mal gegoogelt, aber leider nichts gefunden.
Ich werde mir mal den Code des Steuerelements anschauen.

MfG

naujo

marabu 13. Sep 2006 13:18

Re: alle Eintrage in TListView mit STRG+A makieren
 
Hallo.

Ich neige immer noch zu der Annahme, dass du den ShortCut Strg+A selbst behinderst. Wenn du magst, stelle dein Projekt oder zumindest die Form (PAS und DFM) online. Es wird sich bestimmt jemand finden, der mal drüberschaut.

Freundliche Grüße

marabu

idontwantaname 13. Sep 2006 13:33

Re: alle Eintrage in TListView mit STRG+A makieren
 
Würde ich auch meinen, da bei mir
Delphi-Quellcode:
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Shift = [ssCtrl] then
    if Key = Ord('A') then
      ListBox1.SelectAll;
end;
problemlos funktioniert, auch mit Popup-Menü :?

naujo 13. Sep 2006 14:14

Re: alle Eintrage in TListView mit STRG+A makieren
 
Zitat:

Zitat von idontwantaname
Würde ich auch meinen, da bei mir
Delphi-Quellcode:
procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Shift = [ssCtrl] then
    if Key = Ord('A') then
      ListBox1.SelectAll;
end;
problemlos funktioniert, auch mit Popup-Menü :?

danke, aber ich verwende ein TListView-Objekt, das hat noch ein paar mehr Eingeschaften, die ich ich benötige.


Zitat:

Zitat von marabu
Hallo.

Ich neige immer noch zu der Annahme, dass du den ShortCut Strg+A selbst behinderst. Wenn du magst, stelle dein Projekt oder zumindest die Form (PAS und DFM) online. Es wird sich bestimmt jemand finden, der mal drüberschaut.

Freundliche Grüße

marabu

Das ist sehr umfangreich, alles kann ich leider nicht zur Verfügung stellen.


Ich bin aber immer noch der festen Überzeugung, dass TListView selbst auf STRG+A reagieren möchte.

MfG

naujo

naujo 13. Sep 2006 15:41

Re: alle Eintrage in TListView mit STRG+A makieren
 
Moin,

ich habe jetzt das Problem gelöst, ich hatte schon mal einen Menüpunkt eingefügt, der alles Makieren sollte, aber warum auch immer habe ich die Funktionalität nicht implementiert, aber schon mal das ShortCut festgelegt. Und zwei mal das gleiche ShortCut geht halt nicht wirklich... :oops: :oops: :oops:

Vielen Dank auf jeden Fall für eure Hilfe.

MfG

naujo


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