Delphi cxComboBox 添加多个值并选择后返回相关值

news/2024/10/5 20:26:07/文章来源:https://www.cnblogs.com/liessay/p/18274270
创建表
CREATE TABLE [dbo].[Products]([Code] [nvarchar](20) NOT NULL,[Name] [nvarchar](100) NULL,[Price] [decimal](5, 2) NULL,[Quantity] [int] NULL,[Amount] [decimal](5, 2) NULL
)

创建测试数据

INSERT INTO Products (Code, Name, Price, Quantity, Amount) VALUES
('P001', 'Laptop', 1200.00, 50, 60000.00),
('P002', 'Smartphone', 800.00, 100, 80000.00),
('P003', 'Headphones', 50.00, 200, 10000.00),
('P004', 'Keyboard', 30.00, 150, 4500.00),
('P005', 'Mouse', 15.00, 300, 4500.00),
('P006', 'Monitor', 300.00, 80, 24000.00),
('P007', 'Printer', 150.00, 40, 6000.00),
('P008', 'External Hard Drive', 100.00, 120, 12000.00),
('P009', 'USB Flash Drive', 20.00, 250, 5000.00),
('P010', 'Wireless Router', 80.00, 90, 7200.00),
('P011', 'Tablet', 400.00, 70, 28000.00),
('P012', 'Gaming Console', 350.00, 45, 15750.00),
('P013', 'Camera', 600.00, 30, 18000.00),
('P014', 'Smart Watch', 200.00, 100, 20000.00),
('P015', 'Fitness Tracker', 80.00, 150, 12000.00),
('P016', 'Power Bank', 40.00, 200, 8000.00),
('P017', 'Bluetooth Speaker', 60.00, 120, 7200.00),
('P018', 'Drone', 1000.00, 20, 20000.00),
('P019', '3D Printer', 1500.00, 10, 15000.00),
('P020', 'Virtual Reality Headset', 800.00, 15, 12000.00);

定义记录类型 TProductInfo 和一个指向 TProductInfo 记录的指针类型 PProductInfo

typePProductInfo = ^TProductInfo;TProductInfo = recordCode: string;Name: string;Price: Double;Quantity: Integer;Amount: Double;end;

填充数据到cxCombobox

procedure TForm1.FormShow(Sender: TObject);
varProductInfo: PProductInfo;
begincxComboBox1.Properties.Items.Clear;with FDQuery1 dobeginclose;sql.clear;sql.add('SELECT p.Code, p.Name, p.Price, p.Quantity, p.Amount FROM Products AS p');open;if RecordCount > 0 thenbeginfirst;while not eof dobeginNew(ProductInfo);ProductInfo.Code := FieldByName('Code').AsString;ProductInfo.Name := FieldByName('Name').AsString;ProductInfo.Price := FieldByName('Price').AsFloat;ProductInfo.Quantity := FieldByName('Quantity').AsInteger;ProductInfo.Amount := FieldByName('Amount').AsFloat;cxComboBox1.Properties.Items.AddObject(ProductInfo.Name, TObject(ProductInfo));Next;end;end;end;
end;

选择item后返回需要的内容

procedure TForm1.cxComboBox1PropertiesChange(Sender: TObject);
begincxLabel1.Caption := cxComboBox1.EditValue;cxLabel2.Caption := PProductInfo(cxComboBox1.Properties.Items.Objects[cxComboBox1.ItemIndex]).Code;cxLabel3.Caption := PProductInfo(cxComboBox1.Properties.Items.Objects[cxComboBox1.ItemIndex]).Price.ToString;cxLabel4.Caption := PProductInfo(cxComboBox1.Properties.Items.Objects[cxComboBox1.ItemIndex]).Quantity.ToString;cxLabel5.Caption := PProductInfo(cxComboBox1.Properties.Items.Objects[cxComboBox1.ItemIndex]).Amount.ToString;
end;

效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/733023.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker-compose scale

