::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-06 22:01:38, Hit : 3676, Vote : 1037
 desktop 배경화면을 폼의 배경화면으로 그리기

// desktop 배경화면은 윈도우즈에 bmp 파일로 존재하는데 이를 폼의
// 배경화면으로 OnPaint 할때 그리는 것입니다
// 그리고 desktop 배경화면의 특정 영역을 사용하시려면
// Bitmap.Canvas.CopyRect() 를 이용하시면 됩니다

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Registry;

type
  TForm1 = class(TForm)
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  Reg: TRegIniFile;
  BmpFileName: String;
begin
  // 배경화면 bmp 파일명을 구한다
  Reg := TRegIniFile.Create('Control Panel');
  BmpFileName := Reg.ReadString('desktop', 'Wallpaper', '');
  Reg.Free;

  if FileExists(BmpFileName) then
    Image1.Picture.Bitmap.LoadFromFile(BmpFileName);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  X, Y, W, H: LongInt;
begin
  with Image1.Picture.Bitmap do
  begin
    W := Width;
    H := Height;
  end;

  Y := 0;
  while Y < Height do // 그림이 폼보다 작으면 tile 로 그린다
  begin
    X := 0;
    while X < Width do
    begin
      Canvas.Draw(X, Y, Image1.Picture.Bitmap);
      Inc(X, W);
    end;
    Inc(Y, H);
  end;
end;

end.





611   [데이터베이스] DB에 저장된 JPEG(JPG)를 DBGrid에 출력하기  김영대 2003/03/06 5247 1255
610   [데이터베이스] 동적으로 인덱스 만들기  김영대 2003/03/06 4467 1130
609   [데이터베이스] Excel ODBC를 사용하여 xls를 테이블로 사용하기  김영대 2003/03/06 6868 1604
608   [데이터베이스] DB alias중 ORACLE alias 명 구하기  김영대 2003/03/06 4011 973
607   [일반/컴포넌트] QuickReport에서 프린터 바꾸어서 출력하기  김영대 2003/03/06 6244 1547
606   [일반/컴포넌트] RichEdit 의 내용을 Bitmap 으로 만들기  김영대 2003/03/06 3356 876
605   [일반/컴포넌트] RichEdit 에서 문자(열)를 찾아 글자속성 바꾸기  김영대 2003/03/06 4746 1212
604   [일반/컴포넌트] RichEdit 에서 커서를 처음, 마지막으로 보내기  김영대 2003/03/06 6891 1480
603   [윈도우즈 API] 실행중인 모든 프로그램 Minimized 시키기  김영대 2003/03/06 4661 1237
602   [시스템] 델파이로 DOS 프로그램(Console application) 만들기  김영대 2003/03/06 17062 7528
601   [COM/OLE] Registering *.tlb files without Delphi  김영대 2003/03/06 5001 1133
600   [네트웍/인터넷] How to bring a network down - "Win Nuke"  김영대 2003/03/06 7310 1994
599   [윈도우즈 API] 폴더나 파일의 윈도우즈 등록정보 dialog 띄우기  김영대 2003/03/06 5098 1475
598   [일반/컴포넌트] 이미지를 마우스로 drag 해서 zoom 하기  김영대 2003/03/06 3606 1023
597   [윈도우즈 API] 외부 프로그램을 최상위로 설정하기  김영대 2003/03/06 5226 1234
596   [일반/컴포넌트] TObject의 프로퍼티를 문자열로 참조하기  김영대 2003/03/06 5227 1594
595   [윈도우즈 API] 프로그램으로 Screensaver 등록하는 두가지 방법  김영대 2003/03/06 4501 1268
594   [데이터베이스] 특정 폼의 현재 편집중인 DB Field 구하기  김영대 2003/03/06 4089 1111
593   [윈도우즈 API] KeyDown의 Beep음을 없애자...  김영대 2003/03/06 4632 1211
592   [시스템] How do I use SetWindowsHookEx ?  김영대 2003/03/06 6839 957
591   [시스템] Redirecting DOS Application Output  김영대 2003/03/06 4642 1207
590   [일반/컴포넌트] 두개의 RichEdit 사이에 내용 복사하기  김영대 2003/03/06 5859 1364
589   [일반/컴포넌트] 특정 Color의 Invert Color 구하기  김영대 2003/03/06 4313 1315
588   [일반/컴포넌트] 문자열 수식문장(expression)의 결과 구하기  김영대 2003/03/06 3378 878
587   [시스템] 오디오 CD의 볼륨 조절하기  김영대 2003/03/06 3616 1026
586   [일반/컴포넌트] 윈도우즈 "날짜/시간" 설정화면 띄우기  김영대 2003/03/06 6207 1822
585   [시스템] 마이크 볼륨 조절하기  김영대 2003/03/06 4651 1285
584   [멀티미디어] JPEG, WAVE 를 resource 파일에 넣고 읽어오기  김영대 2003/03/06 5262 1224
  [일반/컴포넌트] desktop 배경화면을 폼의 배경화면으로 그리기  김영대 2003/03/06 3676 1037
582   [윈도우즈 API] 레지스트리의 변경여부 알리는 2가지 방법  김영대 2003/03/06 4760 1282
581   [일반/컴포넌트] StringGrid 의 내용을 클립보드로 복사하기  김영대 2003/03/06 4467 1060
580   [데이터베이스] Save DBGrid To Excel  김영대 2003/03/06 6993 1849
579   [COM/OLE] Delphi의 OCX를 InstallShield로 배포하는 방법  김영대 2003/03/06 8333 5623
578   [일반/컴포넌트] ASCII printing  김영대 2003/03/06 5282 1213
577   [일반/컴포넌트] OEM conversion  김영대 2003/03/06 4322 1265
576   [일반/컴포넌트] Memo의 행의 문자수를 제한하고 WordWrap시키기  김영대 2003/03/06 5231 1314
575   [윈도우즈 API] DDE 쓰지 않고 IE의 현재 URL 가져오기  김영대 2003/03/06 5986 1676
574   [윈도우즈 API] RichEdit에 입력한 문장의 실제 높이 구하기  김영대 2003/03/06 5046 1429
573   [일반/컴포넌트] StringGrid 의 선택영역만 클립보드로 복사하기  김영대 2003/03/06 4863 1077
572   [일반/컴포넌트] StringGrid 에서 프로그램으로 MultiSelect 시키기  김영대 2003/03/06 5411 1187

[1][2][3][4][5][6][7][8][9] 10 ..[25] [다음 10개]
 

Copyright 1999-2022 Zeroboard / skin by zero