网站建设制作收费视频号推广方法
TListBox功能比较全,对于选择项,有“两种”模式,一种就是ListItem选中(界面上就是焦点和颜色变化),可以无,单选和多选。另一种是通过CheckBox来选择ListItem的选中。默认下,ShowCheckBoxs := True; ListItem左边就显示CheckBox,默认是多选的。
需要一种类似VCL的RadioGroup单选列表框。TMS有一个,但是太难看了。
如果Item项是固定的,可以直接在TRectangle里放置TRadioBox来实现,界面还灵活。
但是如果Item项是动态的,用拼凑的实现就不灵活了。
直接用TListBox实现,也简单:
procedure TForm1.lsb1ChangeCheck(Sender: TObject);
varLIndex: Integer;
beginlsb1.OnChangeCheck := nil;trylsb1.BeginUpdate;tryLIndex := lsb1.ItemIndex;for var I := 0 to lsb1.Items.Count-1 dobeginlsb1.ListItems[I].IsChecked := False;end;lsb1.ListItems[LIndex].IsChecked := True;finallylsb1.EndUpdate;end;finallylsb1.OnChangeCheck := lsb1ChangeCheck;end;
end;
如果不考虑界面的CheckBox的方框,这样就可以了。
如果要把默认的CheckBox样式改成RadioBox样式,可以修改ListItem的Style,把默认的CheckBox的方框图换成RadioBox的圆形图,然后设置:
DefaultItemStyles.ItemStyle := 'ListBoxItemStyle1'
界面看起来顺眼多了。
实际上,通过DefaultItemStyles.ItemStyle可以改变ListItem的许多样式,比如字体,颜色等等。