delphi 2021(恒生电子Delphi要面试几轮)

:暂无数据 2026-07-11 16:20:02 :0

delphi 2021(恒生电子Delphi要面试几轮)

“delphi 2021”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看delphi 2021(恒生电子Delphi要面试几轮)!

本文目录

恒生电子Delphi要面试几轮

恒生电子Delphi要面试3轮。
恒生电子股份有限公司是一家应用软件及整体解决方案的研发的公司,成立于1995年2月,总部位于杭州。2007年,公司英文名称更改为“HundsunTechnologiesInc.”。2010年,恒生收购上海聚源数据服务有限公司,进入金融资讯领域。2021年10月28日,恒生电子公告,2021年第三季度净利亏损3125万元,前三季度净利6.84亿元。
恒生电子股份有人才是公司最大的财富,恒生电子拥有一支超过5000人的高素质专业队伍,其中研发工程人员约占40%,在架构设计、研发、集成、技术支持和服务方面,具备强劲的技术实力和竞争优势。恒生电子是国家规划布局内重点软件企业、国家重点高新技术企业以及国家火炬计划软件产业基地骨干企业,为中国十大自主品牌软件供应商。一直以来,恒生电子拥有业界公认的出色管理和服务,是国内首批通过ISO9001国际质量认证的软件企业。2007年恒生电子通过CMMIL4评估,2008年通过ISO27001认证,目前正积极准备CMMIL5评估。完善的信息安全、产品研发质量控制体系保证了公司服务市场、服务客户的能力。秉承“客户第一”和“以人为本”的企业经营理念,恒生电子一直致力于建立有序、具有自我创新能力的持续发展管理体制和发展模式,立志成为中国领先的卓越软件企业,成为高科技人才圆梦的家园。

delphi中goto的用法

用goto构成的循环,如下:
(注意:标号需要用label先声明才能使用。)

program use_goto;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
i:integer;
label
outer,loop_start;
begin
i := 1;
loop_start:
if (i 》 10)
then
goto outer;
writeln(i);
inc(i);
goto loop_start;
outer:

readln;
end.

运行结果:
1
2
3
4
5
6
7
8
9
10

delphi 取U盘盘符代码

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
x:integer;
i:char;
begin

for i:=’B’ to ’Z’ do //因为A盘是3.5英寸软件 也算是可移动的 ,所以先排除在外
begin
s:=i+’:\’;
x := GetDriveType(pansichar(s));//得到盘的类型
if x=2 then
begin
showmessage(i+’ 盘是可移动磁盘’);
end;
end;
//从B到Z 进行测试,如果是U盘就输出,因为可能有很多u盘 所以并没有在找到第一个就进行跳出
end;
end.

我的做法就是测试所有的A:\ B:\ C:\
测试通过 请在能用之后 给我加分啊 谢谢 我花了1个多小时才搞出来的 查很多资料,然后自己又写。
所查资料:该资料来自葵花宝典

当要知道所选的驱动器属于什么类型时,请看下面的程序
var x:integer;
driver:pchar;
begin
driver:=’f:\’;
x := GetDriveType(driver);
Case x of
2: Label1.Caption := ’该驱动器是可移动驱动器’;
3: Label1.Caption := ’该驱动器是固定驱动器’;
4: Label1.Caption := ’该驱动器是网络驱动器’;
5: Label1.Caption := ’该驱动器是CD-ROM驱动器’;
6: Label1.Caption := ’该驱动器是虚拟驱动器’;
Else Label1.Caption := ’该驱动器无效’;
End;
end;

delphi中locate查找方法

TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据。程序首先必须使用SQL命令从后端数据库中取得数据并且形成结果数据集,然后才使用Locate方法查寻数据。

当使用Locate方法查寻数据时,开发人员可以使用任何的字段条件来查寻,而无须理会这个字段是不是索引字段。当然,当开发人员使用索引字段来查寻数据时,Locate会直接使用索引来帮助查寻,因此速度会非常快速。如果开发人员使用非索引字段查寻数据,那么Locate也将使用目前它知道最好的方式来查寻数据。

此外,Locate方法不只能够查寻一个单一的字段,它同时还能以数个字段的条件来查寻数据。开发人员可以组合数个字段的查寻条件在结果数据集中查寻数据。

由于Locate能够查寻各种不同数据类型的字段,因此Locate方法在设定查寻条件时是以Variant类型的变量来储存查寻数值的。当开发人员要使用多个字段来查寻数据时必须建立一个Variant数组来储存查寻数值。

