DELPHI中有没有一个控件或别的途径实现象C#中的例如LISTBOX,它的每一项(Iiem)都包含名称(Name)和(Value),一一对应的关系,我可以用Name去得到Value,也可以用Vaule去得到Name, DELPHi中的ListBox好象只有一个值的,只有它有文本(Text),谢谢
解决方案 »
- 请教UDP打洞或者服务器转发问题
- delphi webbrowser1 屏蔽网页自动播放音乐 和 flash的问题
- blog上不了,报.text错误,把string与pchar的问题总结只好发到这里来共享,顺便送分.
- 如何删除数据库字符串中不符合规则的字符
- 面试的一道题!
- Indy的 TIdHTTP组件模拟HTTP表单提交,怎样使用自动脚本配置
- dbexpress如何连接mysql?
- 软件退出后任务栏的图标仍然还在,可我已经卸出图标了,我应怎么办?
- 2月17号,我过了一个最差的生日,心情十分不好,散分
- 控件的tag属性到底有什么用?
- 关于收/发传真的问题!
- Delphi中使用adoQuery+DataSource+DBChart无法生成图表的问题
//试试下面这个,看能帮得上忙么
procedure TForm1.FormCreate(Sender: TObject);
begin
listbox1.Items.AddObject('aaa',TObject(pchar('我是A')));
listbox1.Items.AddObject('bbb',TObject(pchar('我是B')));
end;procedure TForm1.Button3Click(Sender: TObject);
begin
showmessage(pchar(listbox1.Items.Objects[listbox1.ItemIndex]));
end;
===================================================================================
这类问题好解决,如果是数据表,用DBLookUpList,如果用Listbox,写一个记录数组,将部门名称装进Listbox,在其OnChange事件赋编号值即可
DefaultStruct = record //定义的记录
Design: string;
Width: Single; // 尺寸以英寸为单位
Height: Single;
end;const
下面是记录数组
PaperDefault: array[0..0] of DefaultStruct = // 请在这里预定义像纸
((Design: '自定义'; Width: -1; Height: -1)); PhotoDefault: array[0..4] of DefaultStruct = // 请在这里预定义像片
((Design: '5英寸 X 3.5英寸'; Width: 5; Height: 3.5),
(Design: '6英寸 X 4英寸'; Width: 6; Height: 4),
(Design: '3.5英寸 X 5英寸'; Width: 3.5; Height: 5),
(Design: '4英寸 X 6英寸'; Width: 4; Height: 6),
(Design: '自定义'; Width: -1; Height: -1));// PaperCombo和PhotoCombo是2个TComboBoxprocedure TNewForm.FormCreate(Sender: TObject);
var
I: Integer;
begin
PaperUnit := 1;
PhotoUnit := 1;
//用Design初始化ComboBox
PaperCombo.Clear;
for I := Low(PaperDefault) to High(PaperDefault) do
PaperCombo.Items.Add(PaperDefault[I].Design);
PaperCombo.ItemIndex := 0;
PhotoCombo.Clear;
for I := Low(PhotoDefault) to High(PhotoDefault) do
PhotoCombo.Items.Add(PhotoDefault[I].Design);
PhotoCombo.ItemIndex := 1;
PaperComboChange(nil);
PhotoComboChange(nil);
end;
//在Change事件赋值,我这里是直接写道TEdit中
procedure TNewForm.PaperComboChange(Sender: TObject);
var
I: Integer;
begin
I := PaperCombo.ItemIndex;
if PaperDefault[I].Width > 0 then
PWEdit.Text := FloatToStr(PaperDefault[I].Width * PaperUnit);
if PaperDefault[I].Height > 0 then
PHEdit.Text := FloatToStr(PaperDefault[I].Height * PaperUnit);
end;
★★★★★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★