Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#19

AW: Text vor einem bestimmten Zeichen NICHT löschen

  Alt 10. Mär 2020, 16:23
Versuchs mal so

Delphi-Quellcode:
const
  FixedShellDummyStringyThingy = 'shell > ';

procedure TForm1.FormCreate(Sender: TObject);
begin
 Width := 979;
 Height := 512;

 Memo1.ScrollBars := ssVertical;
 Memo1.Align := alClient;
 Memo1.WordWrap := True;

 Memo1.Clear;
 Memo1.Lines.Strings[0] := FixedShellDummyStringyThingy;

 Memo1.BevelInner := bvNone;
 Memo1.BevelKind := bkNone;
 Memo1.BevelOuter := bvNone;
 Memo1.BorderStyle := bsNone;

 Memo1.Color := clBlack;
 Memo1.Font.Size := 12;
 Memo1.Font.Color := $00CCCCCC;
 Memo1.Font.Name := 'Consolas';
end;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 if (Key in [VK_UP, VK_DOWN]) then
  Key := 0
 else if Memo1.CaretPos.X <= Length(FixedShellDummyStringyThingy) then
  Key := 0;
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
 CurrentLineIndex: Integer;
 CurrentLineStr: string;
begin
 CurrentLineIndex := Memo1.CaretPos.Y;
 CurrentLineStr := Memo1.Lines.Strings[CurrentLineIndex];

 if (Key = #8) and AnsiSameText(CurrentLineStr, FixedShellDummyStringyThingy) then
  begin
   Key := #0;
  end
 else
  begin
   if (Key = #13) then
    begin
     Key := #0;
     Memo1.Lines.Add(FixedShellDummyStringyThingy);
    end
   else
    begin

    end;
  end;
end;
Miniaturansicht angehängter Grafiken
2020-03-10-17_22_50.png  
  Mit Zitat antworten Zitat