制作缩略图视图的最简单方法是什么,您有一个带有垂直滚动条的面板,以及描述其相关图像的图像矩阵?我也喜欢这样,如果父框架水平调整大小,矩阵将缩小到必要的列数,以显示没有水平滚动条的缩略图。我希望能够拖动和重新排列这些缩略图。写入的工具包并不重要。如果你知道用MFC做一个好方法,那很酷,Delphi / C ++构建器也很酷。只是某种本机应用程序框架。
哇,这听起来很像我在寻求家庭作业的帮助。我发誓这是一些用于驱动激光投影仪的软件。答案 0 :(得分:3)
AFAIK,已注册的德尔福客户可以从Embarcadero网站免费下载TMS Smooth Components。如果您不是注册的Delphi用户,那么您可以从TMS网站购买该系列。
答案 1 :(得分:0)
以下是用于显示变量numImages
个网络摄像头的集合的摘录代码。
const MaxImages = 24;
type
TForm1 = class(TForm)
...
images: array[1..MaxImages] of TWebcamImage;
numImages: integer;
....
end;
TWebCamImage
是TImage
的后代,其中包含一些其他属性,例如网络摄像头的原始网址,已保存图片的文件名以及双击打开辅助图片的处理程序面板。
以下是用于在面板中排列图像的代码。
procedure TForm1.ArrangeImages;
var i, numh, numv : integer;
const margin=2;
begin
case numImages of
1: begin numh:=1; numv:=1; end;
2: begin numh:=2; numv:=1; end;
3: begin numh:=3; numv:=1; end;
4: begin numh:=2; numv:=2; end;
5,6: begin numh:=3; numv:=2; end;
7,8: begin numh:=4; numv:=2; end;
9: begin numh:=3; numv:=3; end;
10: begin numh:=5; numv:=2; end;
11,12: begin numh:=4; numv:=3; end;
13,14,15: begin numh:=5; numv:=3; end;
16: begin numh:=4; numv:=4; end;
17,18,19,20: begin numh:=5; numv:=4; end;
else begin numh:=6; numv:=4; end;
end;
for i:=1 to numImages do
begin
images[i].Width := (panel2.Width div numh) - margin * 2;
images[i].Height := (panel2.Height div numv) - margin * 2;
images[i].Top := (((i-1) div numh) * (panel2.Height div numv)) + margin;
images[i].Left := (((i-1) mod numh) * (panel2.Width div numh)) + margin;
end;
end;
此方法在表单初始化时调用,挂钩在oncreate
事件和onresize
事件中。
procedure TForm1.FormCreate(Sender: TObject);
begin
...
numImages:=0;
for i:=1 to maxImages do
begin
imageURL:=ini.ReadString('images','imageURL'+intToStr(i),imageURLDefault);
if imageURL<>'' then
begin
inc(numimages);
images[numImages]:=TWebCamImage.create(self,panel2,imageURL);
end;
....
end;
....
ArrangeImages;
....
end;
procedure TForm1.FormResize(Sender: TObject);
begin
ArrangeImages;
end;
答案 2 :(得分:0)
我不太确定我理解你是对的,但我会先用一个框架来控制图像及其描述。然后我会使用TFlowPanel来保存帧的实例。我认为,实施拖放不应该做太多工作。但是从未尝试过。
如果有很多图片,我认为你应该选择ownerdraw和doublebuffered解决方案。
最后,您应该放入激光投影组件并将其连接到激光投影机转向装置......