全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:740
推到 Plurk!
推到 Facebook!

有关缩略图问题

尚未結案
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 16:03:51 IP:218.18.xxx.xxx 未訂閱
我的数据库中有一个栏位是储存图片路径的,我现在想把这个栏位的所有路径取出来,然后,就好象windows中的缩略图那样,把所有图片都缩小显示出来?请问怎么做?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-23 21:24:48 IP:218.32.xxx.xxx 未訂閱
1. Open Query SQL : select FullFileName from .... 2. For Each Row create TImage on Form1:
while not Query.Eof do begin       with TImage.Create(Self) do begin // Owner is Form1
     parent := Self; // Parent is Form1
     Picture.LoadFromFile(Query.FieldByname('FullFileName').asstring);
     Left := ???; // position
     Top := ???;
   end;      Query.Next;    end;
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-26 11:02:36 IP:218.18.xxx.xxx 未訂閱
Mickey: 您好! 我照你的方法去做,但好象实行不了。 比如我的数据记录现在有50条,我现在把这50条记录相对应的图片取出来 每屏显示16个,好象windows中那缩略图那样,请问怎么做?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-26 14:32:24 IP:218.32.xxx.xxx 未訂閱
引言: 比如我的数据记录现在有50条,我现在把这50条记录相对应的图片取出来 每屏显示16个,好象windows中那缩略图那样,请问怎么做?
1. TImage 不一定要 Create 再 Form 上, TScrollBox 也很恰當, 只是提供 run time create TImage 的方法參考. 2. TImage 的位置必須計算啦, 我不知道你每個 Image 寬度多少, 間隔要多少, 需不需要加 create label 在圖下方等等, 實在沒有辦法將 Source Code 幫忙寫妥喔.
jtp
初階會員


發表:39
回覆:81
積分:29
註冊:2003-04-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-29 10:11:48 IP:218.18.xxx.xxx 未訂閱
Mickey: 我的每个image的宽度为60*80,间隔为10,我很急着要的,但我水-平有限又写不出来,还请帮帮忙,不尽感激!!!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-29 13:53:23 IP:218.163.xxx.xxx 未訂閱
按下 Button1 將圖放在 ScrollBox1 上
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.First;
  while not Query1.Eof do begin
    with TImage.Create(ScrollBox1) do
      Picture.LoadFromFile(Query1.FieldByname('FullFileName').asstring);
    Query1.Next;
  end;
  ReArrangeImages;
end;    procedure TForm1.ScrollBox1Resize(Sender: TObject);
begin
  ReArrangeImages;
end;    procedure TForm1.ReArrangeImages;
var i, ImageW, ImageH, OffSet, CurrentX, CurrentY : integer;
begin
  ImageW := 60;
  ImageH := 80;
  OffSet := 10;
  CurrentX := 0;
  CurrentY := 0;
  for i := 0 to ScrollBox1.ComponentCount - 1 do begin
    if ScrollBox1.Components[i] is TImage then
      with TImage(ScrollBox1.Components[i]) do begin
        Parent := ScrollBox1;
        Width := ImageW;
        Height := ImageH;
        Left := CurrentX + OffSet;
        Top := CurrentY + OffSet;
        if ScrollBox1.Width<(CurrentX + 2 * OffSet + ImageW ) then begin
          CurrentX := 0;
          CurrentY := CurrentY + 2 * OffSet + ImageH;
        end
        else CurrentX := CurrentX + 2 * OffSet + ImageW;
     end;
  end;
end;    
系統時間:2024-06-26 11:43:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!