首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Delphi的TDBGrid中查找当前行

在 Delphi 的 TDBGrid 中查找当前行

Delphi 是一款强大的开发工具,用于创建各种应用程序和组件。TDBGrid 是一个流行的数据显示控件,用于在 Delphi 应用程序中显示数据。要在 TDBGrid 中查找当前行,可以使用以下方法:

  1. 使用 TDBGrid 的 RowIndex 属性

TDBGrid 控件有一个名为 RowIndex 的属性,它可以获取或设置当前行的索引。如果当前行有数据,则 RowIndex 属性等于当前行的索引。因此,可以使用这个属性来查找当前行。

例如,以下代码可以获取当前行的索引:

代码语言:delphi
复制
var
  RowIndex: Integer;
begin
  // 获取当前行的索引
  RowIndex := TDBGrid(Sender).RowIndex;
  // 在这里使用 RowIndex 属性
end;
  1. 使用 TDBGrid 的 Data 属性

TDBGrid 控件有一个名为 Data 的属性,它可以获取或设置当前行的数据。如果当前行有数据,则 Data 属性包含一个 TDataSet 控件,该控件包含当前行的数据。因此,可以使用这个属性来查找当前行。

例如,以下代码可以获取当前行的数据:

代码语言:delphi
复制
var
  DataSet: TDataSet;
begin
  // 获取当前行的数据
  DataSet := TDBGrid(Sender).Data;
  // 在这里使用 DataSet 属性
end;
  1. 使用 TDBGrid 的 Columns 属性

TDBGrid 控件有一个名为 Columns 的属性,它可以获取或设置当前行的列。如果当前行有数据,则 Columns 属性包含一个 TDBGridColumns 控件,该控件包含当前行的列。因此,可以使用这个属性来查找当前行。

例如,以下代码可以获取当前行的列:

代码语言:delphi
复制
var
  Columns: TDBGridColumns;
begin
  // 获取当前行的列
  Columns := TDBGrid(Sender).Columns;
  // 在这里使用 Columns 属性
end;

