我在希伯来语环境中编程,因此我希望 TTabControl 顶部的选项卡从右到左显示。 BiDiMode 属性不会影响选项卡,而是影响控件中包含的文本。
我尝试过以下代码
SetWindowLong (tc.Handle, GWL_EXSTYLE,
GetWindowLong(tc.Handle, GWL_EXSTYLE) or
WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
它可以正确显示选项卡,但会阻止 ttabcontrol 中包含的控件出现,因此它的使用受到一定限制。
有什么想法吗?顺便说一句,我正在使用 Delphi 7。
TIA, 诺姆
最佳答案
这不是我的代码。我发现了一些东西,但它似乎有效。
procedure TForm1.FormCreate(Sender: TObject);
const
LVM_FIRST = $1000;
LVM_GETHEADER = LVM_FIRST + 31;
var
header: thandle;
begin
header:= SendMessage (TabControl1.Handle, LVM_GETHEADER, 0, 0);
SetWindowLong (header, GWL_EXSTYLE,
GetWindowLong (header, GWL_EXSTYLE) or
WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
SetWindowLong (TabControl1.Handle, GWL_EXSTYLE,
GetWindowLong (lv.Handle, GWL_EXSTYLE) or
WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
lv.invalidate;
end;
关于delphi - TTabControl : tabs displayed right to left,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888239/