Данный пример демонстрирует показ всплывающих подсказок для любой панели статусбара. Этот метод отличается от того, который использует событие MouseMove, и запускается только тогда, когда приложению необходимо показать всплывающие подсказки. В то время как при использовании MouseMove метод будет вызываться при каждом попадании курсора мышки на statusbar.

Code:

{ Добавьте CommCtrl в uses. }

{ в интерфейсе формы для статусбара }

private

   procedure AppShowHint(var HintStr: string; var CanShow: boolean;

     var HintInfo: THintInfo);

 

procedure TForm1.FormCreate(Sender: TObject);

begin

Application.OnShowHint := AppShowHint;

end;

 

procedure TForm1.AppShowHint(var HintStr: string; var CanShow: boolean;

var HintInfo: THintInfo);

const

PanelHints: array [0..6] of string =

   ('Cursor position', 'Ascii char', 'Bookmarks', 'Caps lock',

   'Insert/Overwrite', 'File size', 'File name');

var

x: integer;

R: TRect;

begin

if HintInfo.HintControl = StatusBar1 then

begin

   for x := 0 to StatusBar1.Panels.Count-1 do

   begin

     SendMessage(StatusBar1.Handle, SB_GETRECT, x, Longint(@R));

     if PtInRect(R, HintInfo.CursorPos) then

     begin

       HintStr := PanelHints[x];

       InflateRect(R, 3, 3);

       { Устанавливаем CursorRect говоря системе проверить новые

       строки с подсказками, когда курсор покинет этот прямоугольник. }

       HintInfo.CursorRect := R;

       break;

     end;

   end;

end;

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить