Главная страница
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.017 c
1-15757
KSION
2003-01-23 12:14
2003.02.06
Количество дней в месяце


4-16003
grifon
2002-12-19 20:08
2003.02.06
Как быстро забить комп?


14-15865
Maksss
2003-01-19 16:48
2003.02.06
У кого нидь есть ссылки на исходняки ботов для аськи


1-15627
waterfoll
2003-01-29 12:42
2003.02.06
Как в RichEdit промотать текст при добовлении новых строк и


1-15546
3333333333
2003-01-28 14:26
2003.02.06
Выделение пункта в ЛистБоксе