Function CreateIconFromBitmap(Bitmap: TBitmap; TransparentColor: TColor): TIcon;
begin
with TImageList.CreateSize(Bitmap.Width, Bitmap.Height) do
begin
try
AllocBy := 1;
AddMasked(Bitmap, TransparentColor);
Result := TIcon.Create;
try
GetIcon(0, Result);
except
Result.Free;
raise;
end;
finally
Free;
end;
end;
end;
Function CreateStrIcon(s : String): TIcon;
Var TmpBmp : TBitmap;
aRect : TRect;
Begin
TmpBmp := TBitmap.Create;
With TmpBmp do
Try
PixelFormat := pf8bit;
Width := 16;
Height := 16;
aRect := Rect(0,0,Width,Height);
Canvas.Brush.Color := clFuchsia;
Canvas.FillRect(aRect);
Canvas.Font.Name := 'Comic sans MS';
Canvas.Font.Size := 8;
Canvas.Font.Style := [fsBold];
Canvas.Font.Color := clRed;
DrawText(Canvas.Handle, PChar(S), -1, aRect, DT_CENTER or DT_WordBreak);
Result := CreateIconFromBitmap(TmpBmp, clFuchsia);
Finally
TmpBmp.Free;
End;
End;
Utilisation :
Application.MainForm.Icon := CreateStrIcon('Cr');