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 StrdActions im RichEdit aber nicht in ComboBox anwendbar? (https://www.delphipraxis.net/84239-strdactions-im-richedit-aber-nicht-combobox-anwendbar.html)

Ingo R 13. Jan 2007 20:07


StrdActions im RichEdit aber nicht in ComboBox anwendbar?
 
Bei der Verwendung von Delphi 7 beschäftigt mich folgendes Problem:

Ich bestücke ein Formular mit einer TComboBox (csDropDown) und einem TRichEdit. Wenn ich das Programm starte kann ich die ShortCuts (Standard) "Strg+X", "Strg+C", "Strg+V", "Strg+Z" und "Entf" sowohl in der ComboBox als auch im RichEdit verwenden.

Füge ich dem Formular nun aber eine TActionList (mit den Standardaktionen - Bearbeiten: TEditCut, TEditCopy, TEditPaste, TEditSelectAll, TEditUndo und TEditDelete) sowie ein TMainMenu, bestückt mit diesen Aktionen, hinzu und rufe das Programm erneut auf dann funktionieren die ShortCuts nur noch im RichEdit.

Wie kann ich es hinbekommen das die ShortCuts für beide Komponenten gültig sind? Wenn ich die ShortCuts für die Standardaktionen entferne funktioniert es zwar - aber dann zeigt das MainMenu keine ShortCuts mehr an - und wenn ich daraufhin den MenuItems die ShortCuts verpasse habe ich wieder das gleiche Problem wie oben erwähnt.

marabu 13. Jan 2007 22:08

Re: StrdActions im RichEdit aber nicht in ComboBox anwendbar
 
Herzlich willkommen in der Delphi-PRAXiS, Ingo.

Die Standardaktionen TEdit... unterliegen einer Beschränkung - sie arbeiten nur mit Nachfahren von TCustomEdit zusammen. Um auch mit anderen Komponenten zu kooperieren kannst du die eingebaute Aktion ersetzen durch:

Delphi-Quellcode:
procedure TDemoForm.EditCutExecute(Sender: TObject);
begin
  SendMessage(GetFocus, WM_CUT, 0, 0);
end;
Analog verfährst du mit den Nachrichten WM_COPY, WM_PASTE, WM_CLEAR, WM_UNDO, ...

Freundliche Grüße vom marabu

Ingo R 13. Jan 2007 22:29

Re: StrdActions im RichEdit aber nicht in ComboBox anwendbar
 
Zitat:

Delphi-Quellcode:
procedure TDemoForm.EditCutExecute(Sender: TObject);
begin
  SendMessage(GetFocus, WM_CUT, 0, 0);
end;
Analog verfährst du mit den Nachrichten WM_COPY, WM_PASTE, WM_CLEAR, WM_UNDO, ...

Freundliche Grüße vom marabu
Ja - erst einmal vielen Dank. Das hilft mir weiter. Nachdem ich hier noch etwas gesöbert habe, fand ich in der Code-Library unter "Windows API / MS.NET Framework API" einen Eintrag vom Autor harrybo unter dem Titel Cut/Copy/Paste/Undo im Bearbeiten Menü anbieten. Ich nehme an, dass es Deinem Lösungsanstz entspricht und werde beides gleich mal ausprobieren.

marabu 14. Jan 2007 10:52

Re: StrdActions im RichEdit aber nicht in ComboBox anwendbar
 
Hallo Ingo,

Zitat:

Zitat von Ingo R
... Ich nehme an, dass es Deinem Lösungsanstz entspricht ...

es ist wohl noch keinem aufgefallen, aber die Diagnose des Problems dort ist falsch. Die Therapie ist aber die gleiche und führt auch in deinem Fall zum Erfolg. Die Standard-Actions ermitteln intern natürlich die betroffene Komponente, sonst würden sie bereits bei einem TEdit versagen und wären generell sinnlos.

Schönes Wochenende


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz