Q&A

  • 바탕화면에 달력을 얼케 넣져?
바탕화면에 달력을 넣어야하는디.. 쩝.. 방법을 모르겠네요..
Active Desktop을 사용하는지 아니면, 직접 그리는지..
힌트나 조언좀 부탁드립니다. (_ _) 꾸뽁
3  COMMENTS
  • Profile
    KDDG_ZZOM 2003.02.05 10:32
    예전에 여기저기서 찾아서 바탕화면에 배경넣기했던건데...
    참조하세요...


    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Registry, StdCtrls;
    const
    WPS_Tile      = 0; //바둑식 배열
    WPS_Center    = 1; //가운데
    WPS_SizeToFit = 2; //늘리기
    WPS_XY        = 3; //x, y위치에 그리기

    type
      TForm1 = class(TForm)
        Button1: TButton;
        RadioButton1: TRadioButton;
        RadioButton2: TRadioButton;
        RadioButton3: TRadioButton;
        Button2: TButton;
        procedure RadioButton1Click(Sender: TObject);
        procedure RadioButton2Click(Sender: TObject);
        procedure RadioButton3Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      Display : Integer;
    implementation

    {$R *.DFM}

    procedure SetWallpaperExt(sWallpaperBMPPath : string; nStyle, nX, nY :integer );
    var
    reg    : TRegIniFile;
    s1     : string;
    X, Y   : integer;
    begin
      reg := TRegIniFile.Create('Control PanelDesktop' );

      with reg do
      begin
        s1 := '0';
        X  := 0;
        Y  := 0;
        case nStyle of
          WPS_Tile  : s1     := '1';
          WPS_Center: nStyle := WPS_Tile;
          WPS_XY    :
            begin
              nStyle := WPS_Tile;
              X      := nX;
              Y      := nY;
            end;
        end;

        WriteString( '', 'Wallpaper'       , sWallpaperBMPPath );
        WriteString( '', 'TileWallpaper'   , s1                );
        WriteString( '', 'WallpaperStyle'  , IntToStr( nStyle ));
        WriteString( '', 'WallpaperOriginX', IntToStr( X )     );
        WriteString( '', 'WallpaperOriginY', IntToStr( Y )     );
      end;
      reg.Free;

      SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, Nil, SPIF_SENDWININICHANGE );
    end;

    procedure TForm1.RadioButton1Click(Sender: TObject);
    begin
      Display := 0;
    end;

    procedure TForm1.RadioButton2Click(Sender: TObject);
    begin
      Display := 1;
    end;

    procedure TForm1.RadioButton3Click(Sender: TObject);
    begin
      Display := 2;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Display := 1;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      // 지우기
      SetWallpaperExt('', Display, 0, 0 );
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      // 그리기
      SetWallpaperExt('C:TEMP바탕그림.bmp', Display, 0, 0 );
    end;

    end.

  • Profile
    구창민 2003.02.05 04:05
    저 같으면 그냥 윈도그의 위치를 중앙에 두고

    Form 스타일을 bsNone 로 만들고

    움직이지못하게 만든다음,

    윈도그의 아버지를 바탕화면으로 만들어 버리면..

    var
      DeskTopHwnd : HWND;
    begin
      DeskTopHwnd := FindWindow('Progman', nil);
      DeskTopHwnd := FindWindowEx(DeskTopHwnd, 0, 'SHELLDLL_DefView', nil);

      Windows.SetParent(Handle, DeskTopHwnd);
      //Do Someting..
    end;

    머 대충 이런 형태로.. 하면 되지 않을까여?



  • Profile
    KDDG_BaSTaD 2003.02.05 18:42
    ==> ZZOM님.. 민님 감솨합니다.. 리플을 ㅠ_ㅠ..
    배경화면 넣기네요 ^^; 배경화면 넣기는 제가 만들어서 따로 사용하고 있거든요.. 문제는 달력을 넣어 달래요 ㅡ_ㅡ; 그래서.. 고민 하고 있습니다..

    제 생각은.. 윈도를 만든다.. 항상 HWND_BOTTOM으로 맹근다. 글구 바탕 화면 캡춰해서 그린다. 물론 Form Style은 bsNone이구요.. 그런 후, 캡쳐 이미지 위에 달력을 그린다... ㅡㅡ+ 이런 전략이었는뎅..

    캡쳐를 하니.. 제가 맹근 폼 이미지가 포함된체로 캡쳐되 버리네요 ㅠ_ㅠ.. 순수하게 바탕화면.. 만 캡쳐되어야하는데.. 그니깐, 제 폼 또는 다른 윈도우를 뺀 나머지 순수한 바탕화면을 캡쳐할 수 없나요? 바탕화면 자식 윈도우를 찾아 SW_HIDE를 시켜봤는뎅.. 문제는 원상 복귀가 ㅡ_ㅡ; ㅋㅋ 문제네요.. 원래 감춰진 윈도우까지 일괄적으로 SW_SHOW해보니.. 못보던 윈도우가 수십개가 떠서 난감해 하고 있습니다..

    아무래도,, SW_HIDE시킨 윈도우 핸들을 죄다 기억했다가 SW_SHOW해야할 것 같아요. ㅠ_ㅠ.. 될지 않될지 모르겠지만, 우선 해보아야겠죠?

    ps. 암튼.. 답변 감솨합니다. ZZOM, MIN 님 ^^;

    • 궁금이
    • 2003.02.04 21:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2003.02.05 06:23
      ClientSocket의 Receive 이벤트를 사용해서 데이터를 받으심이 좋을듯합니다. 만약 타이머를 사용할때 시스...
    • 강석찬
      2003.02.05 00:20
      해결했습니다 -_-;;
    • 성더기
      2003.02.05 03:50
      QRRICHTEXT 의 프로퍼티중에 AutoScretch(맞나?) 그걸 True로하고 출력해보세엽..^^
    • 최진술
      2003.02.06 01:55
      감사합니다!  AutoScretch문제와 DetailBand의높이에 문제가 있었네요! 문제해결했습니다!
    • 최임정
      2003.02.04 21:11
      혹시... 퀵레포트의 object inspector 에서 PrinterSettings 의 옵션들중에 First Page와 Last Page...
    • 최진술
      2003.02.06 01:58
      감사합니다!  AutoScretch문제와 DetailBand의높이에 문제가 있었네요! 문제해결했습니다
    • KDDG_BaSTaD
    • 2003.02.04 20:14
    • 3 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2003.02.05 10:32
      예전에 여기저기서 찾아서 바탕화면에 배경넣기했던건데... 참조하세요... unit Unit1; interface...
    • 구창민
      2003.02.05 04:05
      저 같으면 그냥 윈도그의 위치를 중앙에 두고 Form 스타일을 bsNone 로 만들고 움직이지못하게 만든...
    • KDDG_BaSTaD
      2003.02.05 18:42
      ==> ZZOM님.. 민님 감솨합니다.. 리플을 ㅠ_ㅠ.. 배경화면 넣기네요 ^^; 배경화면 넣기는 제가 만들어...
    • 정주희
    • 2003.02.04 19:50
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2003.02.04 19:00
      안녕하세요 하얀까마귀 입니다. Components 와 ComponentCount 를 이용하시면 될것 같네요.. 자세...
    • 구창민
      2003.02.04 19:00
      for i := 0 to ComponentCount do begin   if Components[i] is TEdit then   beg...
    • KDDG_hyun
      2003.02.04 19:30
      for i := 0 to ComponentCount do 여기에서요 리스트 인덱스 바운드 에러가 나드라구요 그래서 for i...
    • 구창민
      2003.02.04 20:19
      ㅋㅋ 막썼더니 그렇게 되는군.. ComponentCount - 1 하는게 맞다 왜냐면 시작이 0 부터니까 갯수는 ...
    • KDDG_hyun
      2003.02.04 20:44
    • 구창민
      2003.02.04 21:16
      쓰고보니 판넬의 자식들을 찾으려면 그렇게 하면 안된다. 아래처럼 for i := 0 to Pane1.ControlCou...
    • 김민아
    • 2003.02.04 18:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2003.02.04 18:48
      안녕하세요 하얀까마귀 입니다. 구조체의 변수가 로그인폼에 있는것 같은데... 첫번째방법은 메인폼...
    • 알롱
    • 2003.02.04 18:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2003.02.05 00:06
      number 가 문자열일 경우는 Order by 하세여.. select number, name, deposit, withdr ,   ...
    • 알롱
      2003.02.05 00:23
      답변 감사합니다. number는 자동증가 필드입니다. 수고하세요
    • 김진호
    • 2003.02.04 06:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이재훈
      2003.02.04 09:32
      저도 관심이 있어서 "DirectX8.0(한글판)도움말"다운 받아놓고 한번도 보지 못했네요... 일본어로 번역된...
    • 김진호
      2003.02.04 21:17
      .
    • 이충무
    • 2003.02.04 06:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2003.02.04 22:07
      일단 첫째 첫번째질문은 DB Connection을 공유하는 것이 맞습니다. 둘째는 두번째방법을 해도 큰 ...
    • 이충무
      2003.02.05 01:16
      먼저 답변 감사합니다.. 그런데, 제가 공력이 딸려서인지 5번째 방법을 잘 모르겠습니다.. 조금만 더 ...
    • 이경아
    • 2003.02.04 04:17
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 하병준
      2003.02.04 23:10
      예를 들어 a  라는 테이블에 001  라는 데이터가 잇는데 b 라는 테이블에 001 ...
    • 박성훈
      2003.02.04 04:29
      안녕하세요? 질문하신 내용이 좀 애매한데요. 혹시 필터를 말하는 것인가요? 필터는 TQuery나 TTable의...
    • 임형호
      2003.02.04 17:58
      첫번째 질문   DBGrid에는 그런기능을 지원하지 않는걸로 아는데요.  그렇다고 방법...
    • 김민아
    • 2003.02.04 03:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2003.02.04 03:52
      안녕하세요~ 구창민입니다. 질문의 너무 간략하군요. 구조체 값을 넘긴다는 말씀은 특정 폼에 있는 ...
    • 전원이
    • 2003.02.04 03:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2003.02.04 12:19
      10061은 소켓연결이 되지 않았을경우이거나 연결후 연결이 끊긴상태입니다. 연결을 복원시킬 방법은 관리...
    • 김동석
    • 2003.02.04 03:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2003.02.04 04:31
      안녕하세요? Tools-Environment에서 경로설정이 제대로 되어있는지 확인하시구요. rx*.bpl파일을 시스...
    • 최은규
    • 2003.02.04 02:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임우식
      2003.02.05 01:09
      서버가 느릴수도 있구요. mysql연결을 ODBC로 하면 원래 느리고요.-zeos로 연결하면 빨라요... 그런데 아...
    • 이경남
    • 2003.02.04 01:45
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2003.02.04 06:58
      485통신은 1:N이라는 개념보다는 어떤 장비에게 준비신호를 준다는 개념에서 틀리지여.. 1:N이라는 개념...
    • KDDG_RNStone
      2003.02.04 03:53
      저도 초보라 이렇다 말씀 드릴 순 없지만 한 4년 전 쯤 한번 써 본 기억이 납니다. 걍 메인에 해당되...
    • 박성훈
      2003.02.04 04:37
      안녕하세요? 윗쪽에 rxLib설치 에러 질문에 대한 답을 참고해 보세요.
    • 용이...
    • 2003.02.04 01:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한만교
      2003.02.05 06:25
      위에 질문과 중복되는 질문이네여..