У меня тут такая проблема.
Возможно ли сгладить объекты отрисованные старым GDI. Думается для этого нужно использовать GDI+. Но я не в курсе как это реализовать.
Просто у меня есть проект, где все отрисовывает старый GDI. В принципе меня все устраивает, но хотелось бы сгладить все, чеб было по красивее. Пусть даже в ущерб скорости. Это будет как опция (On|Off).
Кто в теме помогите решить эту проблему. Спать уже не могу, она мне по ночам снится

.
Я тут эксперементировал ( в меру своей компетентности в этом вопросе

), но ничего не получилось.
Код:
// Uses GDIPAPI, GDIPOBJ;
procedure TForm1.FormPaint(Sender: TObject);
var
LF: TLogFont;
fnt: HFont;
innerContainer: GraphicsContainer;
graphics : TGPGraphics;
brush: TGPSolidBrush;
FontFamily: TGPFontFamily;
Font: TGPFont;
PN: TGPPen;
begin
graphics := TGPGraphics.Create(self.Canvas.Handle);
brush:= TGPSolidBrush.Create(MakeColor(255, 0, 0, 255));
FontFamily := TGPFontFamily.Create('Times New Roman');
Font := TGPFont.Create(fontFamily, 36, FontStyleRegular, UnitPixel);
PN := TGPPen.Create(MakeColor(255, 0, 0, 0));
// Здесь устанавливаю сглаживание обыектов
graphics.SetTextRenderingHint(TextRenderingHintAntiAlias); // Сглаживаю текст
graphics.SetSmoothingMode(SmoothingModeAntiAlias); // Сглаживаю объекты
// graphics.SetCompositingQuality(CompositingQualityHighQuality);
// graphics.SetInterpolationMode(InterpolationModeHighQualityBilinear);
//++++++++++++++++++++++++++++++++++++++++++++
// Объекты нарисовынные средствами GDI+
graphics.DrawString('Текст GDI+', 15, font, MakePoint(20.0, 10.0), brush);
PN.SetWidth(5);
graphics.DrawLine(PN, 20, 10, 300, 100);
// graphics.DrawRectangle(PN,10,10,250,250);
//++++++++++++++++++++++++++++++++++++++++++++
innerContainer := graphics.BeginContainer();
//++++++++++++++++++++++++++++++++++++++++++++
// Объекты нарисовынные средствами старого GDI
// ВОЗМОЖНО ЛИ ИХ ОТРИСОВАТЬ СГЛАЖЕННЫМИ
LF.lfHeight := 50;
// LF.lfWeight := FW_BOLD;
LF.lfUnderline := 1;
LF.lfEscapement := 300;
StrPCopy(LF.lfFaceName, 'Arial Bold');
Fnt := CreateFontIndirect(LF);
Canvas.Font.Handle := Fnt;
Canvas.TextOut(0,300,'Текст GDI');
Canvas.Pen.Width := 5;
Canvas.LineTo(25,205);
DeleteObject(Fnt);
//++++++++++++++++++++++++++++++++++++++++++++
graphics.EndContainer(innerContainer);
PN.Free;
Font.Free;
brush.Free;
FontFamily.Free;
graphics.Free;
end;