Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: [strg] + [backspace] (TEdit)

  Alt 8. Dez 2009, 13:04
Ich hab noch einmal nachgesehen, wie sich ein RichEdit verhält und bin nun hier angekommen:
Delphi-Quellcode:
function TForm1.LastWordPos(const Src: string; Start: integer): integer;
var i: integer;
begin
  Result := 0;
  if Length(Src) > 0 then
    begin
      if Start > Length(Src) then
        Start := Length(Src);
      i := Start;
      while (i > 0) and (Result < 1) do
        begin
          dec(i);
          if Src[i] = #32 then
            Result := i;
        end;
    end;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var LastStart: integer;
begin
  if Key = #127 then
    begin
      LastStart := (Sender as TEdit).SelStart;
      (Sender as TEdit).SelStart := LastWordPos((Sender as TEdit).Text,LastStart);
      (Sender as TEdit).SelLength := LastStart - (Sender as TEdit).SelStart;
      (Sender as TEdit).SelText := '';
      Key := #0;
    end;
end;
Damit bleibt der Text hinter dem Cursor erhalten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat