小家伙,TListItem有事件吗?要知道选中的ListItem,应当响应TListView的OnChange事件,并且参数Change应当为ctState,明白吗?后面的问题你要去问盖兹,他怎么这样设计它的ListView,你要知道ListView是Windows的通用元件,Delphi只是封装了他,简化了使用,没做什么大的改变

解决方案 »

  1.   

    你说的这些能算是delphi得bug第一个只是一个实现问题,可以告诉delphi肯定可以实现。第二个是一个事件理解的问题理解,有些时候不是一定要按下鼠标才可以选中,比如你鼠标在某一项停留一段时间后可以将该项选中(像foxmail那样)其实onmousedown是mousedown事件,onselect是selected事件,各是各,不存在什么先什么后的问题。
      

  2.   

    to ghz2000(浩中):
      1.如果是实现问题,请告诉我如何实现。先谢谢了。
      2.我知道ListView是IE4引入的通用控件。我也知道不用鼠标也可选择ListItem。但单纯从我单击一个ListItem这个动作来说,事件处理的执行一定存在先后关系。我想要做的是:在OnSelect时判断使用者是按左键还是按右键选中该ListItem的,所以要在OnMouseDown时先判断后设个标志。而OnMouseDown的执行发生在OnSelect这一点让我很困惑。说实话,其实这个问题我用直接写消息映射的方法已解决了,现在只是想学学其它较简单的解决方法。我以前是用VC的,刚开始用DELPHI,还望各位指教。
      

  3.   

    嘿嘿,最小化的时候发送Syscommand消息就OK了,不过参数我忘了:P,反正就是发送点击系统菜单上的最小化的消息
      

  4.   

    转载:
      近日经一位网友的提醒,突然发现Delphi的一个问题:
    用Delphi写的应用程序在最小化时是突然一下消失的,而不是象普通的应用程序那样逐渐缩小到任务栏,这样多少觉得有点不爽,不知有没有办法解决? 
    回复贴子: 
     回复人:CathyEagle() (2000-3-20 19:28:00)  得30分 
      这个问题我好早以前就已发现并且已经解决,只是一直没有发表。
      用Delphi编的程序最小化时没有动态效果,可以用以下方法实现。
      一、New Application。
      二、New Form,生成Form2。
      三、New Unit,在implementation后面加上:
            initialization
                islibrary :=true;
      四、Save All,为工程取好名字,Unit建议取名为“RunFirst.pas”。
      五、打开工程文件,把“RunFirst in 'RunFirst.pas';”放到“Forms,”这一行前面去,如下:
        program Project1;
        uses
          RunFirst in 'RunFirst.pas',
          Forms,
          Unit1 in 'Unit1.pas' {Form1},
          Unit2 in 'Unit2.pas' {Form2};    {$R *.RES}    begin
          Application.Initialize;
          Application.ShowMainForm :=false;
          islibrary :=true;
          Application.CreateForm(TForm1, Form1);
          Form2 :=TForm2.Create(Application) ;
          Form2.Show ;
          Form2.Update ;
          Application.Run;
        end.
      六、在Form2的OnClose事件中写如下语句:
        procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
        begin
            Application.Terminate
        end;
      即可。  
     回复人:Jean() (2000-3-21 15:18:00)  得0分 
    环境:
    Win98SE+IE5
    Delphi5+UP#1  
     回复人:CathyEagle() (2000-3-22 9:28:00)  得0分 
    Delphi5+UP#1自然没问题,Win98,IE5都无所谓。其实Delphi5已经解决了最小化动态效果的问题,但是由于Delphi程序有个Application对象,而系统菜单和主窗口系统菜单是不同的。造成不能和其他Windows标准窗口正常平铺。
    用我的方法顺便也可以解决这个问题。
    可用于Delphi3、4、5(Delphi2我没用过,所以也没试过)  
     回复人:ImFool(搞技术的都是傻瓜) (2001-5-24 17:51:00)  得0分 
    CathyEagle:
        请介绍一下原理,IsLibrary 变量都影响了什么,这样做有什么副作用?
        在你的代码中,不浪费 Form1 不行吗?我试了一下,就是最小化按钮不起作用,加个消息处理代码直接解决不行吗?  
      

  5.   

    我怎么看我编好的程序有动态最小化效果啊?我用的是Delphi5 (Build 5.62)