![]() |
![]() ![]() ![]() ![]() |
|
Как получить эффект тени для HintDelphi , Синтаксис , Hint подсказкиАвтор: http://www.swissdelphicenter.ch
type
TXPHintWindow = class(THintWindow)
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure WMNCPaint(var msg: TMessage); message WM_NCPAINT;
end;
function IsWinXP: Boolean;
begin
Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and
(Win32MajorVersion >= 5) and (Win32MinorVersion >= 1);
end;
procedure TXPHintWindow.CreateParams(var Params: TCreateParams);
const
CS_DROPSHADOW = $00020000;
begin
inherited;
if IsWinXP then
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
procedure TXPHintWindow.WMNCPaint(var msg: TMessage);
var
R: TRect;
DC: HDC;
begin
DC := GetWindowDC(Handle);
try
R := Rect(0, 0, Width, Height);
DrawEdge(DC, R, EDGE_ETCHED, BF_RECT or BF_MONO);
finally
ReleaseDC(Handle, DC);
end;
end;
initialization
HintWindowClass := TXPHintWindow;
Application.ShowHint := False;
Application.ShowHint := True;
end.
Перевод контента на русский язык: Код, который вы опубликовали, - это класс Delphi, созданный для создания окна подсказки с эффектом тени. Главная цель этого кода - добавить визуальный эффект "тень" для подсказок на Windows XP и более поздних версиях. Вот что он делает в деталях:
Эффект тени достигается путем рисования прямоугольника с стилем отчечения в том же цвете, что и фон окна. Процедура Вот некоторые предложения по улучшению кода:
Вот пример модификации процедуры В этом модифицированном варианте я добавил прямоугольник тени, который является чуть больше оригинального прямоугольника. Тень рисуется с более темным цветом для создания ощущения глубины. В статье описывается способ создания эффекта тени для компонента Hint в Delphi, используя класс TXPHintWindow и функцию IsWinXP. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Hint подсказки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||