此外,Locate方法在查寻数据时也能够使用模糊条件标准来寻找特定的数据,例如开发人员可以要求Locate在查寻数据时不分大小写,或是以部分字符串来查寻数据,这样就为开发人员提供了非常大的弹性空间。

下面就是Locate的方法原型:

function Locate(const KeyFields: String; const KeyValues: Variant;

Options: TLocateOptions): Boolean;

Locate方法接受三个参数。第一个参数KeyFields是开发人员要查寻的字段名称。如果开发人员要查寻单一字段,那么只需要直接传入此字段名称。如果要以多个字段条件来查寻,那么便需传入所有的字段名称,并且以分号分隔每一个字段名称。

第二个参数KeyValues是指开发人员欲查寻的条件数值。它的类型是Variant,因为Variant几乎可以代表任何的类型,因此开发人员可以查寻整数、小数、字符串,或是布尔值的条件。同样,如果开发人员只查寻一个条件数值,那么就可以直接在这个参数位置传入。如果是以多个字段条件来查寻,那么开发人员必须建立一个Variant数组,然后在这个数组中的每一个元素中指定条件数值,再传递Variant数组到这个参数中。至于Variant数组则可以使用VarArrayOf方法,或是使用VarArrayCreate方法来建立,在稍后的范例中会有程序代码说明。

Locate方法的最后一个参数TLocateOptions则是让开发人员在查寻字符串字段时,指定以什么标准来查寻数据。开发人员可以指明不分大小写来查寻字符串数据,或是以部分字符串数值来查寻数据。下面就是TLocateOptions的类型定义:

type

TLocateOption = (loCaseInsensitive, loPartialKey);

TLocateOptions = setof TLocateOption;

在使用Locate时,如果使用loCaseInsensitive就代表不分大小写查寻数据;如果使用loPartialKey就代表要以部分字符串来查寻数据。

Locate方法的回传数值是布尔值,它代表Locate方法是否成功找到了要查寻的数据。如果找到,就回传True,否则就回传False。当Locate方法成功地查寻到数据之后,它就会移动目前的记录位置到这笔数据上,否则就会停留在Locate开始查寻之前的记录位置上。

请注意Locate方法查寻数据的结果是一笔数据,因此,如果你想查寻符合条件的一群数据,那么你可以使用稍后将介绍的过滤器(Filter)功能。

现在,让我们使用数个范例来说明如何使用Locate方法。下面的范例程序代码即是以一个字段来查寻数据,它是以数据表的NAME字段来查寻拥有“李维”数值的这笔数据,由于最后一个参数是空集合,因此,这代表NAME字段必须拥有一模一样的“李维”这个数值才算查寻成功。

aSQLClientDataSet.Locate(’NAME’, ’李维’ , );

下面的程序代码则以City和District两个字段来查寻数据,查寻的条件是City字段拥有“台北”数值,而District字段拥有“大安区”数值的数据。

aSQLClientDataSet.Locate(’City;District’, VarArrayOf([’台北,大安区’]),);

下面的程序代码和第一个范例非常相像,只是这个程序代码查寻的是第一笔在NAME字段以“李”数值开头的数据。

aSQLClientDataSet.Locate(’NAME’, ’李’, [loPartialKey]);

最后一个范例则是查寻ID字段中任何以“A12”数值开头的第一笔,而且是不分A大小写的数据。

aSQLClientDataSet.Locate(’ID’, ’A12’, [loCaseInsensitive ,loPartialKey]);

现在就让我们使用Locate方法在范例应用程序中查寻数据。

单字段查寻

首先让我们以单一的字段来展示如何查寻数据,稍后再说明如何以多个字段查寻数据。现在请双击图4-3中的【Locate】按钮,并且在它的事件处理函数中撰写如下的程序代码:

dmSearchData.sqlcdsTest.Locate(’SPECIES_NO’, edtID.Text, [loCaseInsensitive, loPartialKey]);

这行程序代码使用数据模块中的TSimpleDataSet来查寻SPECIES_NO字段中包含用户在edtID这个TEdit控件中输入的数值。现在请执行这个范例应用程序,并且在主窗体右边的TEdit控件中输入数值来查寻数据。例如图4-4便是范例应用程序执行的画面。当我们在TEdit控件中输入90100并且点击【Locate】按钮之后,TSimpleDataSet便会立刻找到并且把目前的记录位置移动到这笔数据之上。

图4-4 Locate找到90100这笔数据

使用Locate方法查寻单一字段的数据是非常简单的,现在再让我们看看如何使用多个字段来查寻数据。

