Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
Re: [strg] + [backspace] (TEdit)
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
|