TTreeView's 通过以下代码镜像Treeview时,ScrollBar不接受VCL主题:
procedure SetWinControlBiDi(Control: TWinControl);
const
WS_EX_NOINHERITLAYOUT = $00100000;
WS_EX_LAYOUTRTL = $00400000;
var
ExStyle: Longint;
begin
ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or WS_EX_RIGHT
or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT );
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
SetWinControlBiDi(TreeView1);
end;
Run Code Online (Sandbox Code Playgroud)
示例图片:
我该怎么办?
请帮助我...
我试图通过以下功能设置TListView控制方向RTL:
procedure RTL_LV(lv:TListView);
const
LVM_FIRST = $1000;
LVM_GETHEADER = LVM_FIRST + 31;
var
header: THandle;
begin
header:= SendMessage (lv.Handle, LVM_GETHEADER, 0, 0);
SetWindowLong (header, GWL_EXSTYLE,
GetWindowLong (header, GWL_EXSTYLE) or
WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
SetWindowLong (lv.Handle, GWL_EXSTYLE,
GetWindowLong (lv.Handle, GWL_EXSTYLE) or
WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
lv.invalidate;
end;
Run Code Online (Sandbox Code Playgroud)
但是当项目使用时,我有两个问题如下VCL Styles:
1:Vertical scrollbar没有点击它就不会出现.
2:当我更改ListView列的大小并horizontal scrollbar单击时,将显示以下错误消息:
例外来源: Vcl.ComCtrls.TListViewStyleHook.WMMouseMove
procedure TListViewStyleHook.WMMouseMove(var Message: TWMMouse);
var
SF: TScrollInfo;
SPos: Integer;
R: TRect;
begin
if VertSliderState = tsThumbBtnVertPressed then
begin …Run Code Online (Sandbox Code Playgroud)