以上三种方法都可以在 TDBGrid 中查找当前行,但使用 Data 属性是最常见的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 手动脱壳VMP

    个人在学习脱VMP加壳的过程中总结的一个步骤。按照这个步骤,包括VMP1.6—2.0在内应该有70%-80%能脱壳。脱不了的也别问我,我也刚开始学习。我还想找人问呢。 想要脱VMP的壳,首要工作当然是要找一个强OD啦!至于是什么版本的OD自己多试验几个,网上大把大把的,一般来说只要加载了你想脱的VMP加壳程序不关闭都可以。 其次就是StrongOD.dll这个插件了,现在用的比较多的就是海风月影,同样网上也是大把大把的。下载回来后复制到你的OD程序所在的文件夹里面的plugin里。StrongOD的设置选项搞不懂就全部打钩。 接下来要做的工作就是搞清楚我们要脱壳的程序编程的语言了,可以用PEID或者fastscanner查看,如果在这里看不到也可以在OD载入以后通过里面的字符串判断了。例如VB的程序会出现MSVB----/VC的会出现MSVC---等等。这些都是程序运行所需要的windows链接文件。 做完这些预备工作接下来当然是用OD载入文件啦。文件载入后在反汇编窗口CTRL+G搜索VirtualProtect(注意V跟P要大写,至于为什么要搜索这个别问我)。一般来说搜索的结果会出现以下的类似: 7C801AE3 E8 75FFFFFF call kernel32.VirtualProtectEx 我们在这里下F2断点。然后F9运行到我们下的这个断点。接下来我们就要注意观察堆栈窗口了。一般来说当我们F9运行到我们上面下的断点的时候在堆栈窗口会出现以下类似: 0012F66C 00401000 |Address = TradeCen.00401000 0012F670 000280D1 |Size = 280D1 (164049.) 0012F674 00000004 |NewProtect = PAGE_READWRITE 0012F678 0012FF98 \pOldProtect = 0012FF98 我们要注意观察的就是在接下来我们F9运行的时候,ADDRESS和NEWPROTECT这两行的变化。按F9-速度别太快,直到NewProtect项变为PAGE_READONLY,这时候程序就释放完毕了。 0012F66C 0042A000 |Address = TradeCen.0042A000 0012F670 000069DE |Size = 69DE (27102.) 0012F674 00000002 |NewProtect = PAGE_READONLY 0012F678 0012FF98 \pOldProtect = 0012FF98 现在可以取消刚才我们下的断点了。接下来就是找OEP了。找OEP的时候我个人的一个经验就是OEP一般就在接近上面的ADDRESS地址的附近。例如上面的地址是0042A000,我一般就在这个基础上减到420000搜索程序的特征段,当然我们也可以直接跳到401000开始搜索。虽然我们搜索的范围比较大,但是因为我们搜索的是命令序列,所以工作量还不是很大。 废话不多说,CTRL+G--上面的地址,然后CTRL+S 查找命令序列。命令序列的内容就是我们用查到的编程语言的特征段。我们可以在特征段里面选择两三句固定不变的命令查找。例如VC++6.0的特征段是 0046C07B U> 55 push ebp 0046C07C 8BEC mov ebp,esp 0046C07E 6A FF push -1 0046C080 68 18064C00 push UltraSna.004C0618 0046C085 68 F8364700 push UltraSna.004736F8 0046C08A 64:A1 00000000 mov eax,dword ptr fs:[0] 0046C090 50 push eax 0046C091 64:8925 00000000 mov dword ptr fs:[0],esp 0046C098 83EC 58 sub esp,58 0046C09B 53 push ebx 0046C09C 56 push esi 0046C09D 57 push edi 我们可以只搜索前三条命令。找到符合前三条命令的,我们在对照接下来的命

    02

    Delphi 语言「建议收藏」

    自1995年Borland公司发布Delphi 1.0以来,Delphi受到很多开发者的亲睐,到1999年发布Delphi5,Delphi以其开发快捷、控件丰富、易于上手等优势吸引了众多的开发者,用户人数达到高潮,一度超越Visual Studio。可是好景不长,在推出Delphi7之后不久,Borland公司也走向衰败,最终被人收购,仅卖了区区7500万美元。 Borland公司倒闭的主要原因是公司财务出现困难,内部矛盾上升。但我认为深层次的原因是产品定价死板且价格过高,记得当时一套Delphi正版要卖68000人民币,而同期的Visual Studio仅卖一万多人民币。过高的定价导致很多人放弃使用正版用盗版。这可能是Borland公司财务困难的主要原因。 一、倒闭后的版本变迁 Borland公司倒闭后,先是到易博龙手中,再转到微软,最后到Embarcadero手中。Borland的最后版本是Delphi7。之后有Delphi2005到Delphi2010,这些版本基本不受Delphi开发者关注,因为D7就用得很好。Embarcadero推出DelphiXE,版本升得很快,目前已经到了XE10.2。并在XE5开始支持手机开发。引起一些Delphi的关注。 二、Delphi目前的用户人群 Borland公司倒闭后,导致很多Delphi爱好者信心产生动摇,加之Jave和.net兴起,许多开发者纷纷转向,放弃Delphi,Delphi用户群体急剧流失。经过若干年后,剩下的Delphi开发者估计只剩下三类人: 1、业余开发者,转向其他开发工具比较困难的人; 2、 Delphi死粉,这类人很少,程序员毕竟要吃饭,不会有人死抱着Delphi失业的,所谓死粉应该还是那些不愿意或有困难转向的人; 3、 手头有大量已有Delphi系统,无法全部重写,只能留在Delphi的人。 年轻的开发人员基本上不进入Delphi,大家都知道Delphi是一个没落的工具,学了也不好找工作,干脆不进来。所以,到目前,Delphi的开发者基本上是老司机。我曾去参加过一次Delphi XE的新版本发布会,参会的人基本上都在30岁以上,这还是好几年前。所以,Delphi可以说是后继无人。 老司机们的年龄最小估计也在35岁左右了,新人不进来,这些人将会在五年十年后淡出编程,大部分人到了这个年龄基本上想混个一官半职,脱离Coding的苦海。所以,Delphi命不长矣。 三、Delphi用户目前的困境 1、硬件及操作系统的升级让用户无法停留的D7上 大多数继续使用Delphi的人基本上仍在使用Delphi6或Delphi7的版本,后者人数较多。Delphi几经转手,继D7之后也出了一些版本,什么Delphi2005.net、2009、2010到现在有XE,XE都到十了。让老司机们无法继续留在D7的原因主要是操作系统及计算机硬件的升级,Delphi7之前的版本在XP 32位系统下运行很好,但到后面的Win7及64位系统就不灵了,加以对多核CPU的支持也没有。XP已经不被微软支持等。这样又迫使部分人离开Delphi,剩下的老司机考虑往XE上寻求升迁老的系统。 2、XE对Windows开发支持不好 从Delphi XE最新的版本取向来看,Embarcadero似乎更专注于移动开发,最新的版本还想走向Linux,而放弃对Windows的支持。D6和D7只专注于Windows上的开发,现在XE要同时支持Windows、Android、IOS和Linux,可谓战线拉得太长。对Windows的开发支持感觉越来越差。要知道现在主要用户是老司机,老司机走老路,EXE+DLL,他们要把老系统迁到新工具下,才能去继续按老方法使用Delphi的新功能,开发Android、IOS和Linux,但XE好象一到DLL就不行,这就不能解决老司机们的后顾之忧,老司机们的后顾之忧就是要把他们的那些旧坛坛罐罐搬到新的XE上面来,没有解决这个之前,他们不会心思去用XE的新功能。 另外,Delphi写Android、IOS和Linux不就是为老司机们准备的吗,新司机谁他娘的还用Delphi这破东西呢,何况Android、IOS和Linux下本身就有很多开发工具都是开源免费的,又正宗又原生态、又成熟又用者众,Delphi真是一点优势都没有,除了让那些只会Delphi又不愿离开Delphi的老司机用,还有谁用呢。 再说,用Delphi开发Android和IOS永远会落在别人屁股后面。因为Android是Google的,IOS是苹果的,这两家都有自己的开发工具,当Android和IOS升级时,人家自己系统立即支持新看到本,而Delphi还要等到Embarcadero是否

    02

    linux之vi,vim命令

    表示当前行的下一行的行尾b按照单词向前移动 字首e按照单词向后移动 字尾w按照单词向后移至次一个字首H移动到屏幕最上 非空白字M移动到屏幕中央 非空白字L移动到屏幕最下 非空白字G移动到文档最后一行gg移动到文档第一行v进入光标模式,配合移动键选中多行Ctrl+f向下翻页Ctrl+b向上翻页u撤销上一次操作``回到上次编辑的位置dw删除这个单词后面的内容dd删除光标当前行dG删除光标后的全部文字d$删除本行光标后面的内容d0删除本行光标前面的内容y复制当前行,会复制换行符yy复制当前行的内容yyp复制当前行到下一行,此复制不会放到剪切板中nyy复制当前开始的 n 行p,P,.粘贴ddp当前行和下一行互换位置J合并行Ctrl+r重复上一次动作Ctrl+z暂停并退出ZZ保存离开xp交换字符后面的交换到前面~更换当前光标位置的大小写,并光标移动到本行右一个位置,直到无法移动

    02
    领券