我想在添加一个记录时使得tdbrichedit能自动添加一些信息进去,但发现不行!
然后针对特定的行进行添加也不行?我很奇怪!
谁可帮忙解决一下!

解决方案 »

  1.   

    如果没有办法,我只有用RICHEDIT了!但感觉要把这个障碍去掉!
    救兵.雷恩,何在?
      

  2.   

    关于此问题,我已经解决.但仍希望可以看到比较好的方法,因为我自人自己的方法还有很大的不足!
    我最后仍然选择Tdbrichedit控件!
      

  3.   

    小小当然在线了,呵呵,刚刚来;
    你如果要用它有什么特殊的用途的话,呵呵,我可以给你例程,中午给你;
    -------------------------------------------------------------
    招聘斑竹如果您觉的您对Delphi VS DataBase感兴趣或是很想学的更好些或者是对Delphi VS DataBase有更深的认识,我们可以一起交流;
    呵呵
    www.nxrs.net/bbs
    谢谢,别抛砖
      

  4.   

    哎,难怪问题热来热难见到解答,原来是走了.
    不砸才怪,害我发了回贴,居然无法显示,再来一次,
    去www.nxrs.net一看,感觉精华N多.
    所以,嘻嘻...
    这回饶你,不然好东西怎会源源而出,如果把小小的头砸大了!
    关注www.nxrs.net!
      

  5.   

    用TRichEdit来作,可能还要好一些
      

  6.   

    To: Blazingfire:
     我用了trichedit 但对其修改不能存到数据库里去,很奇怪!
    你可以帮一下吗?
      

  7.   

    在下面我试了一下,基本的功能已经作好了。其中TBlobField好象对内存流(TBitmap好象也有这种毛病!)的支持不是很,所以在OnAfterScroll中写一个临时文件。
    procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
    var
      FStrm:TFileStream;
    begin
      FStrm:=TFileStream.Create('Tmp',fmCreate);
      try
        TBlobField(DataSet.FieldByName('BFLD')).SaveToStream(FStrm);
      finally
        FStrm.Free;
      end;
      RichEdit1.Lines.LoadFromFile('Tmp');
      DeleteFile('Tmp');
    end; //TDataSet.OnAfterScroll 用来保持TRichEdit内容与数据库内容同步procedure TForm1.Table1BeforePost(DataSet: TDataSet);
    var
      MStrm:TMemoryStream;
    begin
      MStrm:=TMemoryStream.Create;
      try
        RichEdit1.Lines.SaveToStream(MStrm);
        TBlobField(DataSet.FieldByName('BFLD')).LoadFromStream(MStrm);
      finally
        MStrm.Free;
      end;
    end;//在更新之前把TRichEdit的内容写到对应库的字段中procedure TForm1.RichEdit1Change(Sender: TObject);
    var
      MStrm:TMemoryStream;
    begin
      MStrm:=TMemoryStream.Create;
      if Not(Table1.State in [dsInsert,dsEdit]) then
        Table1.Edit;
      try
        RichEdit1.Lines.SaveToStream(MStrm);
        TBlobField(Table1.FieldByName('BFLD')).LoadFromStream(MStrm);
      finally
        MStrm.Free;
      end;
    end;
      

  8.   

    TO BlazingFire:为何我在添加一笔记录时,用APEEND后,再执行"提交操作",却提示说要先赋值,如果在下代码中先添加赋值操作,则OK,但这样我的判断就会变得无效!"提交操作"得代码如下:
    procedure Tfrminf.BitBtn20Click(Sender: TObject);
    var id,ip:string;
    begin if (edit1.Text<>'') and (dbedit2.Text<>'')and (dbedit3.Text<>'')and (dbedit4.Text<>'')and (edit1.Text <>'') then
     begin
      id:=trim(edit2.Text);
      ip:=trim(edit1.Text);
      showmessage(edit1.Text);
      if dm.tbpcinf.Locate('工號',id,[loCaseInsensitive]) then
        begin
           showmessage('使用者ID必須唯一,請確認輸入的ID是否唯一,正確?');
           edit2.SetFocus;
           edit2.Color:=clred;
           exit;
        end
      else if dm.tbpcinf.Locate('IP分配',ip,[loCaseInsensitive]) then
        begin
           showmessage(' 分配的IP已經存在,請測試以確認,並重新分配一個IP!');
           edit1.SetFocus;
           edit1.Color:=clred;
           exit;
        end
      else
        begin
           dm.tbpcinf.Edit;
           dm.tbpcinf.FieldByName('工號').AsString:=trim(edit2.Text);
           dm.tbpcinf.FieldByName('IP分配').AsString:=trim(edit1.Text);
           dm.tbpcinf.FieldByName('領用日期').AsDateTime:=datetimepicker1.Date;
           dm.tbpcinf.FieldByName('進貨日期').AsDateTime:=datetimepicker2.Date;
           dm.tbpcinf.Post;
        end;
    end
     else
      begin
        showmessage('請輸入一條記錄的完整信息!');
        exit;
      end;
    end;谢谢!
      

  9.   

    我不明白为何在Table.locate之前还要对locate的字段进行赋值,因为我的表中已经有了记录呀!!!
    但这样的话我的Locate将失去意义!
    如果你要看代码的话,可以去
    http://expert.csdn.net/Expert/topic/1113/1113266.xml?temp=.4664728
    谢谢! 
    -----------------------------------------
    说实话,我不大明白你的意思,但我总觉的你用又用数据敏感控件,又用Edit不是很好,你可不可以说明白一些;
    呵呵,小小在线地
      

  10.   

    接受小小的意见,全部采用EDIT.但是对于APPEND的使用,我将会继续测试下去,看该过程对数据控件的影响,特别是在LOCATE时!
    对于原题的问题,谢谢BlazingFire 的方法,但我想有些过于繁琐,我会再寻找看有无简单的方法.
    谢谢两位的解答.我想我会常去www.nxrs.net讨教你们的.做了班竹有何感想!
    嘻嘻...有时间,有能力,我也去你们那做班竹!
    我在继续面壁.但目下单位又有东西了.所以我是边干边学!
    向那天冲啊!
    别大哥了,小小....你希望我折寿呀,我还要把你从班竹上篡下来!