D6中ComboBox控件有 自有的方法,程序运行起来,用鼠标点中ComboBox1,然后在按右键会出现:撤消/复制/剪切/删除/粘帖/全选,我怎样让它添加两项功能:添加item/删除item,也就是:撤消/复制/剪切/删除/粘帖/全选/添加item/删除item,而且能构保存起来,也就是下次运行程序的时候能构看到添加item进去的东西!    欢迎各位兄弟、姐妹一起参与!,在线等待

解决方案 »

  1.   

    自己定义弹出菜单
    设置COMBOBOX1的POPUPMUNU
      

  2.   

    为ComboBox添加一个PopMenu控件,在其中添加你的功能:撤消/复制/剪切/删除/粘帖/全选/添加item/删除item。
    如果要把你的修改保存起来,可以将你的修改保存在文本文件中,或者保存在数据表中,以便需要的时候载入。
      

  3.   

    我知道在设计期间又那个item属性,那样添加进去是可以保存,-----可以将你的修改保存在文本文件中,或者保存在数据表中-----这是不是唯一的方法!楼上的兄弟
      

  4.   

    ComboBox1.Items.Clear; //清除
    ComboBox1.Items.Add('男');//添加 
    ComboBox1.Items.Delete(ComboBox1.IndexItem);//删除选定的项
    For I:=0 to ComboBox1.Items.Count-1 do //保存所有内容
    begin
      ... //保存
    end;
    上述代码写在PopUpMenu中,然后将ComboBox1的PopUpMenu属性设为指定的PopupMenu控件。
      

  5.   


    我认为用popmenu比较简单明了.
      

  6.   

    非常谢谢:star_of_light(星星之光) 
      我试试看
      

  7.   

    star_of_light(星星之光) :    我没操作过文件,能不能再添写下,谢谢!
     For I:=0 to ComboBox1.Items.Count-1 do //保存所有内容
     begin
       ... //保存
     end;
      

  8.   

    把你的ComboBox中所有的Item都保存在INI或是Txt 文件中,下次运行程序的时候就可以用它来初始化ComboBox了,Ini文件的时候可以在帮助中找到,但要记得引用 TIniFiles单元哦,祝你好运
      

  9.   

    来自C:\Program Files\Borland\Delphi6\Demos\Indy\HTTPClient\main.pas
    添加(btnGoClick事件中):
      if cbURL.Items.IndexOf(cbURL.Text) = -1 then
        cbURL.Items.Add(cbURL.Text);
    保存(FormClose事件中):
      try
        cbURL.Items.SaveToFile(ExtractFilePath(ParamStr(0)) + 'history.dat');
      except
      end;
    装载(FormActivate事件中):
      if FileExists(ExtractFilePath(ParamStr(0)) + 'history.dat') then
      begin
        cbURL.Items.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'history.dat');
      end;删除:试试star_of_light(星星之光) 的方法。
      

  10.   

    hzb(Explorer) ( ) :    'history.dat'文件是不是要先建立或定义?
      

  11.   

    ExtractFilePath(ParamStr(0)) 什么含义?
      

  12.   

    ExtractFilePath(ParamStr(0))表示文件的路径。
      

  13.   

    var   F: TextFile;
      S: string;
    begin
      if OpenDialog1.Execute then            //选择要打开的文件
      begin
        AssignFile(F, OpenDialog1.FileName); 
        ReWrite(F); //以写方式打开文件
        WriteLn(F, S);         //将字符串S的值写入文件
        Edit1.Text := S;                  
        CloseFile(F);  //关闭文件
      end;
    end;
      

  14.   

    打开窗体时Load,
    procedure TForm1.FormCreate(Sender:TObject);
    var
      AFileName:String;
    begin
      AFileName:=ExtractFilePath(Application.ExeName)+'Cmb.txt';
      if FileExists(AFileName) then
        ComboBox1.Items.LoadFromFile(AFileName);
    end;
    关闭窗体时Save.
    procedure TForm1.FormClose(Sender:TObject);
    var
      AFileName:String;
    begin
      AFileName:=ExtractFilePath(Application.ExeName)+'Cmb.txt';
      ComboBox1.Items.SaveToFile(AFileName);
    end;
      

  15.   

    blazingfire(烈焰)的方法非常好!
      

  16.   

    同意楼上的观点,blazingfire(烈焰)的方法很好!建议采用!如果不放心怕用户误删除保存的文件,可以在保存后顺便设置文件的属性位隐藏或只读,然后再次保存时先改属性再保存!
      

  17.   

    1、'history.dat'文件不需要先建立或定义
    2、ExtractFilePath(ParamStr(0))表示你的执行程序所在的路径
    3、这些代码试一下不就知道能不能用了吗?
      

  18.   

    自己写构件,自己写POPUPMUNU
      

  19.   

    谢谢各位兄弟了,特别是:star_of_light(星星之光) , blazingfire(烈焰) 。结贴了,参与着都有分!呵呵