Q&A

  • Win98 태스크바의 오른쪽 영역..
Win98 태스크바의 오른쪽 영역..



그러니깐 시계도 있고, 델파이 Clinet/Server를 깔았을 때 생기는



Local Interbase Server도 나타나는 영역이 있지요.



가끔 프로그램중에, 그 영역에만 생기고,



보통 프로그램이 나타나는 태스크바의 영역에는 안 나타나죠.



어느 곳을 말하는지 하시겠죠? 헤..





그런데, 델파이로 이런 프로그램을 작성하려면 어떻게 해야 되나요?



도통 짐작조차 가지 않아서, 이렇게 질문 드립니다.



자세한 설명도 좋고, 간단한 힌트라도 좋습니다.



아시는 분들 답변주시면, 정말 감사하겠습니다.





1  COMMENTS
  • Profile
    이대선 2000.08.18 20:03
    김길남 wrote:

    > Win98 태스크바의 오른쪽 영역..

    >

    > 그러니깐 시계도 있고, 델파이 Clinet/Server를 깔았을 때 생기는

    >

    > Local Interbase Server도 나타나는 영역이 있지요.

    >

    > 가끔 프로그램중에, 그 영역에만 생기고,

    >

    > 보통 프로그램이 나타나는 태스크바의 영역에는 안 나타나죠.

    >

    > 어느 곳을 말하는지 하시겠죠? 헤..

    >

    >

    > 그런데, 델파이로 이런 프로그램을 작성하려면 어떻게 해야 되나요?

    >

    > 도통 짐작조차 가지 않아서, 이렇게 질문 드립니다.

    >

    > 자세한 설명도 좋고, 간단한 힌트라도 좋습니다.

    >

    > 아시는 분들 답변주시면, 정말 감사하겠습니다.

    >

    >



    그런걸 트레이 아이콘이라고 합니다.



    그런 예제를...



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    AppEvnts, ExtCtrls, ShellAPI; //ShellAPI를 추가



    type

    TForm1 = class(TForm)

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

    procedure WndProc ( var Message : TMessage ); override; //추가



    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}

    const MY_SHOWFORM_ID = WM_USER+1; //추가

    var

    iconData : TNotifyIconData; //추가



    procedure Tform1.WndProc;

    begin

    case Message.Msg of

    MY_SHOWFORM_ID:

    case Message.lParam of

    WM_LBUTTONDBLCLK:Self.Show;

    end;

    end;

    inherited;

    end;



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    // 폼을 트레이에 넣어준다.

    ShowWindow (Application.Handle, SW_HIDE);

    // 폼이 안 보임

    Application.ShowMainForm:= False;

    with IconData do

    begin

    cbSize := SizeOf ( IconData );

    // 델파이에서는 Wnd로 바뀌었음

    Wnd := Handle;

    uID := 100;

    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;

    uCallbackMessage := WM_USER + 1;

    hIcon := Application.Icon.Handle;

    StrPCopy(szTip, Application.Title);

    end;

    Shell_NotifyIcon( NIM_ADD, @IconData ); //메세지를 가로채기 위한 핸들러를 정의해 주는 부분입니다.

    end;



    procedure TForm1.FormDestroy(Sender: TObject);

    begin

    Shell_NotifyIcon( NIM_DELETE, @IconData );

    end;



    end.