Delphi 之 列表框组件(TListBox)

  TListBox组件属性

AutoComplete

  设置是否将焦点移到用户键盘输入选项上

BorderStyle

  设置组件是否有边框

Canvas

  提供一个绘图面板。

Columns

  指定列表框的可见列数

Count

  获得列表框的组件选项数

ExtendedSelect

  是否可以在列表框中选取一个范围的选项

IntegralHeight

  设置列表框是否部分显示那些显示不全的选项

ItemHeight

  设置列表框的高度

Items

  设置列表框的所有选项

MultiSelect

  是否使用多项选择功能

ScrollWidth

  指定列表框的宽度

SeltCount

  返回当前选项中的总数

Sorted

  设置列表框选项释放按字母排序

Style

  设置列表框的风格

TabWidth

  设置Tab的宽度

TopIndex

  设置选项中顶端的索引编号

示例:自动获取列表框中的组件焦点

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i:Integer;
begin
   for i:= 1 to Length(Trim(Edit1.text))do
    SendMessage(ListBox1.Handle,WM_CHAR,Integer(Edit1.Text[i]),0);
  SendMessage(ListBox1.Handle,WM_CHAR,Integer(Key),0);
end;
end.

示例 用Canvas属性绘图

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  i:integer;
begin
  with Control as TListBox do
  begin
    Canvas.FrameRect(Clientrect);
    if odSelected in State then
    begin
      Canvas.Brush.Color:=clRed;
      Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,8,15);
      setBkMode(Canvas.Handle,TRANSPARENT    );
      Canvas.TextOut((Rect.right-Rect.Left) div 2,Rect.Top,Items.Strings[Index]);
    end
    else
    begin
      Canvas.Brush.Color:=clSkyBlue;
      Canvas.RoundRect(Rect.Left,Rect.Top,Rect.Right,Rect.Bottom,15,15);
      Canvas.TextRect(Rect,Rect.Left,Rect.Top,Items.Strings[Index]);
    end;
  end;
end;

end.

示例 模糊查找文字

procedure TForm1.Edit1Change(Sender: TObject);
var
  LIndex:Integer;
begin
  LIndex:=SendMessage(ListBox1.Handle,LB_SELECTSTRING,-1,LongInt(Edit1.Text));
end;

end.
时间: 2024-07-31 07:53:52

Delphi 之 列表框组件(TListBox)的相关文章

Swing列表框组件

public class JListTest extends JFrame{    private static final long serialVersionUID=1L;        public JListTest()    {        Container cp=getContentPane();        cp.setLayout(null);        JList<String> jl=new JList<>(new MyListModel());  

[备忘]不用许可证 多线程直接操作界面组件比如超级列表框的实现

平时多线程来操作界面组件 同时写入或者修改数据  比如常见的把多个线程都把日志同时写入到编辑框 又或者 多个线程同时的修改一个超级列表框上的线程状态和其他信息 这样会出现一个问题 如何避免多个线程同时操作一个组件导致的组件冲突问题 我们常用的是使用许可证来给每个线程规定访问顺序来依次执行 不过这样的调整的确从效率上说很低下 大漠老师使用 发送消息 或者说是使用window消息机制来实现不加许可证的同时修改界面组件的思路非常好 511遇见老师也对这个思路进行了深度解析 已经非常的详细了http:/

Android零基础入门第62节:搜索框组件SearchView

原文:Android零基础入门第62节:搜索框组件SearchView 一.SearchView概述 SearchView是搜索框组件,它可以让用户在文本框内输入文字,并允许通过监听器监控用户输入,当用户输入完成后提交搜索时,也可通过监听器执行实际的搜索. SearchView默认是展示一个search的icon,点击icon展开搜索框,也可以自己设定图标.用SearchView时可指定如下表所示的常见XML属性及相关方法. 如果为SearchView增加一个配套的ListView,则可以为Se

第一百九十六节,jQuery EasyUI,Tooltip(提示框)组件

jQuery EasyUI,Tooltip(提示框)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Tooltip(提示框)组件的使用方法,,这个组件不依赖于其 他组件. 一.加载方式 //class 加载方式 <a href="http://www.ycku.com" title="这是一个提示信息!" class="easyui-tooltip">Hover Me <

第二百二十四节,jQuery EasyUI,ComboGrid(数据表格下拉框)组件

jQuery EasyUI,ComboGrid(数据表格下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 ComboGrid(数据表格下拉框)组件的使用方法,这个组件 依赖于 Combo(自定义下拉框)和 DataGrid(数据表格)组件. 一.加载方式 class 加载方式 <select id="box" class="easyui-combogrid" name="dept" sty

ValidateBox( 验证框) 组件

本节课重点了解 EasyUI 中 ValidateBox(验证框)组件的使用方法,这个组件依赖于Tooltip(提示框)组件. 一. 加载方式//class 加载方式<input id="email" class="easyui-validatebox"data-options="required:true,validType:'email'" />//JS 加载调用$('#email').validatebox({required

java界面编程(9) ------ 列表框

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 列表框和JComboBox组合框明显不同,这不仅仅是体现在外观上.当激活JComboBox组合框时,会出现下拉列表:而JList总是在屏幕上占据固定行的空间,大小也不会改变.如果要得到列表框中被选中的项目,只需调用getSelectValues(),它可以产生一个字符串数组,里面是被选中的项目名称. 另外,JList组件也允许多重选择,要是按住ctrl键,连续在多个项目上单击,

第一百一十节,jQuery EasyUI,SearchBox(搜索框)组件

jQuery EasyUI,SearchBox(搜索框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 SearchBox(搜索框)组件的使用方法,这个组件依赖于 MenuButton(按钮)组件. 一.加载方式

搜索框组件

搜索框组件1 当数据量很大时,keyup时不断地向服务器请求新的的数据,不断渲染搜搜结果. 代码实现: function onKeyUpcbfn_table(input){ var _input = input.value; if (searchCount === 0) { searchCount = 1; WT.Tool.ajax({apiName:'/symbol/get_symbol_name',param:{search:_input},cbFn:{ onSuccess:function