Registriert seit: 22. Jun 2018
2.175 Beiträge
|
AW: Text vor einem bestimmten Zeichen NICHT löschen
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;
|
|
Zitat
|