Delphi GDI+;抽绳不画任何东西
开始在Delphi中使用GDI+。需要画几条平滑的直线。例如,尝试在窗体上绘制对角线(从左上角到右下角),但什么也没有出现。这段代码(DelphiXe3、Windows10x64)有什么问题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
问题在于颜色 这是一个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)