docker-compose scale 配置https://github.com/docker/compose/issues/5586version: 2.2 services:template:image: tutum/hello-worldscale: 2version: "3" services:pg:image: postgres:latestnetworks:default:aliases:- rdb.test.mepgadmin:image: dpage/pgadmin…

Tiny-NewsRec论文阅读笔记

Tiny-NewsRec: Effective and Efficient PLM-based News Recommendation论文阅读笔记 Abstract 存在的问题: ​ 现有的大多数工作只是根据新闻推荐任务对 PLM 进行微调,这可能会受到预训练语料库和下游新闻文本之间已知领域偏移问题的影响。此外,PLM 通常包含大量参数,计算…

Ros slam 之行自主导航

经过前面三节的铺垫,我们只需要再编写一个launch文件启动nav2就可以让fishbot自己动起来了。1.编写launch文件我们将地图、配置文件传递给nav2为我们提供好的launch文件中即可。再一个launch文件中包裹另一个功能包中的luanch文件采用的是IncludeLaunchDescription和PythonLau…

pip install jedi 失败

报错内容: ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: C:\\Users\\Administrator\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-package…

米尔瑞芯微创新设计RK3568全LGA国产核心板,更紧凑可靠

今天,米尔电子发布MYC-LR3568核心板及开发板,核心板基于高性能、低功耗的国产芯片-瑞芯微RK3568。核心板采用LGA 创新设计,可实现100%全国产自主可控。MYC-LR3568系列核心板采用高密度高速电路板设计,在大小为43mm*45mm*3.85mm板卡上集成了RK3568J/RK3568B2、LPDDR4、eMMC、…

k8s 概念

Ref https://www.tigera.io/blog/key-kubernetes-concepts/

ConcurrentHashMap底层原理

一、ConcurrentHashMap底层结构二、ConcurrentHashMap类的成员变量public class ConcurrentHashMap<K, V>extends AbstractMap<K, V>implements ConcurrentMap<K, V>, Serializable {// 数组最大容量private static final int MAXIMUM_CAPACITY = 1 <<…

Compute Shader

Compute Shader 是一种高级功能,用于在 GPU 上执行并行计算任务。它非常适合处理大量数据,执行复杂的数学计算,或在高性能图形处理中使用。 常用于,需要密集的并行多线程计算,CPU不擅长并行计算,丢给GPU去算,然后把结果返回给CPU,或者直接渲染到屏幕上。 需要图形API,…

指数增强策略:如何通过动态调整权重击败沪深300?

哈喽,大家好,我是木头左!今天,将深入探讨一种特定的指数增强策略,这种策略以0.8为初始权重跟踪沪深300中权重大于0.35%的成份股,并根据个股的表现动态调整权重。让一起启航,探索这一策略如何帮助在波动的市场中稳健前行。 策略概述:权重与表现的舞蹈 在传统的指数跟踪策…

IP地址的概念及IP子网划分

十进制与二进制的转换192. 168. 10. 111000000 10101000 00001010 00000001幂27 26 25 24 23 22 21 20128 64 32 16 8 4 2 1位1 1 0 0 0 0 0 0=128+64=192 IP地址的划分网络掩码(Network Mask)IP地址类型 1)网络地址:用于标识一个网络,主机位全0的地址。 2)广播地址:用于…

远程控制软件哪个好用?精选安全远控软件ToDesk

远程控制软件的妙用,对于打工人来说莫过于能快速处理下班后的紧急工作。即使远在千里,也能毫无障碍远控办公电脑,不需要随身携带笔记本,也不用受限于地点。 但市面上远程控制软件良莠不齐,而且有些软件还时不时掉链子,在远控安全方面也有所顾虑,怎样才能火眼金睛找到最适…

旧手机、平板不再吃灰,装上ToDesk秒变办公利器

家里有好久用不到却又不舍得处理的手机、平板怎么办?教你一招,包你高效利用旧设备,轻轻松松为工作、学习、娱乐等方面都赋能! 操作方法很简单,仅需要在以往不用以及当前常用的各个设备中都装上ToDesk远程控制软件便能更实用。通过巧妙利用,它不仅能够帮助用户将旧手机或平…