Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Градиент кругленький   Найти похожие ветки 

 
Сергей Бушин ©   (2003-01-25 22:01) [0]

Как мне сделать градиент, чтобы он изменялся от центра окружности к краям, ну или наоборот.


 
Игорь Шевченко ©   (2003-01-27 11:44) [1]

MSDN: GradientFill


 
REA ©   (2003-01-27 11:54) [2]

Кстати там баг в дельфовом описании записи. По крайней мере в D6 был.


 
Игорь Шевченко ©   (2003-01-27 12:02) [3]

REA © (27.01.03 11:54)

Кстати, да.
{
Модуль: HSGdi

Описание: Интерфейс к функциям MSIMG32

Автор: Игорь Шевченко

Дата создания: 18.10.2002

История изменений:
}
unit HSMsImg;

interface
uses
Windows;

type
THSTriVertex = packed record
x : LongInt;
y : LongInt;
Red : Word;
Green : Word;
Blue : Word;
Alpha : Word;
end;
PHSTriVertex = ^THSTriVertex;

function HSGradientFill(DC: HDC; Vertex: PHSTriVertex; NumVertex: ULONG;
Mesh: Pointer; NumMesh, Mode: ULONG): BOOL; stdcall;
const
{ gradient drawing modes }
GRADIENT_FILL_RECT_H = $00000000;
GRADIENT_FILL_RECT_V = $00000001;
GRADIENT_FILL_TRIANGLE = $00000002;
GRADIENT_FILL_OP_FLAG = $000000ff;

implementation

type
THSGradientFill = function (DC: HDC; Vertex: PHSTriVertex; NumVertex: ULONG;
Mesh: Pointer; NumMesh, Mode: ULONG): BOOL; stdcall;
var
_HSGradientFill : THSGradientFill;
DllHandle: THandle;

const
Dllname = "msimg32.dll";

function InitLib : Boolean;
begin
if DllHandle = 0 then begin
DllHandle := LoadLibrary(Dllname);
if DllHandle <> 0 then begin
@_HSGradientFill := GetProcAddress(DllHandle, "GradientFill");
end;
end;
Result := (DllHandle <> 0);
end;

function HSGradientFill(DC: HDC; Vertex: PHSTriVertex; NumVertex: ULONG;
Mesh: Pointer; NumMesh, Mode: ULONG): BOOL; stdcall;
begin
if InitLib AND Assigned(_HSGradientFill) then
Result := _HSGradientFill(DC, Vertex, NumVertex, Mesh, NumMesh, Mode)
else begin
Result := false;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
end;
end;

initialization
finalization
if DllHandle <> 0 then
FreeLibrary(DllHandle);
end.


 
MBo ©   (2003-01-27 14:09) [4]

Вариант без реимпорта функции



type
TTRIVERTEXNew = packed record
X,Y:Integer;
R,G,B,Alpha: Word;
end;

var v:array [0..1] of TTriVertexNew;

Gradientfill(image1.canvas.handle,PTriVertex(@v)^, 2,@m, 1,Gradient_Fill_Rect_H);



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

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
3-15480
Наташа
2003-01-20 16:57
2003.02.06
Хранимые процедуры


3-15407
Melamed
2003-01-21 20:20
2003.02.06
Как отследить изменение значения в LookUp-поле?


3-15514
mate
2003-01-21 11:53
2003.02.06
Запрос в MSSQL


14-15863
yaric
2003-01-19 18:53
2003.02.06
Сабж по Ib


6-15803
TCrash
2002-12-13 14:35
2003.02.06
Широковещательный запрос