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

Reply via email to