为什么 memo.Lines 使用 TStrings 而不是 TStringList?

2024-04-23

为什么Memo.Lines使用抽象类TStrings?为什么不使用TStringList反而?

我应该将其转换为TStringList在使用它之前?


TMemo.Lines, TListBox.Items, TComboBox.Items, ETC。 ;全部被声明为TStrings。当心,谈论的是财产!内部创建的类型是TMemoStrings, TListBoxStrings and TComboBoxStrings分别是TStrings并且存储方式各不相同。

为什么?为了互换性和互操作性。所以每TStrings-descendant 具有相同的属性,因此您可以执行以下操作:

Memo1.Lines := ListBox1.Items;

如何使用?嗯,一个TStrings财产就像TMemo.Lines工作得很好。您可以添加、删除、更改、更新和清除属性上的字符串(和对象),因为它在内部是一个TMemoStrings它实现了所有这些交互。声明执行。

但是当你想要任何特殊处理时,例如就像排序哪个TStringList提供,那么您需要帮助。您不能进行类型转换或转换TMemo.Lines to a TStringList,因为它不是一个,而是您需要为这一特殊处理创建一个中间对象:

var
  Temp: TStringList;
begin
  Temp := TStringList.Create;
  try
    Temp.Assign(Memo1.Lines);
    Temp.Sort;
    Memo1.Lines.Assign(Temp);
  finally
    Temp.Free;
  end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 memo.Lines 使用 TStrings 而不是 TStringList? 的相关文章

  • 如何处理第三方库中的警告/提示?

    我们使用 FastReport 来生成报告 事实上 我们为访问源代码付费 我们目前使用的是FastReport的最新稳定版本 虽然它对于我们的生产来说足够稳定 但每当我编译时 我都会看到以下内容 dcc32 Hint fs iinirtti
  • 在 Delphi 中,我的 DLL 中是否必须分配函数的返回 pchar

    我有一个 DLL 其中有一个返回 pchar 的函数 以避免必须使用 borlndmm 我最初所做的是将字符串转换为 pchar 并返回 Result pChar SomeFuncThatReturnsString 但 90 的情况下我都能
  • Delphi RTTI,已发布的属性出现两次

    我想对属性使用属性 但这些属性偶尔会在继承的类中发生更改 这是一个示例代码 非常简化 TBaseClass class TObject private FFoo string published BaseAttirib hello prop
  • 是否有适用于 >= Delphi 2007 的 Delphi 混淆器

    我曾经使用 Pythia 来混淆我的 D6 程序 但 Pythia 似乎不再适用于我的 D2007 这是 Pythia 的链接 自 2007 年初以来没有更新 http www the interweb com serendipity in
  • 在 Delphi 中强制非阻塞临时提示窗口

    我一直在寻找 但找不到解决方案 所以我想也许我应该简单地发布它 这是我想要在 Delphi 2009 中做的事情 在我的应用程序中的某个时刻 我想向用户显示一条消息 这应该是正常的提示窗口 在正常应用程序定义的提示暂停后自动消失 并带有自定
  • 有什么办法可以将2个数组添加到一个数组中吗?

    有没有一种简单通用的方法可以将两个数组添加到一个数组中 在下面的情况下 不可能简单地使用C A B陈述 我想避免每次都为它制定算法 TPerson record Birthday Tdate Name Surname string end
  • 无法通过Delphi替换Word应用程序中的页脚文本

    我正在尝试替换页脚中的文本 我使用以下代码 通过它我可以替换正常内容 正文 但不能替换页脚 页眉中的内容 myWinWordApp CreateOLEObject Word Application myWinWordApp visible
  • vcl组合框并不总是显示它有焦点

    当我从另一个控件切换到组合框时 它会显示文本周围带有虚线的框 但是当我以编程方式将控件设置为活动状态时 它不会显示相同的焦点指示器 这种行为有解决方法吗 我有德尔福XE6 MCVE unit Unit27 interface uses Wi
  • delphi定时器比定时器服务中断例程更快

    大家好 我被要求为某人维护一个基于 Delphi 5 的程序 该程序使用一个计时器对象每 50 毫秒计时一次 并且在每次计时结束时运行单线程代码块 我只是想知道 如果执行这段代码所花费的时间比计时器滴答间隔长 会发生什么 这会很糟糕吗 例如
  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • 错误:使用 Microsoft WebService.dll 通过 Delphi7 规范化 XML

    我正在使用 Delphi7 修改旧项目以添加使用证书和签名 经过一番搜索后我发现XML 规范化函数 https learn microsoft com en us previous versions dd815358 v vs 85 但我无
  • 如何从具有管理员权限的应用程序接收键盘输入到非管理员应用程序?

    我编写了一个应用程序 该应用程序具有覆盖类型的窗口 可以通过热键显示和隐藏该窗口 而另一个应用程序具有焦点 所述另一个应用程序是一个以管理员权限运行的 DirectX 游戏 我已经尝试了 3 种可能的解决方案 以便在其他应用程序中按下我的热
  • 我可以在“Delphi 2007 for Win32”中使用.NET DLL吗?

    是否可以在 Delphi 2007 for Win32 中使用 NET DLL 我尝试以与 ActiveX 组件相同的方式导入 DLL 但它似乎不起作用 组件菜单 gt 导入组件 gt 导入 NET 程序集 是否可能 如果可以 步骤是什么
  • 如何以编程方式安排任务

    如何使用 delphi 7 像 Google updater 一样安排任务 我没有使用注册表 因为它被卡巴斯基防病毒软件检测为误报 我在注册表中作为启动项添加的任何内容都会被检测为特洛伊木马 因此我决定使用任务计划 下面的代码展示了如何删除
  • VCL.位图到 FMX.位图

    我在网上找到了这段代码 但 FMX Bitmap 没有扫描线 是否可以以某种方式将 VCL TBitmap 复制或绘制到 FMX Bitmap IFDEF MSWINDOWS type TBitmap FMX Types TBitmap T
  • 如何仅在调试模式下激活 ReportMemoryLeaksOnShutdown?

    我需要激活ReportMemoryLeaksOnShutdown报告应用程序内存泄漏的功能 但仅限于调试模式 当 Delphi IDE 运行时 我怎样才能做到这一点 如果您的意思是使用调试构建配置 D2007 编译的 调试模式 则您将定义
  • Delphi线程死锁

    我有时会在销毁某些线程时遇到死锁问题 我尝试过调试该问题 但在 IDE 中调试时似乎从未存在死锁 可能是因为 IDE 中的事件速度较低 问题 当应用程序启动时 主线程会创建多个线程 线程始终处于活动状态并与主线程同步 完全没有问题 当应用程
  • Delphi TImageList 位图更改

    我正在使用 Delphi XE2 Update 3 Update 4 与我们的一些第 3 方组件不兼容 因此我们尚未更新 我在我的应用程序中使用 TImageList 我注意到很多时候当它从源视图切换到表单视图 F12 时 突然之前未修改的
  • Delphi - 自XE8以来如何正确注册图形类?

    我正在编写一个 Delphi 包 它提供了一个新的自定义 TGraphic 对象 允许读取 VCL 组件 如 TImage 中的新图像格式 我最初使用 RAD Studio XE7 开发了这个包 并且运行良好 然而 我最近迁移到了较新的 R
  • TDictionary 上的 GetItem 由链接器消除

    我正在使用一个TDictionary of

