Delphi GDI+;抽绳不画任何东西

Delphi GDI+;抽绳不画任何东西,delphi,gdi+,Delphi,Gdi+,开始在Delphi中使用GDI+。需要画几条平滑的直线。例如,尝试在窗体上绘制对角线(从左上角到右下角),但什么也没有出现。这段代码(DelphiXe3、Windows10x64)有什么问题 问题在于颜色 这是一个GDI+,它与本质上是Win32的 您传递的clBlue=$00FF0000现在被(错误地)解释为(alpha、红色、绿色、蓝色)=($00、$FF、$00、$00)。由于alpha值为0,因此该线是完全透明的 如果你这样做 gpPen := TGPPen.Create(clBlue

开始在Delphi中使用GDI+。需要画几条平滑的直线。例如,尝试在窗体上绘制对角线(从左上角到右下角),但什么也没有出现。这段代码(DelphiXe3、Windows10x64)有什么问题


问题在于颜色

这是一个GDI+,它与本质上是Win32的

您传递的
clBlue=$00FF0000
现在被(错误地)解释为(alpha、红色、绿色、蓝色)=($00、$FF、$00、$00)。由于alpha值为0,因此该线是完全透明的

如果你这样做

gpPen := TGPPen.Create(clBlue or $FF000000, 3);
相反,您将获得完全不透明度。但是您会看到红色,而不是蓝色,因为
t颜色是
$00BBGGRR
而不是
$00RRGGBB
。所以如果你这样做了

gpPen := TGPPen.Create($FF0000FF, 3);
你得到了你想要的蓝色

最好使用
MakeColor
函数:

gpPen := TGPPen.Create(MakeColor(0, 0, $FF), 3)
ColorRefToARGB

gpPen := TGPPen.Create(ColorRefToARGB(clBlue), 3)

伟大的它起作用了。非常感谢你,安德烈亚斯。
gpPen := TGPPen.Create(ColorRefToARGB(clBlue), 3)