Inno setup 将Inno设置许可证备忘录切换到RTL模式

Inno setup 将Inno设置许可证备忘录切换到RTL模式,inno-setup,rtf,pascalscript,richedit,Inno Setup,Rtf,Pascalscript,Richedit,我正在创建一个多语言安装程序, 有些语言需要RTL方向才能自然地显示出来。 这是我在许可证页面中使用的代码: licensemo:=TNewMemo.Create(WizardForm); 有执照吗 开始 父项:=WizardForm.LicensePage; 左:=ScaleX(0); 顶部:=ScaleY(50); 宽度:=ScaleX(520); 高度:=ScaleY(210); 颜色:=t颜色($d3); 字体.颜色:=clBlack; 滚动条:=ssVertical; Text:=Wi

我正在创建一个多语言安装程序, 有些语言需要RTL方向才能自然地显示出来。 这是我在许可证页面中使用的代码:

licensemo:=TNewMemo.Create(WizardForm);
有执照吗
开始
父项:=WizardForm.LicensePage;
左:=ScaleX(0);
顶部:=ScaleY(50);
宽度:=ScaleX(520);
高度:=ScaleY(210);
颜色:=t颜色($d3);
字体.颜色:=clBlack;
滚动条:=ssVertical;
Text:=WizardForm.licensemo.Text;
LicenseMemo.Font.Size:=12
只读:=真;
结束;

我知道我可以通过在
[LangOptions]
中添加
right-toleft=yes
使程序完全RTL。但这会让程序看起来很糟糕——我只需要RTL作为许可证页面。有人能帮忙吗?我将RTF文件用于许可证页面。

使用
TRichEditViewer
并添加到其:

const
GWL_EXSTYLE=-20;
WS_EX_layourtl=$400000;
函数GetWindowLong(hWnd:THandle;Index:Integer):LongInt;
外部的GetWindowLongW@User32.dllstdcall';
函数SetWindowLong(hWnd:THandle;索引:整数;NewLong:LongInt):LongInt;
外部的SetWindowLongW@user32.dllstdcall';
SetWindowLong(
RichEditViewer.Handle,GWL_EXSTYLE,
GetWindowLong(RichEditViewer.Handle,GWL_EXSTYLE)或WS_EX_layouttl);