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

請問怎樣給TListbox添加背景圖片

答題得分者是:Miles
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-30 16:13:13 IP:222.35.xxx.xxx 未訂閱
請問怎樣給TListbox添加背景圖片,謝謝!
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-30 17:57:38 IP:220.135.xxx.xxx 未訂閱
Hi cxg 您好: 試試這個, 裡面有SourceCode可下載 http://www.greatis.com/delphi/components-imagelistbox.html 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-01 09:26:07 IP:222.35.xxx.xxx 未訂閱
引言: Hi cxg 您好: 試試這個, 裡面有SourceCode可下載 http://www.greatis.com/delphi/components-imagelistbox.html 我不是高手, 高手是正在銀幕前微笑的人.
謝謝Miles。
cxg
中階會員


發表:116
回覆:192
積分:76
註冊:2004-02-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-01 10:00:55 IP:222.35.xxx.xxx 未訂閱
引言: Hi cxg 您好: 試試這個, 裡面有SourceCode可下載 http://www.greatis.com/delphi/components-imagelistbox.html 我不是高手, 高手是正在銀幕前微笑的人.
Miles您好: 以上的方法我試了一下,還是有點問題。它不能將整個TLISTBOX的背景填滿,麻煩您指教一下,謝謝。
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-01 15:34:47 IP:220.135.xxx.xxx 未訂閱
Hi cxg 您好, 試了一下, 但還有些缺陷.
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  ImageRect1, NewRect, ImageRect2, ResRect: TRect;
begin
  ImageRect1 := Classes.Rect(
    0,
    0,
    Image1.Picture.Bitmap.Width,
    Image1.Picture.Bitmap.Height);      ImageRect2 := ImageRect1;
  IntersectRect(ResRect, ImageRect2, Rect);      NewRect.Left:=ImageRect1.Left;
  NewRect.Top:=ImageRect1.Top ResRect.Top-ImageRect2.Top;
  //NewRect.Top:=ResRect.Top;
  NewRect.Right:=ImageRect1.Right;
  NewRect.Bottom:=ImageRect1.Bottom ResRect.Bottom-ImageRect2.Bottom;
  //NewRect.Bottom:=ResRect.Bottom;      ListBox1.Canvas.CopyRect(
    ResRect,
    Image1.Picture.Bitmap.Canvas,
    NewRect);      ListBox1.Canvas.Brush.Style:=bsClear;
  ListBox1.Canvas.TextOut(
    Rect.Left 2,
    Rect.Top,
    ExtractFileName(ListBox1.Items[Index]));
end;    procedure TForm1.FormCreate(Sender: TObject);
var MyBmp : TBitmap;
begin
   MyBmp := TBitmap.Create;
   MyBmp.Width  := ListBox1.Width;
   MyBmp.Height := ListBox1.Height;
   MyBmp.PixelFormat := pf24bit;
   SetStretchBltMode(MyBmp.Canvas.Handle, ColorOnColor);
   stretchblt(MyBmp.Canvas.Handle, 0, 0, MyBmp.Width, MyBmp.Height, Image1.Picture.Bitmap.Canvas.Handle, 0, 0,
              Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height, srccopy);
   Image1.Picture.Bitmap := MyBmp;
   MyBmp.Free;
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-11-24 22:04:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!