Win98 태스크바의 오른쪽 영역..
그러니깐 시계도 있고, 델파이 Clinet/Server를 깔았을 때 생기는
Local Interbase Server도 나타나는 영역이 있지요.
가끔 프로그램중에, 그 영역에만 생기고,
보통 프로그램이 나타나는 태스크바의 영역에는 안 나타나죠.
어느 곳을 말하는지 하시겠죠? 헤..
그런데, 델파이로 이런 프로그램을 작성하려면 어떻게 해야 되나요?
도통 짐작조차 가지 않아서, 이렇게 질문 드립니다.
자세한 설명도 좋고, 간단한 힌트라도 좋습니다.
아시는 분들 답변주시면, 정말 감사하겠습니다.
> 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.