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

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


Category

  김영대(2004-08-05 15:23:29, Hit : 4437, Vote : 1110
 http://www.howto.pe.kr
 TPanel 로 만든 힌트

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Timer1: TTimer;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure ShowAHint(x: integer; y: integer; Caption: string; Duration: LongInt);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := false;
  Panel1.Visible := false;
  Panel1.BevelInner := bvNone;
  Panel1.BevelOuter := bvNone;
  Panel1.BorderStyle := bsSingle;  
end;

procedure TForm1.ShowAHint(x : integer; y : integer; Caption : string; Duration : LongInt);
var
  dc : hdc;
  OldFont : hFont;
  pt : TSize;
  p : pChar;
begin
  if Timer1.Enabled <> false then Timer1.Enabled := false;
  Timer1.Enabled := false;
  if Panel1.Visible <> false then Panel1.Visible := false;

  GetMem(p, Length(Panel1.Caption) + 1);
  StrPCopy(p, Panel1.Caption);
  dc := GetDc(Panel1.Handle);
  OldFont := SelectObject(dc, Panel1.Font.Handle);
  GetTextExtentPoint32(dc, p, Length(Panel1.Caption), pt);
  SelectObject(dc, OldFont);
  ReleaseDc(Panel1.Handle, Dc);
  FreeMem(p, Length(Panel1.Caption) + 1);
  Panel1.Left := x;
  Panel1.Top := y;
  Panel1.Width := pt.cx + 6;
  Panel1.Height := pt.cy + 2;
  Panel1.Color:= clLime;
  Panel1.Font.Color := clBlue;
  Panel1.Visible := true;
  Timer1.Interval := Duration;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Panel1.Visible <> false then
  Panel1.Visible := false;
  Timer1.Enabled := false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.ProcessMessages;
  ShowAHint(Button1.Left, Button1.Top + Button1.Height + 6, Button1.Hint, 2000);
end;

end.





651   [데이터베이스] Record number for SQL Query in DBGrid #2  김영대 2003/03/05 4396 1091
650   [윈도우즈 API] 내 프로그램의 화면을 가리는 프로그램 리스트  김영대 2004/07/24 4399 1164
649   [일반/컴포넌트] ListView 의 item 을 강제로 편집상태로 만들기  김영대 2003/03/07 4402 1129
648   [윈도우즈 API] 실행중인 모든 프로그램 Minimized 시키기  김영대 2003/03/06 4405 1175
647   [윈도우즈 API] 윈도우즈"시작" 버튼 Disable/Enable  김영대 2003/03/07 4406 1160
646   [시스템] 윈도우즈 전체의 키보드 입력 금지  김영대 2003/03/07 4407 1169
645   [윈도우즈 API] 휴지통에 파일을 버리는 법  신훈재 2003/03/10 4410 1151
644   [일반/컴포넌트] 문자열의 다음 찾기  김영대 2003/03/07 4414 1299
643   [윈도우즈 API] treeview 에 있는 내용을 출력하기  신훈재 2003/03/10 4414 1031
642   [일반/컴포넌트] StringGrid 에 ReadOnly 제한두기  김영대 2003/03/05 4415 1248
641   [일반/컴포넌트] Adobe Acrobat 이 설치되었는지 검사하기  김영대 2004/08/06 4415 1094
640   [윈도우즈 API] 외부 프로그램의 크기를 내 프로그램에서 변경하기  김영대 2003/03/07 4417 1155
639   [데이터베이스] DBGrid 의 특정필드만 Highlighting 시키기  김영대 2003/03/06 4418 1082
638   [윈도우즈 API] Type Library 목록 구하기  김영대 2004/08/06 4420 1189
637   [시스템] 현재 내 PC의 비디오 정보  김영대 2003/03/04 4421 1170
636   [일반/컴포넌트] RichEdit 에서 문자(열)를 찾아 글자속성 바꾸기  김영대 2003/03/06 4421 1157
635   [일반/컴포넌트] QReport에서 출력된 자료를 Text화일로 저장  김영대 2003/03/04 4422 1219
634   [윈도우즈 API] IE의 현재 url 가져오기  김영대 2003/03/07 4425 1102
633   [윈도우즈 API] 윈도우즈 '시작' 메뉴 Refresh 시키기  김영대 2003/03/07 4426 1371
632   [시스템] 윈도우즈 재시작  김영대 2004/08/30 4427 1129
631   [윈도우즈 API] Taskbar 의 특정 위치에 popup 메뉴 띄우기  김영대 2004/07/24 4432 1160
630   [윈도우즈 API] 모서리가 둥근(rounded ends) TEdit 만들기  김영대 2003/03/07 4433 1236
629   [윈도우즈 API] Hook 을 사용한 커서(캐럿)모양 바꾸기  김영대 2003/03/04 4437 1178
628   [데이터베이스] DBGrid 에서 수직 Scroll Bar 감추기  김영대 2003/03/05 4437 1208
627   [윈도우즈 API] 윈도우즈 "시작" 메뉴를 내 프로그램 안으로...  김영대 2003/03/07 4437 1197
  [일반/컴포넌트] TPanel 로 만든 힌트  김영대 2004/08/05 4437 1110
625   [윈도우즈 API] 클립보드의 내용을 파일로 저장하기  김영대 2003/03/04 4443 1295
624   [일반/컴포넌트] 제어판의 applet 리스트 (51개)  김영대 2003/03/07 4445 1075
623   [윈도우즈 API] 폼에 애니메이션 효과 주기  김영대 2004/07/25 4445 1187
622   [데이터베이스] 델파이 에러코드의 설명(?) 구하기  김영대 2003/03/05 4446 1075
621   [시스템] 기본 프린터가 있어야 실행하지 ?  김영대 2003/03/05 4447 1169
620   [윈도우즈 API] Windows error beep 켜기/끄기  김영대 2003/03/07 4448 1266
619   [윈도우즈 API] 레지스트리(registry)를 바꾼후...  김영대 2003/03/05 4450 1196
618   [일반/컴포넌트] 윈도우즈 제어판 화면 띄우기  김영대 2003/03/07 4450 1200
617   [시스템] 두개의 파일이 완전히 동일한지 검사하기(CRC32)  김영대 2003/03/05 4453 1048
616   [시스템] 디스플레이 어댑터 목록 구하기  김영대 2004/08/11 4453 1176
615   [일반/컴포넌트] TListView Subcolumn Sorting  김영대 2003/03/06 4456 1146
614   [일반/컴포넌트] 커서(Cursor)의 이미지 구하기  김영대 2003/03/27 4456 1231
613   [일반/컴포넌트] URL encoding 하기  김영대 2003/03/30 4456 1142
612   [일반/컴포넌트] 화면변경시 콤포넌트 위치와 크기를 조정  김영대 2003/03/06 4457 1073

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

Copyright 1999-2020 Zeroboard / skin by zero