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

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


Category

  김영대(2003-03-06 22:01:38, Hit : 3786, Vote : 1044
 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 5319 1263
610   [데이터베이스] 동적으로 인덱스 만들기  김영대 2003/03/06 4623 1150
609   [데이터베이스] Excel ODBC를 사용하여 xls를 테이블로 사용하기  김영대 2003/03/06 7008 1657
608   [데이터베이스] DB alias중 ORACLE alias 명 구하기  김영대 2003/03/06 4088 989
607   [일반/컴포넌트] QuickReport에서 프린터 바꾸어서 출력하기  김영대 2003/03/06 6517 1589
606   [일반/컴포넌트] RichEdit 의 내용을 Bitmap 으로 만들기  김영대 2003/03/06 3442 889
605   [일반/컴포넌트] RichEdit 에서 문자(열)를 찾아 글자속성 바꾸기  김영대 2003/03/06 4844 1224
604   [일반/컴포넌트] RichEdit 에서 커서를 처음, 마지막으로 보내기  김영대 2003/03/06 7134 1514
603   [윈도우즈 API] 실행중인 모든 프로그램 Minimized 시키기  김영대 2003/03/06 4744 1248
602   [시스템] 델파이로 DOS 프로그램(Console application) 만들기  김영대 2003/03/06 21740 7636
601   [COM/OLE] Registering *.tlb files without Delphi  김영대 2003/03/06 6768 1150
600   [네트웍/인터넷] How to bring a network down - "Win Nuke"  김영대 2003/03/06 7426 2007
599   [윈도우즈 API] 폴더나 파일의 윈도우즈 등록정보 dialog 띄우기  김영대 2003/03/06 5169 1484
598   [일반/컴포넌트] 이미지를 마우스로 drag 해서 zoom 하기  김영대 2003/03/06 3760 1040
597   [윈도우즈 API] 외부 프로그램을 최상위로 설정하기  김영대 2003/03/06 5354 1245
596   [일반/컴포넌트] TObject의 프로퍼티를 문자열로 참조하기  김영대 2003/03/06 5284 1603
595   [윈도우즈 API] 프로그램으로 Screensaver 등록하는 두가지 방법  김영대 2003/03/06 4589 1283
594   [데이터베이스] 특정 폼의 현재 편집중인 DB Field 구하기  김영대 2003/03/06 4147 1120
593   [윈도우즈 API] KeyDown의 Beep음을 없애자...  김영대 2003/03/06 4806 1234
592   [시스템] How do I use SetWindowsHookEx ?  김영대 2003/03/06 7053 977
591   [시스템] Redirecting DOS Application Output  김영대 2003/03/06 4832 1230
590   [일반/컴포넌트] 두개의 RichEdit 사이에 내용 복사하기  김영대 2003/03/06 6016 1401
589   [일반/컴포넌트] 특정 Color의 Invert Color 구하기  김영대 2003/03/06 4377 1324
588   [일반/컴포넌트] 문자열 수식문장(expression)의 결과 구하기  김영대 2003/03/06 3543 901
587   [시스템] 오디오 CD의 볼륨 조절하기  김영대 2003/03/06 3745 1034
586   [일반/컴포넌트] 윈도우즈 "날짜/시간" 설정화면 띄우기  김영대 2003/03/06 6264 1833
585   [시스템] 마이크 볼륨 조절하기  김영대 2003/03/06 4753 1296
584   [멀티미디어] JPEG, WAVE 를 resource 파일에 넣고 읽어오기  김영대 2003/03/06 5462 1240
  [일반/컴포넌트] desktop 배경화면을 폼의 배경화면으로 그리기  김영대 2003/03/06 3786 1044
582   [윈도우즈 API] 레지스트리의 변경여부 알리는 2가지 방법  김영대 2003/03/06 4845 1300
581   [일반/컴포넌트] StringGrid 의 내용을 클립보드로 복사하기  김영대 2003/03/06 4563 1065
580   [데이터베이스] Save DBGrid To Excel  김영대 2003/03/06 7268 2048
579   [COM/OLE] Delphi의 OCX를 InstallShield로 배포하는 방법  김영대 2003/03/06 8493 5665
578   [일반/컴포넌트] ASCII printing  김영대 2003/03/06 5423 6326
577   [일반/컴포넌트] OEM conversion  김영대 2003/03/06 4393 1267
576   [일반/컴포넌트] Memo의 행의 문자수를 제한하고 WordWrap시키기  김영대 2003/03/06 5348 1320
575   [윈도우즈 API] DDE 쓰지 않고 IE의 현재 URL 가져오기  김영대 2003/03/06 6070 1691
574   [윈도우즈 API] RichEdit에 입력한 문장의 실제 높이 구하기  김영대 2003/03/06 5135 1434
573   [일반/컴포넌트] StringGrid 의 선택영역만 클립보드로 복사하기  김영대 2003/03/06 4996 1114
572   [일반/컴포넌트] StringGrid 에서 프로그램으로 MultiSelect 시키기  김영대 2003/03/06 5656 1200

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

Copyright 1999-2023 Zeroboard / skin by zero