多字段查寻

请在Delphi中建立一个应用程序,并与上面的范例一样建立一个数据模块,并且传入TSQLConnection、TSimpleDataSet,连接到相同的范例数据库CHINESEDEMO.GDB。接着在主窗体中放入如图4-5所示的控件。在主窗体中我们使用了一个TComboBox,在这个TComboBox中将会填入范例数据表所有的字段名称,以便让用户可以自由选择要使用来查寻的字段。

另外,主窗体使用了一个TCheckListBox,它主要是用来储存所有用户输入的查寻条件。当用户在查寻字段中选择了一个字段,然后在查寻数值中输入了欲查寻的数值时,那么就可以点击主窗体中往下箭头的按钮把这个查寻条件加入到TCheckListBox中。当用户输入完所有查寻的条件之后,就可以点击主窗体中的【Locate】按钮以开始查寻数据。此时范例应用程序就会分析TCheckListBox中所有的查寻字段和查寻数值,再调用Locate以多个字段条件来查寻数据。

图4-5 范例应用程序的主窗体

例如图4-6就是这个范例应用程序执行的画面。首先,当范例应用程序执行后,用户便可以在TComboBox中选择欲查寻的字段,接着就可以在查寻数值控件中输入欲查寻的数值,接着点击往下箭头的按钮,加入查寻条件到TCheckListBox中,或是点击往上箭头的按钮,清除某一个查寻条件。

在TCheckListBox中的查寻条件是以:

查寻字段名称\查寻字段数值

为格式储存的,当用户点击了【Locate】按钮之后就会从TCheckListBox中一一地取出查寻条件,并且分析出查寻字段名称以及查寻字段数值,再放入到Locate方法的第一个以及第二个参数中。

图4-6 执行范例应用程序的画面

最后当输入完所有的查寻条件之后,用户就可以点击主窗体中的【Locate】按钮来查寻数据了。例如图4-7便是我们查寻TOPOTYPE字段包含“China”的数值,以及SPECIES_NAME字段以O字母为开头的数值。在点击了【Locate】按钮之后,范例应用程序调用Locate方法并且以多个字段为查寻条件,果然立即找到了这笔数据。

图4-7 以数个字段条件来查寻数据

这个范例应用程序是如何运作的呢?这个范例的应用程序执行了下列的工作:

1. 程序启动时在TComboBox中填入范例数据表所有的字段名称;

2. 点击往下箭头按钮把查寻字段和查寻数值加入到TCheckListBox中,以及点击往上箭头清除查寻条件;

3. 点击【Locate】按钮时从TCheckListBox中取出查寻条件,并且填入Locate方法的参数中,查寻数据。

现在就让我们实现以上的工作。首先在范例应用程序启动时,存取数据模块中TSimpleDataSet的Field对象的FieldName特性值以取得字段名称,再填入TComboBox中:

procedure TfrmMain.FormActivate(Sender: TObject);

var

iField : Integer;

begin

for iField := 0 to dmSearchData.sqlcdsTest.FieldCount - 1 do

begin

cbFields.Items.Add(dmSearchData.sqlcdsTest.Fields[iField].FieldName)

end;

cbFields.ItemIndex := 0;

end;

当点击往下箭头按钮时,取出TComboBox中选择的字段名称,以及查寻数值控件中输入的查寻数值,再检查TCheckListBox中是否已经存在了这个查寻字段,如果没有,就将字段名称加字段数值加入到TCheckListBox中。

此外,当点击往上箭头按钮时,我们就删除TCheckListBox中目前被选择的查寻条件。

procedure TfrmMain.sbtnAddClick(Sender: TObject);

begin

if (not AlreadyInCond(cbFields.Text)) then

begin

clbConditions.Items.Add(cbFields.Text + ’\’ + lblSearchValue.Text);

clbConditions.Checked[clbConditions.Count - 1] := True;

end;

end;

procedure TfrmMain.sbtnDeleteClick(Sender: TObject);

begin

try

clbConditions.Items.Delete(clbConditions.ItemIndex);

except

on Exception do;

end;

end;

最后,当用户点击了主窗体中的【Locate】按钮,范例应用程序就先检查用户是否输入任何的查寻条件。如果有,就调用GetSerchFields从TCheckListBox中取出所有的查寻字段名称,然后调用GetSearchValues取得所有用户输入的查寻数值,最后调用Locate方法来查寻数据。

其中的GetSearchValues会先调用VarArrayCreate方法以建立一个Variant数组,再于这个Variant数组中一一输入用户的查寻数值。

