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

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


Category

  김영대(2003-03-04 20:25:46, Hit : 4692, Vote : 1325
 도구모음 Bar는 어떻게 만드는지...

> MS Office 97을 실행하면 화면 우측에 도구모음이 생기 쟎아요?
> 그런 도구모음 Bar는 어떻게 만드는지?
> 도구모음을 좌측 또는 위로 움직이면 바탕화면이 우측 또는 아래로 도구모음
> 폭이나
> 높이만큼 조금씩 이동하는데 그 처리는 어떻게 하는지요...
> 답변은 park6394@Unitel.co.kr 또는 dragon@ahone.co.kr로 보내 주세요..
> 그럼 부탁 드립니다....
다음 source는 제가 테스트 한 내용이구요, 아래 source에
한가지 빠진 내용이 있습니다(저만 다하면 재미 없으니까...)
그건 form을 desktop의 좌,우,상,하로 이동할 때 form의
형태가 바뀌는 것인데 그것은 아래 source에 주석표시가
된 곳을 참고하세요.
그럼 좋은 결과 있기를...


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    BB_Calc: TBitBtn;
    BB_Close: TBitBtn;
    BB_notepad: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    procedure BB_CloseClick(Sender: TObject);
    procedure BB_CalcClick(Sender: TObject);
    procedure BB_notepadClick(Sender: TObject);
  private
    { Private declarations }
    procedure CreateParams(var Params: TCreateParams); override;
    procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure ExecNewProcess(ProgramName: String);
var
  StartInfo  : TStartupInfo;
  ProcInfo   : TProcessInformation;
  CreateOK   : Boolean;
begin
  FillChar(StartInfo, SizeOf(TStartupInfo),#0);
  FillChar(ProcInfo,  SizeOf(TProcessInformation),#0);
  StartInfo.cb := SizeOf(TStartupInfo);

  CreateProcess(PChar(ProgramName),nil, nil, nil,False,
         CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil,
         nil, StartInfo, ProcInfo);
end;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  // 일반적인 폼의 특성을 다르게 지정
  inherited CreateParams(Params);
  Params.style := WS_Popup or
                  WS_ClipChildren or
                  WS_ClipSiblings or
                  WS_Border;
end;

procedure TForm1.WMNCHitTest(var Msg: TMessage);
begin
  // 윈도우즈에서 WM_NCHITTEST 메시지를 전달받아서 폼의 형식을 다르게 지정
  // 왼쪽 마우스 버튼으로 Form을 drag하여 이동할 수 있게 됩니다
  if GetAsyncKeyState(VK_LBUTTON) < 0 then
    Msg.Result := HTCAPTION
  else
    Msg.Result := HTCLIENT;

  // 참고하시라구 현재 form의 좌표를 표시해봤음
  Label1.Caption := IntToStr(Self.Left);
  Label2.Caption := IntToStr(Self.Top);

  // Self.Width와 Self.Height를 변경하면
  // form의 형태를 바꿀 수 있습니다
  // ?
  // ?
end;

procedure TForm1.BB_CloseClick(Sender: TObject);
begin
  Close;
end;

procedure TForm1.BB_CalcClick(Sender: TObject);
begin
  // 이 버튼을 누루면 calc.exe가 실행됩니다
  ExecNewProcess('c:windowscalc.exe');
end;

procedure TForm1.BB_notepadClick(Sender: TObject);
begin
  // 이 버튼을 누루면 notepad.exe가 실행됩니다
  ExecNewProcess('c:windowsnotepad.exe');
end;

end.





731   [윈도우즈 API] TaskBar의 다양한 기능제어  김영대 2003/03/07 4991 1351
730   [시스템] 오직 하나의 프로그램만 실행...  김영대 2003/03/04 5019 1351
729   [시스템] 파일(들)을 클립보드로 복사하여 탐색기에서 붙여넣기 하기  김영대 2003/04/10 5297 1350
728   [일반/컴포넌트] StringGrid - multiline text  김영대 2003/03/07 5780 1349
727   [윈도우즈 API] 델파이에서 시간을 기다리는 함수  김영대 2003/03/04 5867 1349
726   [일반/컴포넌트] Search and Select  김영대 2004/08/03 5154 1348
725   [일반/컴포넌트] TStringGrid 인쇄하기  김영대 2003/03/07 5424 1347
724   [일반/컴포넌트] 리스트뷰에서 동적으로 칼럼삭제하기  김영대 2003/03/05 5002 1347
723   [COM/OLE] 윈도우즈 "검색: 파일 또는 폴더" 화면  김영대 2004/07/25 4829 1345
722   [시스템] 내 프로그램의 실행 우선순의 바꾸기  김영대 2004/07/24 4947 1344
721   [COM/OLE] TWebBrowser 에서 새창을 열때 cookie 공유되게 하기  김영대 2004/11/24 6576 1343
720   [시스템] Windows NT 에서 한글 NT인지 영문 NT인지 구분하는 방법  김영대 2003/03/04 5149 1343
719   [윈도우즈 API] 바탕화면의 모든 창 최소화하기  김영대 2006/02/28 5581 1341
718   [일반/컴포넌트] 투명한 Bitmaps 인쇄  김영대 2003/03/07 5722 1340
717   [시스템] DOS 명령어 실행하고 결과 받아오기 (Win2k,XP)  김영대 2004/08/03 5608 1339
716   [일반/컴포넌트] 폼에 자석효과 주기 (Delphi 6 이하)  김영대 2005/08/04 6361 1338
715   [일반/컴포넌트] 실행파일에서 잃어버린 DFM 파일 뽑아내기  김영대 2004/08/17 5008 1338
714   [시스템] CD-ROM 문 열기/닫기  김영대 2003/03/04 4730 1338
713   [윈도우즈 API] 세로 타이틀바 만들기  김영대 2004/08/04 4896 1337
712   [일반/컴포넌트] 문자열의 암호화(Password 처리) & INI 파일  김영대 2003/03/06 5864 1337
711   [시스템] IP address 바꾸기  김영대 2003/03/07 5351 1336
710   [시스템] System, User, GDI Resource  김영대 2003/03/07 4591 1334
709   [데이터베이스] DB그리드 Row Height를 조절할 수 있는 콤포넌트  김영대 2003/03/05 5849 1334
708   [데이터베이스] Save DBGrid To Excel  김영대 2003/03/06 6027 1333
707   [윈도우즈 API] 프린터 스풀러에 대기중인 job의 수  김영대 2003/03/04 4531 1333
706   [시스템] 조합중인 한글 얻기  김영대 2004/09/06 5986 1332
705   [일반/컴포넌트] StringGrid의 중간에 제목 Cell 두기  김영대 2003/03/07 5278 1332
704   [일반/컴포넌트] DateTimePicker 의 표시형식(format) 바꾸기  김영대 2003/03/04 6204 1331
703   [COM/OLE] TWebBrowser에 직접 HTML 소스코드 넣기  김영대 2004/12/26 6396 1330
702   [시스템] Sleep 중에도 타이머 이벤트 발생시키기  김영대 2004/08/09 5744 1330
701   [시스템] PrintScreen 키가 눌렸는지 검사하기  김영대 2003/03/04 4271 1330
700   [네트웍/인터넷] Internet에 연결중인지 여부를 알려면...  김영대 2003/03/04 5171 1330
699   [시스템] 윈도우즈 사용자 계정 정보 구하기  김영대 2004/08/03 5149 1328
698   [윈도우즈 API] 윈도우즈 탐색기와의 연동  김영대 2003/03/04 5482 1328
697   [시스템] 프린터의 "용지 공급" 리스트 구하기  김영대 2003/03/07 4620 1327
696   [윈도우즈 API] 폼의 최대/최소화 막기  김영대 2003/03/06 4943 1327
695   [일반/컴포넌트] WMF 를 BMP 로 변환하기  김영대 2003/03/07 4317 1326
694   [윈도우즈 API] 작업표시줄이 자동 숨김인지 검사  김영대 2003/03/04 5035 1326
693   [윈도우즈 API] 키보드의 임의키 발생  김영대 2003/03/04 5213 1326
  [윈도우즈 API] 도구모음 Bar는 어떻게 만드는지...  김영대 2003/03/04 4692 1325

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

Copyright 1999-2019 Zeroboard / skin by zero