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?