Текущий архив: 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.45 MB
Время: 0.011 c