【Delphi】使用 TPrototypeBindSource 和 LiveBindings 设计器示例

news2024/9/22 10:16:02

本教程展示了如何使用 LiveBindings Designer 和 TPrototypeBindSource 可视化地创建控件之间的 LiveBindings,以便快速开发只需很少或无需源代码的应用程序。

注意:

        TPrototypeBindSource 可用于为项目中的 LiveBindings 生成样本数据。在应用程序原型化之后,配置真实数据源,以便在 LiveBindings 设计中看到新数据源字段。使用 LiveBindings 设计器将所有控件和属性连接到新数据源。当控件或属性连接到新数据源时,与原型绑定源的连接会自动移除。

第一步 创建项目

创建一个 FMX 项目

  1. TPrototypeBindSource 组件拖放到表单设计器上。
  2. 在 “工具调板 ”中找到一个 TBindNavigator 组件并将其拖放到窗体上。
  3. TColorListBoxTRectangle TEdit 控件也执行同样的操作。

在本教程中,您将学习如何创建一个应用程序,使用多种方法(浏览带有颜色的随机数据集、直接键入颜色 ID 或从列表中选择颜色)更改矩形的填充颜色。

在表单中放置组件后,表单应如下图所示:

第二步 增加字段

右键单击 TPrototypeBindSource 组件,选择 Add Field... .命令:

在Add Field 对话框中,选择 AlphaColors,将颜色字段添加到对象绑定范围:

步骤 3:创建 LiveBindings

如果 LiveBindings Designer 尚未打开,请启动它(View | LiveBindings Designer)。

开始时,绑定图应与下图类似,没有连接线,因此也没有绑定:

现在单击 LiveBindings Designer 中 Rectangle1 块上的三个点,然后在 “可绑定成员 ”对话框中选择 Fill.Color 属性。单击 “确定”:

此时,只需创建绑定:

  • 将 PrototypeBindSource1 对象的 AlphaColor1 成员绑定到 ColorListBox1 对象的 Color 成员。
  • 将 PrototypeBindSource1 对象的 AlphaColor1 成员绑定到 Edit1 对象的 Text 成员。
  • 将 PrototypeBindSource1 对象的 AlphaColor1 成员绑定到 Rectangle1 对象的 Fill.Color 成员。
  • 将 BindObjectScope1 对象的 * 成员绑定到 BindNavigator1 对象的 * 成员。

结果

运行程序,通过以下方式使用应用程序:

  • 从绑定导航器更改颜色。数据源(TPrototypeBindSource)有一组随机颜色,将用于填充矩形、更新编辑框,或者如果颜色 ID 与列表中的现有颜色匹配,则更新颜色列表框。
  • 从颜色列表框中更改颜色。
  • 在编辑框中输入颜色 ID(例如,尝试 4292613180,它应该会变成红色)。
  • 在编辑框中输入颜色 ID,或从颜色列表框中选择颜色,然后按绑定导航器上的 “应用 ”将颜色存储到数据源中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公私域互通下的新商机探索:链动2+1模式、AI智能名片与S2B2C商城小程序的融合应用

摘要:在数字化时代,公私域流量的有效融合已成为企业获取持续增长动力的关键。本文旨在探讨如何通过链动21模式、AI智能名片以及S2B2C商城小程序源码的综合运用,实现公私域流量的高效互通,进而为门店创造巨大商机。通过分析这些工具…

前后端跨域问题及其在ThinkPHP中的解决方案

在现代Web开发中,前后端分离的架构越来越普遍,但这也带来了跨域问题。跨域指的是在一个域下的网页试图请求另一个域的资源,浏览器出于安全考虑会限制这种行为。本文将探讨如何在ThinkPHP中解决跨域问题。 #### 1. 什么是跨域? 跨…

C++初阶学习——模版进阶

1. 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成…

不同编程语言的互相调用

C语言与Python 步骤&#xff1a; 编写C代码 (hello_c.c): #include <stdio.h>void printHello(const char *name) {printf("Hello, %s!\n", name); }编译C代码为共享库: gcc -shared -o hello_c.so hello_c.c编写Python代码 (hello_c_py.py): import ctypes# …

【数据库】常用数据库简介

目录 &#x1f354; 常用的关系型数据库 &#x1f354; Mysql简介 &#x1f354; SQL 简介 SQL语句的分类 SQL 写法 SQL 常用的数据类型 &#x1f354; DDL语句 对数据库的操作 对数据表的操作 &#x1f354; DML语句 插入数据 insert into 修改数据 update 删除数…

<<编码>> 第 16 章 存储器组织(3)--3-8 译码器 示例电路

3-8 译码器 info::操作说明 “写入” 开关先断开(Q 为低电平, 表示不写入) S2-S1-S0 设置一个二进制数, 选中 Q0~Q7 其中一个作为 Q 的输出 “数据输入” 端置入要保存的数(0或1) 闭合 “写入” 开关, 对应的一位锁存器中的 W 为高电平, 表示可以写入, “数据输入” 的值最终…

Java安全(加密+HTTPS+WEB安全)