随机推荐

  • 如何更改 apache Spark Worker 每个节点的内存

    我正在配置 Apache Spark 集群 当我运行具有 1 个主服务器和 3 个从服务器的集群时 我在主监视器页面上看到以下内容 Memory 2 0 GB 512 0 MB Used 2 0 GB 512 0 MB Used 6 0 G
  • 动画图像的饱和度

    是否可以随着时间的推移对图像 例如 png 的饱和度进行动画处理 例如从灰度到全彩 另外如果我可以使用插值器 我已经看到了 EffectFactory 和 ColorMatrix 类 但我无法将它们与动画 过渡结合起来 例如 应用灰度饱和度
  • 仅复制和粘贴可见单元格

    我需要复制一列可见单元格并粘贴到下一列 我找不到有效的宏 我尝试了一下 但它只复制了一些数字 这是代码 Sub TryMe Sheet1 Range A1 A100 SpecialCells xlCellTypeVisible Copy D
  • 何时在模态视图控制器上设置父/呈现视图控制器?

    我正在展示一个模态视图控制器 在该模态视图控制器中viewDidLoad 我似乎找不到任何对父级 VC 的引用 parentViewController presentingViewController等等 如果尚未设置 我该如何获得对它的
  • 如何知道用户是否在设置中禁用或删除工作配置文件?

    我正在尝试查看工作配置文件更新时设备状态是否更新disabled or deleted在客户端通过设置 在客户端进行更改 禁用和删除后 statusenterprise devices get API 返回的仍然是ACTIVE 有没有办法知
  • 为什么我不能在 Java 8 lambda 表达式中引发异常? [复制]

    这个问题在这里已经有答案了 我升级到 Java 8 并尝试用新的 lamdba 表达式替换通过 Map 的简单迭代 该循环搜索空值 如果找到则抛出异常 旧的 Java 7 代码如下所示 for Map Entry
  • 将导航栏切换按钮向右对齐

    我正在尝试 Bootstrap 4 更具体地说是导航栏菜单 有没有办法让小导航栏切换按钮对齐到页面的右侧 而不是让它浮动到徽标旁边的左侧 这是我当前的代码 media min width 992px navbar nav li a line
  • GAE 中的拉取队列是否表现出一致的 FIFO 行为?

    App Engine 中的推送队列通常是先进先出队列 https developers google com appengine docs java taskqueue overview push The Rate of Task Exec
  • SQL 日期转换结果为“无效的数字格式模型参数”。

    我必须select一些数据来自Oracle 11g数据库 但我似乎不明白为什么以下select查询失败 SELECT INFO ID INFO DETAIL IMPORTANT FLG DELETE FLG CREATE TIME DISP
  • OpenCL:在内核中手动引发异常

    是否可以在 OpenCL 中手动引发异常 仅用于调试目的 我的代码中有一个非常奇怪的错误 当我计算两个双精度值并将它们相加时 主机报告 CL OUT OF RESOURCE 但是 如果我不添加这两个值 主机不会报告任何错误 OpenCL 不
  • 如何使用下面定义的类?

    class A public B b class B public A a 我不能在 A 类 B b 中写入 因为 B 类定义如下 有什么办法让它发挥作用吗 thanks 这不可能 您需要在其中一个类中使用指针或引用 class B for
  • Sql 异常:管道的另一端没有进程

    我无法从 C 代码访问我的 sql 服务器连接 我收到此错误 Sql 异常 管道的另一端没有进程 这是我的 app config 中的连接字符串
  • 如何在JavaFX中使用Node类的intersect()方法?

    JavaFX Node 类提供了两种相交方法 intersects Bounds localBounds and intersects double localX double localY double localWidth double
  • XSLT 和临时文档

    我正在尝试处理一个 xml 文件 该文件有几个不同的状态组 例如
  • 以角度实现 canActivate auth 防护

    我有一个带有此函数的服务 它会在令牌有效或无效时返回 true 或 false loggedIn return this http get http localhost 3000 users validateToken map res gt
  • C# 中的字符串加密和解密? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 C 中加密和解密字符串 编辑 2013 年 10 月 虽然我随着时间的推移编辑了这个答案以解决缺点 但请参阅jbtule 的回
  • 使用自定义视图填充 ListFragments?

    以前 我可以将布局扩展为 ListView 的自定义视图层次结构 但我不知道如何对 listFragment 执行相同的操作 假设我有一个 item list 布局 其中有一个 ImageView 和 2 个文本视图 我想将其膨胀以在我的
  • Symfony 身份验证 - 无法通过生产中的登录页面

    我已经在本地开发服务器上设置了 Symfony 身份验证 它在生产和开发环境中都完美运行 今天我注册了一个域进行测试并将我的代码推送到 AWS EC2 服务器 我可以毫无问题地访问登录页面但一旦我尝试登录 我就会直接重定向回登录页面 没有任
  • 添加后收集所有非未定义值

    我对伊莎贝尔有以下补充 function proj add real real bit real real bit real real bit where proj add x1 y1 l x2 y2 j add x1 y1 x2 y2 l
  • 为什么 memo.Lines 使用 TStrings 而不是 TStringList?

    为什么Memo Lines使用抽象类TStrings 为什么不使用TStringList反而 我应该将其转换为TStringList在使用它之前 TMemo Lines TListBox Items TComboBox Items ETC