Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Überschreibmodus für TEdit

  Alt 27. Mär 2009, 12:17
TEdit kapselt ja nur das Windows-Edit, und das kann out of the box keinen Überschreibmodus. Ich hab das in einem Fall so gelöst:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  AEdit: TEdit;
begin
  Assert(Sender is TEdit);
  case Key of
    ' '..#126, #128..#255:
      begin
        AEdit := TEdit(Sender);
        if OverwriteMode and (AEdit.SelLength = 0) then
          AEdit.SelLength := 1;
        if (AEdit.SelLength > 0) and (AEdit.SelText[1] = #13) then
          AEdit.SelLength := 2;
      end;
  end;
end;

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
  if Msg.CharCode = VK_INSERT then
  begin
    OverwriteMode := not OverwriteMode;
    Handled := True;
  end;
end;
Die OnKeyPress-Routine stammt WIMRE von Peter Below. Das Zeug mit #13 dürfte wohl nur für Memos interessant sein.

HTH,
Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat