Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Вниз

Custom Hint   Найти похожие ветки 

 
SergLight   (2002-09-10 15:46) [0]

Необходимо создавать свою подсказку (текст + картинка + форматирование).
Подскажите какие-либо идеи на этот счет.


 
Игорь Шевченко   (2002-09-10 15:48) [1]

Наследник от класса THintWindow.
Пример:
unit HSRoundHint;

interface
uses Windows, Classes, Controls, Forms, Messages, Graphics;

type
THSHintWindow = class (THintWindow)
private
FRegion : THandle;
procedure FreeCurrentRegion;
public
destructor Destroy; override;
procedure ActivateHint (Rect : TRect; const AHint : String); override;
procedure Paint; override;
procedure CreateParams (var Params : TCreateParams); override;
end;

implementation

{ THSHintWindow }

procedure THSHintWindow.ActivateHint(Rect: TRect; const AHint: String);
begin
with Rect do
Inc(Right, Canvas.TextWidth ("W"));
BoundsRect := Rect;
FreeCurrentRegion();
with BoundsRect do
FRegion := CreateRoundRectRgn (0, 0, Width, Height, 6, 6);
if FRegion <> 0 then
SetWindowRgn (Handle, FRegion, true);
inherited;
end;

procedure THSHintWindow.CreateParams(var Params: TCreateParams);
begin
inherited;
with Params do
Style := Style AND NOT WS_BORDER;
end;

destructor THSHintWindow.Destroy;
begin
FreeCurrentRegion;
inherited;
end;

procedure THSHintWindow.FreeCurrentRegion;
begin
if FRegion <> 0 then begin
SetWindowRgn (Handle, 0, true);
DeleteObject (FRegion);
FRegion := 0;
end;
end;

procedure THSHintWindow.Paint;
var R : TRect;
begin
R := ClientRect;
Canvas.Pen.Color := clBtnFace;
Canvas.Brush.Style := bsClear;
Canvas.Brush.Color := clBlack;
Canvas.RoundRect(R.Left, R.Top, R.Right-1, R.Bottom-5, 6, 6);
Canvas.Font.Color := clWhite;
DrawText (Canvas.Handle, PChar(Caption), Length (Caption), R,
DT_NOPREFIX OR DT_WORDBREAK OR DT_CENTER OR DT_VCENTER);
end;

initialization
Application.ShowHint := false;
HintWindowClass := THSHintWindow;
Application.ShowHint := true;
end.


 
SergLight   (2002-09-10 16:00) [2]


> Игорь Шевченко ©

Большое спасибо.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.008 c
14-73815
voronkov
2002-08-26 18:38
2002.09.23
Кто нибудь слышал как работать с китайским и ему подобными яз.


6-73791
OlegG
2002-07-12 23:17
2002.09.23
Как мне узнать имя файла отправл. с СlientSocket в ServerSocket


1-73708
Mars
2002-09-10 10:55
2002.09.23
Как отследить перемещение полосы прокрутки в RichEdit?


1-73641
Martin
2002-09-12 17:01
2002.09.23
OnCloseQuery и перезагрузка машины...


14-73849
Tiger
2002-08-26 23:52
2002.09.23
Запись CD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский