Am einfachsten dürfte es doch sein zu prüfen ob hinter
bereits ein steht.
Delphi-Quellcode:
procedure TForm1.Memo1Change(Sender: TObject);
begin
if (Copy(Memo1.Text, Memo1.SelStart-2, 3) = '[b]') and not
(Copy(Memo1.Text, Memo1.SelStart+1, 4) = '[/b]') then
begin
Memo1.SelText := '[/b]';
Memo1.SelStart := Memo1.SelStart-4;
end;
end;