Delphi中ListView列宽改变时的消息响应

unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls, ComCtrls,CommCtrl; 
 
type 
 PHD_NOTIFY=^HD_NOTIFY; 
 TForm1 = class(TForm) 
  ListView1: TListView; 
  Button1: TButton; 
  procedure FormDestroy(Sender: TObject); 
  procedure Button1Click(Sender: TObject); 
 private 
  { Private declarations } 
  oldProc: TWndMethod; 
  procedure NewProc(var Message: TMessage); 
 public 
  { Public declarations } 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.NewProc(var Message: TMessage); 
var hn:PHD_NOTIFY; 
begin 
 if message.Msg=WM_NOTIFY then 
 begin 
  hn:=PHD_NOTIFY(Message.LParam); 
  if(hn^.Hdr.code=HDN_BEGINTRACKA)or(hn^.hdr.code=HDN_BEGINTRACKW) then 
  begin 
   // Message.Result  :=  1;   加入这一行就使的列头不能改变宽度 
   //  如果要在拖动完成后作处理,可以判断hn->hdr.code是否 
   //  等于HDN_ENDTRACKA或HDN_ENDTRACKW,然后作处理。 
   ShowMessage('hehe'); 
  end 
  else 
   ListView1.Dispatch(Message); 
 end;  
end; 
 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
 ListView1.WindowProc:=OldProc; 
end; 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 OldProc:= ListView1.WindowProc; 
 ListView1.WindowProc:= NewProc; 
end; 
 
end.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索listview
, message
, end
, sender
, listview列宽
procedure
delphi listview 列宽、listview列宽自适应、c listview 列宽、wpf listview 列宽、listview 列宽百分比,以便于您获取更多的相关知识。

时间: 2024-11-02 00:27:59

Delphi中ListView列宽改变时的消息响应的相关文章

监听-listview item中是有EditText改变时获取Postion?

问题描述 listview item中是有EditText改变时获取Postion? listview item中是有EditText, 怎么在监听每个EditText的时候获取这个EditText的Postion? 解决方案 getview时,可以给这个edittext的tag赋值postion,然后取出tag得到postion 解决方案二: 不是本地爸爸的话大把大把差不多你都能 解决方案三: 用ListView 不要重用ConvertView

调整Word文档中表格列宽的方法

调整Word文档中表格列宽的方法          1.选择需要调整的列,在"表格工具-布局"选项卡下"单元格大小"组的"表格列宽"微调框中输入数字,按"Enter"键确认输入后,该列单元格的宽度即会调整为输入值,如图1所示. 图1 调整整列单元格的列宽 2.将鼠标指针放置到需要单独调整列宽的单元格左边框上,当鼠标指针变为 形状时单击.然后将鼠标指针移动到该单元格右边框上,当指针变为 形状时拖动边框,即可只调整该单元格的宽度,

C# ListView 列宽调整 刷新

/*********************************************************************** * C# ListView 列宽调整 刷新 * 说明: * 记录将C#中的ListView列宽设置为自动调整. * * 2016-7-5 深圳 南山平山村 曾剑锋 **********************************************************************/ 一.参考文章: 1. C# ListView

Excel 2007表格中更改列宽和行高的方法

在Excel工作表中,您可以将列宽指定为 0(零)到 255.此值表示可在用标准字体 (标准字体:工作表的默认文本字体.标准字体决定了"常规"单元格样式的默认字体.)进行格式设置的单元格中显示的字符数.默认列宽为 8.43 个字符.如果列宽设置为 0,则隐藏该列. 您可以将行高指定为 0(零)到 409.此值以点数(1 点约等于 1/72 英寸)表示高度测量值.默认行高为 12.75 点.如果行高设置为 0,则隐藏该行. 将列设置为特定宽度 1.选择要更改的列. 2.在"开始

listview列宽如何自动调整大小?

问题描述 wpflistview列宽如何自动调整大小?wpflistview列宽随内容调整大小,高手在哪? 解决方案 解决方案二:貌似没办法,只能设置ListView的HorizontalAlignment="Stretch"为拉伸.解决方案三:谁有办法啊?解决方案四:实在不行自己写事件判断,或者其他什么的方式实现解决方案五:https://social.msdn.microsoft.com/Forums/vstudio/en-US/83bd7ab9-3407-461f-a0bc-69

ListView列宽自适应,设置ListView.Column[0].Width := -1;

使用TListView列表显示内容,如果列内容过长,就会显示成'XXX-'形式,此时如果双击列标题,列宽将变为自适应.用代码设置如下: 1.设置ListView.Column[0].Width := -1;//列宽根据列内容自适应,此时保证列内容都可见. 2.设置ListView.Column[0].Width := -2;//列宽根据列标题自适应,此时保证列标题可见.

[WPF疑难] 如何限定ListView列宽度

今天遇到的一个Defect是:应该限定List View中列最小宽度以避免用户将列宽度拖拽为0而导致列消失.WPF的List View没有内置该机制,但我们可以通过监听用户拖拽操作来跟踪列宽并进一步限定用户拖拽,我已经搞定了该问题,请参见附件中的DEMO. Demo中的"ListViewLayoutManagerLib"项目已经该操作封装,如何使用该封装,请参考下面的说明(或GridViewCodeDemo.Window1.xaml) 1,将ListViewLayoutManagerL

Delphi中的SQL编程

SQL语言作为关系数据库管理系统中的一种通用的结构查询语言,已经被众多的数据库管理系统所采用,如ORACLE.Sybase.Informix等数据库管理系统,它们都支持SQL 语言.Delphi与使用SQL语言的数据库管理系统兼容,在使用Delphi开发数据库应用程序时,我们可以使用SQL语言编程,支持SQL编程是Delphi的一个重要特征,这也是体现Delphi作为一个强大的数据库应用开发工具的一个重要标志. 17.1 SQL语言简介 17.1.1 SQL的历史 在70年代初,E.E.Codd

WPS表格2013固定列宽的方法

  WPS表格2013固定列宽的方法           1.选中单元格,单击菜单栏--开始--行和列--列宽,从弹出的菜单中输入列宽字符. 2.然后切换到审阅标签,单击允许用户编辑按钮,从弹出的菜单中单击新建按钮,引用单元格,选择允许用户编辑的区域. 3.再次单击审阅选项卡下的保护工作表按钮,除了设置列格式外,全部勾选,输入密码. 4.完成后A列除列宽外都可以编辑,其他地方不能编辑.