我在程序设计的时候,采用了两个Memo传递数据的问题;具体情形如下:
    左边一个memo1,显示所有职位信息;
    右边一个memo2,显示用户要求的职位
    中间分别有个相左和相右的方向按钮,通过按钮事件实现两边选择的记录的相互传递;该如何实现?
   大家有什么好的办法没有?我用memo实现该功能是想到用剪贴板作为中间桥梁,可是实现起来很困难;

解决方案 »

  1.   

    用TStrings来存放要移动的记录
      

  2.   

    我想你这个问题可以这样分解:
    1.在memo中移动的时候光标移动到一行要能选中那一行
    2.当选中其中一行 按 添加 或 移去 按钮的时候,要从memo中删除选中行
    至于memo1如何随你的数据源初始化以及如何在memo中添加行很简单,使用其lines.add方法即可1.在memo中随光标移动选定当前行:
    procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      memo1.SelStart:= memo1.Perform(EM_LINEINDEX,memo1.CaretPos.y,0);
      memo1.SelLength:=length(memo1.Lines[memo1.CaretPos.y]);
    end;
    2.在memo1中删除选中行//移除前先在memo2中添加:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     memo2.lines.add(memo1.SelText);
     memo1.SelText:='';
     memo1.Lines.Delete(memo1.CaretPos.y);
    end;
      

  3.   

    谢谢,,我看看 wdsimon(老王(路漫漫其修远兮,吾将上下而求索)) 的代码先!
      

  4.   

    问题解决:    wdsimon(老王(路漫漫其修远兮,吾将上下而求索)) 的代码真棒!
      

  5.   

    这个最好是用Listbox做,更简单一些