Avatar of ahamedmohideen
ahamedmohideen
Flag for Austria

asked on 

How to I convert this C++ to Delphi?

Hi Experts,

Can somebody convert following code to delphi? So I can use is tp replace color of a HBitmap
Thanks in advance!
Best regards,
Ahamed
HBITMAP bmpReplaceColor(HBITMAP hbm, COLORREF oldColor, COLORREF newColor)
{
	CDC hdcOld = CreateCompatibleDC(NULL);
	CDC hdcNew = CreateCompatibleDC(NULL);
	CBitmapHandle _hbmOld = NULL, _hbmOld2 = NULL, bmOld = hbm;
	BOOL bOK=false;
	CBitmap bmNew = NULL;
	SIZE bmpDim = { 0 };

	bmOld.GetSize(bmpDim);
	_hbmOld = hdcOld.SelectBitmap(bmOld);

	bmNew.CreateCompatibleBitmap(hdcOld, bmpDim.cx, bmpDim.cy);
	ATLASSERT(!bmNew.IsNull());//error checking!!!

	_hbmOld2 = hdcNew.SelectBitmap(bmNew);
       //"transparent" color background
	hdcNew.FillSolidRect(0,0,bmpDim.cx, bmpDim.cy, newColor);
	bOK = hdcNew.TransparentBlt(0,0,bmpDim.cx,bmpDim.cy, hdcOld, 0,0,bmpDim.cx,bmpDim.cy, oldColor);

	hdcOld.SelectBitmap(_hbmOld);
	hdcNew.SelectBitmap(_hbmOld2);
	if (bOK == FALSE) bmNew.DeleteObject();
return bmNew.Detach();
}

Open in new window

DelphiC++

Avatar of undefined
Last Comment
ahamedmohideen

8/22/2022 - Mon