Вниз
Скачать: CL | DM;

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

← →
[lamer]Barmaglot ©   (2002-09-23 09:17) [0]

В WinAPI под Win 98-2000 есть такая команда, Мастера подскажите как ей пользоваться(желательно с примером), а то кроме названия нигде ничего найти не удалось...


← →
MBo ©   (2002-09-23 10:15) [1]

Описание есть в MSDN, даже с примером.

ОДНАКО!!!!
Структура TTriVertex содержит поля типа Сolor16, а в Windows.pas
этот тип почему-то описан как ShortInt - очевидно, баг позорный.

Придется делать так:
1) Переопределяем тип:
type
TRIVERTEXNew = packed record
X:Integer;
Y:Integer;
R,G,B,Alpha: SmallInt;
end;
2) переимпортируем функцию

function GradientFill(DC:hDC; pVertex : Pointer; dwNumVertex : DWORD;
pMesh : Pointer; dwNumMesh, dwMode: DWORD) : DWord; stdcall;
external "msimg32.dll";


procedure TForm1.Button1Click(Sender: TObject);
var v:array [0..1] of TrivertexNew;
m:array[0..1] of integer;
begin
FillChar(v,SizeOf(TriVertexNew)*2,0);
v[1].x:= 100;
v[1].y:= 100;
v[1].B:= $7FFF;
v[0].R:=$7FFF;
v[0].G:=$7FFF;
m[0]:=0;
m[1]:=1;
Gradientfill(image1.canvas.handle,@v,2,@m,1,Gradient_Fill_Rect_H);
end;


← →
[lamer]Barmaglot ©   (2002-09-23 10:22) [2]

Большое спасибо, а то с этой функцией вообще запутался... Пойду пробовать.


← →
MBo ©   (2002-09-23 12:49) [3]

Service Pack :)

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

Можно избавиться от реимпорта GradientFill ради изменения объявления, вызывая ее так

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


← →
REA   (2002-09-23 13:46) [4]

Точно баг. Я это тоже фиксил и в Борланд писал - не хотят исправлять.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
7-11510
bob5
2002-08-05 07:49
2002.11.04
Про DLL


14-11418
Sr. ☼
2002-10-13 00:09
2002.11.04
---|Ветка была без названия|---


7-11495
partizan
2002-08-29 12:23
2002.11.04
Запуск внешних приложений


14-11437
AL2002
2002-10-15 12:15
2002.11.04
Как запустить дллку?


3-11109
Sirus
2002-10-16 10:13
2002.11.04
Почему IBase не делает того что нужно???




   Наверх