TEdit: Markierung per Maus verhindern
-
hi leutz,
wenn man mit der Maus in ein TEdit-Element klickt und die Maustaste gedrückt hält und dann die Maus verschiebt, wird ja mit der Maus eine Markierung innerhalb des Textes des TEdits erzeugt.
Wie kann ich verhindern, dass auf diese Art etwas markiert wird?
Bedingungen:
- das TEdit muss editierbar und aktiv bleiben
- die Markierung mit Gewalt zurücksetzen, sollte die letzte Möglichkeit sein
danke
-
Du musst lediglich beim OnMuseDown Ereignis des TEdit Controls den Focus auf ein anderes Control setzen. Das funktioniert einwandfrei
//--------------------------------------------------------------------------- void __fastcall TForm1::Edit1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Button1->SetFocus(); } //---------------------------------------------------------------------------
[ Dieser Beitrag wurde am 08.07.2003 um 10:29 Uhr von Skay editiert. ]
-
wenn ich sowas mache, dann verliert das TEdit aber den Eingabefokus, d.h. ich kann es nicht bearbeiten!
-
Probier mal das aus ... So ist das Edit noch editierbar ...
//--------------------------------------------------------------------------- void __fastcall TForm1::Edit1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Edit1->SelLength=0; } //---------------------------------------------------------------------------
-
Skay:
Mach mal einen Rechtsklick in's Edit und wähle 'Alles markieren'.
Also, SelLength muss mindestens noch im MouseUp und im KeyUp auf Null gesettzt werden.Wie immer bei solchen Benutzer-feindlichen Aktionen habe ich aber Probleme, nachzuvollziehen, wozu das gut sein soll. Falls damit eine Passworteingabe gegen Kopieren abgesichert werden soll: es gibt genug Tools, die sich den Inhalt direkt aus der Text-Property des Controls holen.
-
ist für eine datums-komponente. dort soll ähnlich wie im TDateTimePicker immer nur der angeklickte Datumsteil markiert werden. das funktioniert ja auch soweit. alles markieren ist auch okay, dann kann man die eingabe komplett verändern (bei doppelklick z.b.).
im moment setze ich mit gewalt beim markieren mit der linken maus die markierung wieder auf den jeweiligen datumsbereich. funktioniert damit, dachte aber man könnte es besser lösen...