下午就出差了,朋友有个题让我做做,我没时间,大家帮帮忙了,谢谢了。
delphi程序设计方案
1.  创建程序主窗口, 窗口标题设置为“选择图片”。
 2.  在窗口适当位置放一个 TListBox 列表框,命名为IbFiles 用来显示图片文件名。
   3. lbFiles 上方放一个 TLabel 框, 用来显示“图片文件”提示文字。
 4.  在窗口适当位置放一个 TImage 图片框, 命名为 mgShow, 用来显示选定的单个图片。 
 5. mgShow 显示图片时, 无论图片大小如何, 总是自动伸缩以适应 mShow 的大小。
 6.  在窗口上添加一个 TOpenPictureDialog 构件, 命名为 OpenDialog, 用来选择图片文件名。对话框打开时, 标题为“选择图片文件”。
   7.  在窗口适当位置放一个 TButton 按钮, 命名为 btAdd, 按钮上显示“添加图片”。
   8.  操作者点击 btAdd 后, 打开 OpenDidog 提供的对话框, 把操作者选择的图片文件添加进 LbFiles的文件列表中。程序应避免向LbFiles 重复添加同一文件。
9.  在窗口适当位置放一个 TButton 按钮, 命名为 btDelete, 按钮上显示“删除图片”。
 10. 操作者点击 btDelete 后, 显示一个信息框, 提示操作者即将删除 LbFiles 列表中的选定文件,给操作者提供一个选择“是否删除”的机会。
 11. 若操作者选择删除, 程序即删除 lbFiles 中的选定文件。
   12. 操作者点击 LbFiles 文件列表中某个文件名时,mlgShow 应当显示其图片内容。
   13. 添加或删除图片文件后,lbFiles 中最后一个文件自动处于选定态, 从而在 mgShow 显示其图片内容。
   14. 要求程序代码清晰规范, 并有适当的文字注解。各位大侠回答7,8,9,12.13,谢谢了

解决方案 »

  1.   

    没人会吗?  8.  操作者点击 btAdd 后, 打开 OpenDidog 提供的对话框, 把操作者选择的图片文件添加进 LbFiles的文件列表中。程序应避免向LbFiles 重复添加同一文件。
      

  2.   

    怎么样避免在listbox中输入重复的值。
      

  3.   

    procedure Tpic.btaddClick(Sender: TObject);
    begin
       opendialog.Title:='选择图片文件';
       if opendialog.Execute  then
            begin
                if lbfiles.Items.IndexOf (opendialog.FileName)=-1 then
                    begin
                       lbfiles.Items.Add(opendialog.FileName);
                    end
                    else
                    begin
                       showmessage('对不起,此图片已存在');
                    end;
                lbfiles.ItemIndex:=lbfiles.Count-1;
                mgshow.Picture.LoadFromFile(lbfiles.Items[lbfiles.ItemIndex]);
            end;
    end;
    procedure Tpic.lbfilesClick(Sender: TObject);
    begin
      mgshow.Picture.LoadFromFile(lbfiles.Items[lbfiles.ItemIndex]);
    end;procedure Tpic.btdeleteClick(Sender: TObject);
    var
      flag:integer;
    begin
       if lbfiles.Count=0 then
          begin
              showmessage('对不起,没有图片可删除');
          end
          else
          begin
            if lbfiles.count=1 then
                 begin
                     flag:= messagebox(getactivewindow(),'您真的要删除此图片吗?','提示!' ,MB_OKCANCEL + MB_ICONINFORMATION);
                   if flag=IDOK then
                       begin
                          lbfiles.Items.Delete(lbfiles.ItemIndex);
                          mgshow.Picture:=nil;
                       end;
                 end
            else
                begin
                    flag:= messagebox(getactivewindow(),'您真的要删除此图片吗?','提示!' ,MB_OKCANCEL + MB_ICONINFORMATION);
                  if flag=IDOK then
                      begin
                         lbfiles.Items.Delete(lbfiles.ItemIndex);
                         lbfiles.ItemIndex:=lbfiles.Count-1;
                         mgshow.Picture.LoadFromFile(lbfiles.Items[lbfiles.ItemIndex]);
                      end;
                end;
          end;
    end;
    procedure Tpic.FormCreate(Sender: TObject);
    begin
     pic.Align:=alclient;
    end;