Anton Kavalenka wrote:
How would an OOP approach solve this? The problem isn't the tracking of
things like encoding or directions but handling all these information.
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel
procedure TLabel.Paint(...)
begin
if *Caption.IsRTL *then
DrawCaptionRTL(0,0,*Caption.AsUTF8*, flags)
else
DrawCaption(0,0,*Caption.AsUTF8*, flags);
end;
Is not that enough?
Sorry, cannot stay aside.
RTL is a control property, not a string. And AsUTF8 is imo unneeded:
procedure TLabel.DrawCaption(ACaption: TUTF8String);
begin
...
end;
procedure TLavel.DrawCaptionRTL(ACaption: TUTF8String);
begin
...
end;
procedure TLabel.Paint(...)
begin
if RightToLeftAlignment then
DrawCaptionRTL(0, 0, Caption, flags)
else
DrawCaption(0, 0, Caption, flags)
end;
And Caption can be any desired string type. It will be autoconverted to
UTF8String if needed. I see no need in a string class - only unneeded
overhead.
Best regards,
Paul Ishenin.
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel