DbGrid 控件里某个column,点击它,我想下拉显示另一个表相关的数据比如:该列为籍贯字段,数据库存的是籍贯编号,我想做成显示的是籍贯名,点击它下拉的也是籍贯名,不知道如何来做?请告知,谢谢!

解决方案 »

  1.   

    使用OnGetText和OnSetText可以实现。
      

  2.   

    在COLUMNS中设置PICKLIST属性或是在代码里面动态添加!
    下面是 ihihonline(小小->爱被下载中……) 的例子。
    procedure Tm_jsgzglForm.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if DBGrid1.SelectedField.DisplayName = 'xm' then
        Key := #0;
    end;procedure Tm_jsgzglForm.SpeedButton3Click(Sender: TObject);
    var
      P : String;
    begin
      with DataModuleForm.jsgzQuery2 do
      begin
        DBGrid1.Columns[1].PickList.Clear;
        Close;
        with SQL do
        begin
          Clear;
          Add('select distinct .. from TableName');//.. 是你相要的字段
        end;
        Open;
        First;
        while Not (DataModuleForm.jsgzQuery2.Eof) do
        begin
          DBGrid1.Columns[1].PickList.Add(FieldByName('..').AsString);
          Next;
        end;
      end;