Thema: Delphi Strg+Backspace

Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Strg+Backspace

  Alt 6. Jul 2009, 20:09
Hallo,

wie kann ich mit Strg und Backspace den Teilinhalt eines Edits löschen?
Also es geht darum, dass fast jeder gute Editor mit Strg+Backspace und Strg+Delete den Inhalt des Edits bis zum nächsten "Stopzeichen" (i.d.R. Leertaste... Unter Delphi auch Klammern u.ä.) löscht. Nun für Strg+Del gehtdas schon mal.

Aber für Strg+BS bräuchte ich noch eine Lösung. Es handelt sich um ein Passwortfeld, also wird alles gelöscht:
Delphi-Quellcode:
procedure TFPasswort.EPasswordKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  Pass : string;
begin
  // [Ctrl] + [Backspace] = Alles löschen
  if ([ssCtrl] = Shift) and (Key = VK_BACK) then
  begin
    Pass := EPassword.Text;
    Delete(Pass, 1, EPassword.SelStart);
    EPassword.Text := Pass;
    Key := 0;
  end;
end;
Also an sich funktioniert das schon. Das Problem jetzt ist nur, dass danach noch ein Kästchen in der Selektion eingefügt wird.
So sieht es vorher aus (| = Cursor):
Zitat:
Ein |Passwort
Dann einmal Ctrl+BS:
Zitat:
|Passwort
MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat