delphi ListView 设置固定列宽


本文整理自网络,侵删。

 
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 772
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
OnDestroy = FormDestroy
PixelsPerInch = 96
TextHeight = 13
object lvErrMsgs: TListView
Left = 0
Top = 0
Width = 635
Height = 415
Align = alTop
BevelInner = bvNone
BevelOuter = bvNone
BorderWidth = 1
Columns = <
item
Caption = ' '
Width = 30
end
item
Caption = #26500#20214#21517#31216
Width = 75
end
item
Caption = #25152#23646#27004#23618
Width = 75
end
item
Caption = #38169#35823#25551#36848
Width = 500
end>
ColumnClick = False
DragCursor = crAppStart
FlatScrollBars = True
GridLines = True
HideSelection = False
Items.ItemData = {
05450000000100000000000000FFFFFFFFFFFFFFFF03000000FFFFFFFF000000
000003310031003100F85CC32603320032003200A85BC326057A007800630076
006200B059C326FFFFFFFFFFFF}
ReadOnly = True
RowSelect = True
ShowWorkAreas = True
TabOrder = 0
ViewStyle = vsReport
ExplicitTop = -115
ExplicitWidth = 524
end
end





unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;

type
  TForm1 = class(TForm)
    lvErrMsgs: TListView;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
  FListViewOldWndProc: TWndMethod;
  procedure ListViewNewWndProc(var Msg: TMessage);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
uses
CommCtrl;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FListViewOldWndProc := lvErrMsgs.WindowProc;
  lvErrMsgs.WindowProc := ListViewNewWndProc;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  lvErrMsgs.WindowProc := FlistViewOldWndProc;
  FListViewOldWndProc := nil;
end;

procedure TForm1.ListViewNewWndProc(var Msg: TMessage);
var
hdn: ^THDNotify;
begin
if Msg.Msg = WM_NOTIFY then
begin
hdn := Pointer(Msg.lParam);
if (hdn.hdr.code = HDN_BeginTrackW) or (hdn.hdr.code = HDN_BeginTrackA) then
Msg.Result := 1
else
FListViewOldWndProc(Msg);
end else
FListViewOldWndProc(Msg);
end;


end.

相关阅读 >>

Delphi imagelist-图片(bmp)按名称而不按索引

Delphi access存储过程是带参数的查询语句

Delphi api 做的 serversocket 例子

Delphi dbgrids 组件内实现查询

Delphi 动态数组传递数据示例

Delphi xe5 程序中标识win max android ios程序代码分别实现

Delphi 备份恢复剪切板

Delphi unigui 获取files路径

Delphi webbrowser1 设置获取编码

Delphi 判断iso文件,iso文件头, iso filehead

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...