製作縮略圖視圖最簡單的方法是什麼?您有一個垂直滾動條的面板,以及描述其相關圖像的圖像矩陣?我也喜歡這樣,如果父框架水平調整大小,矩陣將縮小到所需的列數,以顯示沒有水平滾動條的縮略圖。我希望能夠拖動和重新排列這些縮略圖。這寫的工具包並不重要。如果你知道使用MFC的好方法,那很酷,Delphi/C++ builder也非常酷。只是某種本地應用程序框架。Windows縮略圖/幀視圖
哇,這聽起來很像我懇求功課的幫助。我發誓,這是一些軟件來驅動激光投影儀。
製作縮略圖視圖最簡單的方法是什麼?您有一個垂直滾動條的面板,以及描述其相關圖像的圖像矩陣?我也喜歡這樣,如果父框架水平調整大小,矩陣將縮小到所需的列數,以顯示沒有水平滾動條的縮略圖。我希望能夠拖動和重新排列這些縮略圖。這寫的工具包並不重要。如果你知道使用MFC的好方法,那很酷,Delphi/C++ builder也非常酷。只是某種本地應用程序框架。Windows縮略圖/幀視圖
哇,這聽起來很像我懇求功課的幫助。我發誓,這是一些軟件來驅動激光投影儀。
據我所知,註冊德爾福的客戶可以下載TMS平滑組件從Embarcadero公司的網站上免費。如果您不是德爾福的註冊用戶,那麼您可以從TMS網站購買該系列。
這裏是摘錄的代碼,我用來顯示一個變量的集合numImages
網絡攝像頭的數量。
const MaxImages = 24;
type
TForm1 = class(TForm)
...
images: array[1..MaxImages] of TWebcamImage;
numImages: integer;
....
end;
TWebCamImage
是TImage
與像攝像頭的源URL,文件名的保存的圖片,併爲雙擊在二級面板中打開圖片的處理一些附加屬性的後裔。
以下是用於在面板中排列圖像的代碼。
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;
我不太確定我是否理解你的意思,但是我會先拿着一張圖片,它是描述。然後我會使用一個TFlowPanel來保存框架的實例。我認爲,實施拖放應該不需要太多的工作。雖然從未嘗試過。
如果有很多圖像,我認爲你應該去尋找一個擁有者和雙緩衝解決方案。
最後,你應該剛剛降的激光投影組件,並把它掛到激光投影機轉向單元...
我想我更感興趣的是一個如何構建這樣的事情,而不是如何找到組件本身。 – Evan 2010-01-18 11:16:41
我最近遇到了代碼(Delphi)這樣做。在http://rmklever.com/上查找「Threaded thumbnails demo」。 – 2010-01-18 13:47:56
太棒了!這或多或少是我正在尋找的......現在我只需要弄清楚如何進行拖放操作...... – Evan 2010-01-18 21:34:39