procedure TfrmMain.btnLocateClick(Sender: TObject);

var

sFields : String;

begin

lStart := GetTickCount;

if (CanSearch) then

begin

sFields := GetSerchFields;

dmSearchData.sqlcdsTest.Locate(sFields, GetSearchValues,
[loCaseInsensitive, loPartialKey]);

end;

lEnd := GetTickCount;

Self.Caption := FloatToStr((lEnd - lStart) /1000.0);

end;

function TfrmMain.GetSearchValues : Variant;

var

iCount : Integer;

sCond : String;

begin

Result := VarArrayCreate([0, Self.clbConditions.Items.Count - 1],
varVariant);;

for iCount := 0 to Self.clbConditions.Items.Count - 1 do

begin

sCond := Self.clbConditions.Items[iCount];

Result[iCount] := GetSearchValue(sCond);

end;

end;

function TfrmMain.GetSearchFields: String;

var

iCount : Integer;

sCond : String;

begin

Result := ’’;

for iCount := 0 to Self.clbConditions.Items.Count - 1 do

begin

sCond := Self.clbConditions.Items[iCount];

Result := Result + GetSearchField(sCond) + ’;’;

end;

Delete(Result, Length(Result), 1);

end;

function TfrmMain.CanSearch: Boolean;

begin

Result := Self.clbConditions.Items.Count 》 0;

end;

function TfrmMain.GetSearchField(const sCond: String): String;

var

iPos : Integer;

begin

iPos := Pos(’\’, sCond);

Result := Copy(sCond, 1, iPos - 1);

end;

function TfrmMain.GetSearchValue(const sCond: String): String;

var

iPos : Integer;

begin

iPos := Pos(’\’, sCond);

Result := Copy(sCond, iPos + 1, Length(sCOnd) - iPos);

end;

function TfrmMain.AlreadyInCond(const sField: String): Boolean;

var

iCount : Integer;

sCond : String;

iPos : Integer;

begin

Result := False;

for iCount := 0 to clbConditions.Items.Count - 1 do

begin

sCond := clbConditions.Items[iCount];

iPos := Pos(sField, sCond);

if (iPos 《》 0) then

begin

Result := True;

Break;

end;

end;

end;

上面的范例展示了如何使用Locate方法以多个字段条件来查寻数据。由于Locate方法的第二个参数是Variant类型,因此,我们几乎可以查寻任何类型的字段。Locate方法非常适合在所有数据已经存在于结果数据集中的应用,但是对拥有大量记录的数据表却不见得适合,在稍后的小节中,本章会继续讨论如何使用Locate在大量的数据中查寻数据。

恒生电子Delphi要面试几轮的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于恒生电子Delphi要面试几轮、恒生电子Delphi要面试几轮的信息别忘了在本站进行查找哦。

delphi 2021(恒生电子Delphi要面试几轮)

本文编辑:admin

更多文章:


dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

promote翻译(英语翻译倡导怎么说)

promote翻译(英语翻译倡导怎么说)

其实promote翻译的问题并不复杂,但是又很多的朋友都不太了解英语翻译倡导怎么说,因此呢,今天小编就来为大家分享promote翻译的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 06:30

用手机如何导航?开车用手机导航哪个软件最好

用手机如何导航?开车用手机导航哪个软件最好

今天给各位分享用手机如何导航的知识,其中也会对用手机如何导航进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 06:20

多线程技术有什么用(多线程有什么作用)

多线程技术有什么用(多线程有什么作用)

其实多线程技术有什么用的问题并不复杂,但是又很多的朋友都不太了解多线程有什么作用,因此呢,今天小编就来为大家分享多线程技术有什么用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 05:40

another time(another time和other time的区别)

another time(another time和other time的区别)

大家好,another time相信很多的网友都不是很明白,包括another time和other time的区别也是一样,不过没有关系,接下来就来为大家分享关于another time和another time和other time的区

2026年10月11日 05:00

java开发工具包jdk(JDK是什么意思)

java开发工具包jdk(JDK是什么意思)

其实java开发工具包jdk的问题并不复杂,但是又很多的朋友都不太了解JDK是什么意思,因此呢,今天小编就来为大家分享java开发工具包jdk的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 04:50

最近更新

repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026-10-11 09:00:05 浏览:0
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026-10-11 08:50:04 浏览:0
majority of(the majority of 和 a majority of的区别以及用法例句)
2026-10-11 07:40:02 浏览:0
热门文章

标签列表