Java加密 单向加密 接收一段明文&#xff0c;然后以一种不可逆的方式将它转换成一段密文 ①、MD5&#xff0c;将无论多长的数据最后编码128位数据&#xff0c;常用文件校验、密码加密、散列数据 byte[] data ...;//明文数据 MessageDigest md5 MessageDigest.getInstance…

大数据新视界 --大数据大厂之Kubernetes与大数据:容器化部署的最佳实践

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【软件资料集】系统培训方案(Word项目参考2024)

1. 培训概述 2. 培训目的 3. 培训对象及要求 3.1. 培训对象 3.2. 培训人员基本要求 4. 培训方式 5. 培训内容 6. 培训讲师 7. 培训教材 8. 培训质量保证 8.1. 用户培训确认报告 8.2. 培训疑问解答 获取方式&#xff1a;本文末个人名片直接获取。 软件资料清单列表部分文档清单&…

opencv实战项目二十四:棋盘格相机内参标定

文章目录 前言一、简介&#xff1a;二、使用步骤2.1制作标定板2.2 拍摄不同角度的标定板2.3计算棋盘格角点并优化2.4计算相机参数 三、整体代码实现&#xff1a; 前言 在数字图像处理和计算机视觉领域&#xff0c;相机标定是一个至关重要的步骤。它为相机提供了一个准确的数学…

Tomcat 乱码问题彻底解决

1. 终端乱码问题 找到 tomcat 安装目录下的 conf ---> logging.properties .修改ConsoleHandler.endcoding GBK &#xff08;如果在idea中设置了UTF-8字符集&#xff0c;这里就不需要修改&#xff09; 2. CMD命令窗口设置编码 参考&#xff1a;WIN10的cmd查看编码方式&am…

Nature|PathChat:病理学多模态生成性AI助手的创新与应用|顶刊精析·24-09-21

小罗碎碎念 今日顶刊&#xff1a;Nature 这篇文章今年6月就发表了&#xff0c;当时我分析的时候&#xff0c;还是预印本&#xff0c;没有排版。今天第一篇推文介绍的是Faisal Mahmood &#xff0c;所以又把这篇文章拉出来详细分析一下。 作者角色作者姓名单位名称单位英文名称第…

PMP--二模--解题--61-70

文章目录 4.整合管理61、 [单选] 为解决具有挑战性的客户请求&#xff0c;启动了一个项目。该项目必须在短时间内交付。项目经理应该怎么做来尽可能提高项目的成功率&#xff1f; 14.敏捷--MVP--最小可行产品--使用最小可行产品获得客户尽早地反馈。完整性和交付是主观的。团队…

构建高可用和高防御力的云服务架构第二部分:SLB负载均衡(2/5)

在现代云服务中&#xff0c;负载均衡&#xff08;Load Balancing&#xff09;是一种关键技术&#xff0c;用于优化资源利用、最小化响应时间、提高系统的可伸缩性和可靠性。负载均衡器位于客户端和服务器之间&#xff0c;根据预设的策略将请求分发到多个服务器上&#xff0c;以…

华为HarmonyOS地图服务 4 - 通过“地图相机“控制地图的可见区域

场景介绍 华为地图的移动是通过模拟相机移动的方式实现的,您可以通过改变相机位置,来控制地图的可见区域,效果如图所示。 本章节将向您介绍相机的各个属性与含义,并移动相机。 相机移动前 接口…

基于lnmp搭建wordpress

一、案例目标 &#xff08;1&#xff09;了解LNMP环境的组成。 &#xff08;2&#xff09;了解LNMP环境的部署与安装。 &#xff08;2&#xff09;了解WordPress应用的部署与使用。 二、节点规划 IP 主机名 节点 192.168.200.20 lnmp lnmp服务节点 三、案例实施 LN…

基于微信小程序的购物系统+php(lw+演示+源码+运行)

基于微信小程序的购物系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于微信小程序的购物系统的开发全过程。通过分析基于微信小程序的购物系统管理的不足&#xff0c;创建了一个计算机管理基于微信小…

1.Spring-容器-注册

一、Bean和获取Bean &#xff08;1&#xff09;创建IoC容器&#xff1a; SpringApplication.run(类名.class, args); ConfigurableApplicationContext ioc SpringApplication.run(Spring01IocApplication.class, args); &#xff08;2&#xff09;将对象注册到IoC容器中&am…

[Vue] 从零开始使用 Vite 创建 Vue 项目

&#x1f4da; 一、安装 Node.js Node.js 是一个运行 JavaScript 代码的 JavaScript 运行时&#xff0c;它允许我们在服务器端运行 JavaScript 代码。以下是安装 Node.js 的步骤&#xff1a; &#x1f310; 访问 Node.js 国内网站&#xff1a;https://nodejs.cn/ &#x1f4…

【如何在 Windows 10 主机上通过 VMware 安装 Windows 11 虚拟机,并共享主机网络】

环境说明 主机操作系统&#xff1a;Windows 10虚拟机操作系统&#xff1a;Windows 11虚拟机软件&#xff1a;VMware 步骤一&#xff1a;确保主机&#xff08;Windows 10&#xff09;网络连接正常 启动网络加速软件&#xff1a;在主机上启动软件&#xff0c;确保主机可以正常访…