回车后前面已输入的内容无法编辑,并且得到这次操作输入的字符串?
就像dos框一样?

解决方案 »

  1.   

    那位大侠有点思路?普通的memo或者richedit也可以
      

  2.   

    只要不能用向上的键,回车后就不能修改了:
    procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (key=vk_up) or (key=VK_PRIOR)  then
        key:=0;
    end;
    得到这次操作输入的字符串?不是很明白,在synedit或其它编辑框中,要得到任何一行内容都是很方便的
      

  3.   

    给你一个简单的参考,可用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.
      

  4.   

    在OnChange事件里面判断选中的行是不是最后一行,否则不给改动