[Lazarus] Looking for help: Trying to add better RightToLeft support to Lazarus.
Avishai
avishai.gore at gmail.com
Sat Nov 9 09:29:57 CET 2013
If anyone wants to experiment with RightToLeft, this should get you started.
But you must disable Themes for it to work. Otherwise all
TWinControl.Canvas gets corrupted and can not be used. The
TWinControl.Canvas issue is the biggest obstacle to making RightToLeft Forms
in Lazarus. Delphi does not have this problem.
Start a new project and drop a TPageControl on the Form. Add 2 Tabs to the
TPageControl. Then add the CreateParams code.
--------
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, LclType, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
public
procedure CreateParams(var Params : TCreateParams); override;
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
uses AviUtils, Windows;
procedure TForm1.CreateParams(var Params : TCreateParams);
begin
inherited CreateParams(Params);
{$IFDEF WINDOWS}
if SysLocale.MiddleEast then
Params.ExStyle:= Params.ExStyle or WS_EX_LAYOUTRTL; // or
WS_EX_NOINHERITLAYOUT;
{$ENDIF}
end;
end.
--
View this message in context: http://free-pascal-lazarus.989080.n3.nabble.com/Lazarus-Looking-for-help-Trying-to-add-better-RightToLeft-support-to-Lazarus-tp4028216p4034186.html
Sent from the Free Pascal - Lazarus mailing list archive at Nabble.com.
More information about the Lazarus
mailing list