只要不能用向上的键,回车后就不能修改了: procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_up) or (key=VK_PRIOR) then key:=0; end; 得到这次操作输入的字符串?不是很明白,在synedit或其它编辑框中,要得到任何一行内容都是很方便的
给你一个简单的参考,可用PGUP及UP(PGDOWN及DOWN没考虑): unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SynEdit;type TForm1 = class(TForm) SynEdit1: TSynEdit; procedure SynEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } stat:integer; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SynEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_up) or (key=VK_PRIOR) then begin key:=0; if (stat>0) then begin SynEdit1.Lines[SynEdit1.Lines.Count-1]:=SynEdit1.Lines[stat]; dec(stat); end; end else if key=13 then stat:=SynEdit1.Lines.Count;end;end.
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_up) or (key=VK_PRIOR) then
key:=0;
end;
得到这次操作输入的字符串?不是很明白,在synedit或其它编辑框中,要得到任何一行内容都是很方便的
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SynEdit;type
TForm1 = class(TForm)
SynEdit1: TSynEdit;
procedure SynEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
stat:integer;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SynEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_up) or (key=VK_PRIOR) then
begin
key:=0;
if (stat>0) then
begin
SynEdit1.Lines[SynEdit1.Lines.Count-1]:=SynEdit1.Lines[stat];
dec(stat);
end;
end else
if key=13 then
stat:=SynEdit1.Lines.Count;end;end.