Q&A

  • 힌트를 마음대로 커트롤 하고 싶어요
한 컴퍼넌트위에서 마우스가 움직일때 마다 힌트를 다르고 하고 싶어요

TreeView 같이 말이에요

예를 들면 Memo 에서 마우스를 가지고 1번째 줄에 같다돼면

1번째 있는 글들 흰트로 보여주고

그상테에서 마우스를 밑줄로 같다돼면 그줄에 내용을 흰트로 보여 주고 싶습니다.

그리고 힌트가 나오는 시간과, 힌트가 나와서 있는시간을 조절 하고 싶은대

고수님들에 답변부탁 드립니다.

2  COMMENTS
  • Profile
    김영로 2000.12.21 01:26
    그런걸 할려면 델파이 도움말에서 TApplication 을 입력하고 그에 관련된

    부분을 찾아보면 되는데 일단

    힌트가 나오는 시간은 Application.HintPause 를 밀리세컨드단위로 설정하고

    힌트가 사라지는 시간은 Application.HintHidePause 를 설정해 주면 되고..

    마우스로 갖다 대면 힌트가 뜨게 할려면

    OnMouseMove 이벤트에서 현재 마우스 커서가 위치한 곳의 메모상의 줄번호를

    구하고 그 줄번호가 이전줄번호와 다르면 Application.CancelHint; 를 호출해서

    일단 힌트창을 닫습니다. 그리고 나서 다시 힌트를 설정해 주고

    현재 커서위치를 구해서 Application.ActivateHint(커서위치); 해주면 됩니다.



    자세한 소스는 아래에 .. 일단 리스트박스를 가지고 해봤습니다.



    unit Unit1;



    interface



    uses

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

    BmpEdit, StdCtrls, ExtCtrls;



    type

    TForm1 = class(TForm)

    ListBox1: TListBox;

    procedure FormCreate(Sender: TObject);

    procedure ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    private

    { Private declarations }

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;

    PrevIndex: integer; // <- 바로 앞 인덱스..



    implementation



    {$R *.DFM}



    procedure TForm1.FormCreate(Sender: TObject);

    begin

    application.HintPause:=0;

    Application.HintHidePause:=5000;

    end;



    procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    var

    index: integer;

    pt: TPoint;

    begin

    index:=ListBox1.itematpos(Point(x, y), true);



    if (index<>-1) and (Index<>PrevIndex) then

    begin

    PrevIndex:=Index;

    application.CancelHint;

    listbox1.Hint:=' ---------- '+inttostr(index)+' ----------- ';

    GetCursorPos(pt);

    Application.ActivateHint(pt);

    end;

    end;



    end.



    질문멘 wrote:

    > 한 컴퍼넌트위에서 마우스가 움직일때 마다 힌트를 다르고 하고 싶어요

    > TreeView 같이 말이에요

    > 예를 들면 Memo 에서 마우스를 가지고 1번째 줄에 같다돼면

    > 1번째 있는 글들 흰트로 보여주고

    > 그상테에서 마우스를 밑줄로 같다돼면 그줄에 내용을 흰트로 보여 주고 싶습니다.

    > 그리고 힌트가 나오는 시간과, 힌트가 나와서 있는시간을 조절 하고 싶은대

    > 고수님들에 답변부탁 드립니다.

  • Profile
    질문멘 2000.12.21 19:22
    답변 감사 드립니다.



    많은 도움이 되었습니다.



    즐거운 하루 되세요