图像显示问题

要处理很多图像,因此,采取这样的办法:其中的一个图像用TImage来装载,然后以缩略图的形式显示在TScollBox里面。当用户要浏览缩略图中的一张时,单击选中,选中的图像要以高亮显示,双击时,要求缩略图要在弹出一个新窗口中显示。
问题:
1、单击选中如何处理?是在TImage中画选中的状态?还是在TScrollBox中画选中的状态?在TImage中画选中的状态会造成画面叠加,而影响效果。在TScrollBox中画高亮选中状态不知如何入手,请高手指点。
2、在弹出的新窗口中显示图像的问题:第一:图像不能失真。第二:窗口的高度和宽度要能随图像的高度和宽度而改变(窗口上有一个TTollbar、一个TPageControl[里面有两个TTabSheet,每个TTabSheet里有一个TImage]、然后最下面是一个TPanle)如何实现?
3、关于ExtDlg中的一段代码,没看懂(如下)请高手指点!
procedure TOpenPictureDialog.PreviewClick(Sender: TObject);
........
if FImageCtrl.Picture.Width > 0 then
begin
ClientWidth := Min(Monitor.Width * 3 div 4,
FImageCtrl.Picture.Width + (ClientWidth - Panel.ClientWidth)+ 10);
ClientHeight := Min(Monitor.Height * 3 div 4,
FImageCtrl.Picture.Height + (ClientHeight - Panel.ClientHeight) + 10);
end;
........
上面两句话的意思是什么?
[862 byte] By [railgunman-堕落男人] at [2008-4-11]
# 1
很难吗?怎么没人理啊?
railgunman-堕落男人 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 2
高手现身啊!
railgunman-堕落男人 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 3
我对Codefund已经绝望了。
railgunman-堕落男人 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 4
这类问题 用 GDI+ 最好
AP at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 5
你的问题挺多呀。呵呵。。

先说说问题一吧:
////在TImage中画选中的状态会造成画面叠加,而影响效果,
确实是这样,而且在切换选择时,还要把原来选中的图像重新Load。
所以你可以考虑一个折中的办法,就是用一个框形TShape控件,选中哪个图像,
把这个Shape移到哪里。这样就简单多了。
但是把Shape,挪到Image上以后,原来的Image的鼠标事件就不起作用了,你要
重新指向一下。
litangel-还是朋友 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 6
问题一后半部分。
用TScrollBox作图片的显示列表,我认为不是很好。
因为TScrollBox无Canvas,即使弄了一个Canvas,也没有重画事件上,当它被一个Window被挡住后,被挡住的部分就不见了。

所以解决办法用一个Image的数组,

至于高亮状态,用上面的办法即可解决。
litangel-还是朋友 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 7
问题二,没啥好说的。
你只要把文件名传到新窗体中,在新窗体中Load,宽高都有了,
至于窗体的高与宽,你根据这个图像的宽与高去设置就可以了。
litangel-还是朋友 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...
# 8
帮忙顶一下吧,你的问题我不会
nobody00 at 2007-10-19 > top of Msdn China Tech,Delphi,GAME,图形处理/多媒体...