![]() |
[Synedit] markierten text bei Tab nicht löschen
huhu ihr alle :hi:
habe mal ne kleine frage: undzwar möchte ich im Synedit auf die Tab-Taste reagieren. Also wenn ein Text markiert ist, und jemand klickt auf Tab soll zB eine Message erscheinen. habe das im OnKeyPress gemacht.
Delphi-Quellcode:
das problem ist aber, das nach anzeige der Message der markierte Text gelöscht wird... bzw mit einem Tab überschrieben.... wie das halt nun mal überall so ist.
if (Key = vk_Tab) and (Synedit.SelLength > 0) then
ShowMessage('huhu DP'); Wie kann ich das denn verhindern? :?: |
Re: [Synedit] markierten text bei Tab nicht löschen
Das weiss der Wind :mrgreen:
Ich würde speichern, was markiert ist und nach dem TAB-drücken wieder reinschreiben (Am Ende wieder das Gleiche markieren). Vor dem Reinschreiben halt Showmessage oder GiveMassage ;). PS: Ich drüfte nun bekannt sein für schlechte, aber funktionierende Lösungen :mrgreen: (das liegt wohl an meinem Wissensstand bei Delphi, der nur geringfügig über den eine Kartoffel hinausragt :stupid: ) edit: Ich weiß allerdings nicht ob das so funktionieren könnte (kann im moment nicht testen), aber vielleicht hilft es ja. |
Re: [Synedit] markierten text bei Tab nicht löschen
Hai l0b0dy,
Zitat:
Nach dem abarbeiten der OnKeyPress/OnKeyDown Methoden wird die gedrückte Taste trotzdem von dem Control verarbeitet. Bei dir bedeutet dies:
Du musst also nur den Wert für Key ändern nachdem Du deine IF-Abfrage gemacht hast:
Delphi-Quellcode:
procedure TForm1.SynEdit1KeyPress(Sender: TObject; var Key: Char);
begin if (Key = Char(Vk_Tab)) and (Synedit1.SelLength > 0) then begin ShowMessage('huhu DP'); Key := #0; end; end; |
Re: [Synedit] markierten text bei Tab nicht löschen
ach Sharky,
natürlich!!! hab das total vergessen. :mrgreen: |
Re: [Synedit] markierten text bei Tab nicht löschen
hm
also irgendwie passiert nun überhauptnichts, wenn ich was markiert habe und auf Tab klicke... Scheinbar wird garnicht auf
Delphi-Quellcode:
reagiert. denn wenn ich dsa alleine stelle und auf Tab drücke passiert ebenso nichts...
if Key = Char(VK_TAB) then
Was ist denn falsch? Bzw mach ich was falsch? Also in OnKeypress und dann dieser Code oder? :? |
Re: [Synedit] markierten text bei Tab nicht löschen
Hai n0b0dy,
hast Du bei deinem SynEdit auch .WantTabs := True; eingestellt? :stupid: |
Re: [Synedit] markierten text bei Tab nicht löschen
joa hab ich.
geht nicht wenn an oder wenns aus ist... |
Re: [Synedit] markierten text bei Tab nicht löschen
habe soeben festgestelllt, dass das OnKeyPress überhaupt nicht ausgelöst wird, wenn man Tab drückt. habe mal spaßeshalber showmessage(key) reingeschrieben. funzt auch nicht...
wie wäre es denn mit .Keystrokes? Weiß aber nicht wie ich da was anwenden soll :? [EDIT] Habe nun herausgefunden wenn man bei .Keystrokes den Eintrag mit ecTab löscht, funzt das einwandfrei. mal schaun wie man sich das nun zu nutze machen kann ;) wenns net klappt meld ich mich wieder :D Ciao |
Re: [Synedit] markierten text bei Tab nicht löschen
also hab bissle rumprobiert, aber eigetnlcih keine möglichkeit gefunden. :( denn man muss, damit es funktioniert diesen einen Keystroke entfernen. aber ich möchte den ja verwenden, nur nicht, wenn ein Text markiert ist...
Also kennt sich damit jmd. anderes besser aus? :gruebel: Oder bin ich mit diesen .keystrokes auf nem völlig falschen weg? :? |
Re: [Synedit] markierten text bei Tab nicht löschen
Zitat:
Einfach den Code von mir in das .OnKeyPress, WantTabs auf True und fertig ist der Lack. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 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-2025 by Thomas Breitkreuz