Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Denksportaufgabe: Spaß mit Aktionen

  Alt 27. Feb 2016, 17:52
Hallo Leute!

Ich habe heute am Samstag Nachmittag mal ein bisschen mit den eingebauten Aktionslisten herumgespielt. Ich habe in einem VCL-Forms-Projekt eine TActionList, 2 TEdit, eine TImageList und einen TButton auf die Form geworfen. Die Imageliste wurde mit der Aktionsliste verknüpft.

In der Aktionsliste habe ich zwei Standard-Aktionen eingefügt, eine Copy- und eine Paste-Aktion:

http://i.imgur.com/xxwguJb.png

Dann habe ich den Button mit der Copy-Aktion verbunden und das Programm gestartet.

Nach dem Start ist der Button natürlich disabled, weil es ja nichts zu kopieren gibt. Aber sobald ich in einem der Edit-Felder einen Text auswählte, war der Button automatisch enabled, was natürlich eine feine Sache ist, weil man dadurch keine Event-Handler selbst implementieren muss. ABER: Sobald ich auf den jetzt so genannten Copy-Button klicke, wird nicht etwa der im Edit-Feld ausgewählte Text in die Zwischenablage kopiert, sondern ganz einfach der Button disabled.

Ich schlussfolgere also mal gleich: Man sieht ja, dass beim Klicken auf den Button das Edit-Feld den Fokus verliert, somit die Auswahl im Edit-Feld aufgehoben und deshalb folgerichtig der Button deswegen disabled wird.

Also flugs in beiden Edit-Feldern die Eigenschaft HideSelection auf False gesetzt und das Ganze nochmals probiert. Aber denkste! Es funktioniert wieder nicht, obwohl die Auswahl im Edit-Feld trotz des Klickens auf den Button erhalten bleibt. Aber das ist wohl nur optisch vorgetäuscht, damit der Benutzer noch weiß, welchen Text er zuletzt ausgewählt hat.

Dem geneigten Leser bleibt noch überlassen, das Ganze analog mit der Paste-Aktion zu versuchen und dabei ebenso frustriert zu werden.

Wie kann man also die beiden Clipboard-Aktionen auf die dargelegte Weise zum Funktionieren bringen? Wer löst die Denksportaufgabe?
Miniaturansicht angehängter Grafiken
xxwgujb.png  
  Mit Zitat antworten Zitat