⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtlist.html

📁 对于学习很有帮助
💻 HTML
字号:
<html>
<head>
   <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
   <meta NAME="Author" CONTENT="FuGui">
   <meta NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (Win95; I) [Netscape]">
   <title>如何给TListBox加上水平滚动条</title>
</head>
<body TEXT="#000099" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="background.gif" tppabs="http://www.nease.net/~borland/delphi/tips/background.gif">

<h1>
如何给TListBox加上水平的滚动条?</h1>
&nbsp;

<p>&nbsp;&nbsp;&nbsp; Delphi 的 TListBox元件自动实现了垂直的滚动条,当ListBox不能显示全部的菜单(Item)时,这个垂直的滚动条就会出现。然而,当菜单的宽度比ListBox宽时水平的滚动条却不会出现。以下的程序就是处理这个问题的。

<p>&nbsp;&nbsp;&nbsp; 在你的Form的OnCreate事件中添加以下代码:
<br>procedure TForm1.FormCreate(Sender: TObject);
<br><b>var</b>
<br>&nbsp; i, MaxWidth: integer;
<br><b>begin</b>
<br>&nbsp; MaxWidth := 0;
<br>&nbsp; <b>for</b> i := 0 <b>to</b> ListBox1.Items.Count - 1 <b>do</b>
<br>&nbsp; <b>if</b> MaxWidth &lt; ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i])
<b>then</b>
<br>&nbsp;&nbsp;&nbsp; MaxWidth := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]);
<br>&nbsp; SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+2,
0);
<br><b>end</b>;

<p>&nbsp;&nbsp;&nbsp; 以上的代码首先得到ListBox中最长Item的长度,然后用LB_SETHORIZONTALEXTENT消息设置ListBox的水平滚动的宽度,宽度加2是为了给右面留2个点的边。
<br>&nbsp;
<br>&nbsp;

<p>Tips来源:The Cobb Group's Delphi Developer's Journal
<br>&nbsp;
<br>&nbsp;

<p>本页版主:<a HREF="mailto:fgui@usa.net">傅贵</a>,最后修改日期:1998.2.19
<br>&nbsp;
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -