Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c