当前位置:首页 » 安卓系统 » delphiifandroid

delphiifandroid

发布时间: 2023-05-17 16:00:40

① delphi if 语句

错在你不了解运算符的优先级。
逻辑运算符and的优先级比关系运算符>、<>的优先级要高穗段,所以报错。
解决办法是加括号,代码猜厅誉如下:
if (Length(Trim(meIDCard.Text))>0)
and (Length(Trim(mePhone.Text))>0)
and ((edtScore1.Text) <> '')
and ((edtScore2.Text )<>'伏孙') then
特别地,如果遇到类似的情况,不管什么代码,你都加上括号,可以防错,就是有点笨啦!

② delphi的IF嵌套怎么处理

{两种不知道你要哪种}
{1}
If条件1thenbegin
if条件2thenA;
纯雹if条件3thenB;
亏前if条件4thenC;
if条件5thenD;
end;
做空帆
{2}
If条件1thenbegin
if条件2thenAelse
if条件3thenBelse
if条件4thenCelse
if条件5thenD;
end;

③ 如何在Delphi XE7下写一个Android APP

步骤1、移动互联网的兴起让桌面开发黯然失色,例如Delphi就是其中一例。很多DelphiFans在迷茫与痛苦中俳徊了一段时间,终于向java拥抱,正是这个拥抱带来了快乐与痛苦。Borland的兴衰史伤透了这群人,Borland转行了,但DelphiXE7的到来,又让我们看到了希望。让我们用顺手的工具开发我们想要的移动APP就是那么容易的事。步骤2、第一步,安装DelphiXE7的一些注意事项可参考我的前一篇文章。这里我们安装好DelphiXE7后直接从程序栏中启动。步骤3、第二步,在菜单工具栏中单击[File]-->[New]-->[Other]菜单,将进入新建项目的对话框。步骤4、第三步,选择[Multi-DeviceProjects]选项,然后选中[Header/Footer]选燃嫌仿项,最后单击[OK]按钮。步骤5、第四步,在弹出的文件夹对话框中选择项目文件保存的路径,然后单定[确定]按钮进行。步骤6、第五步,好了,这时新建了一个项目,里面有一个窗体文件。窗体有一个标题栏,文字内容我们自己来修改。步骤7、第六步,我们把设计的图形界观的样式选择为[Android]模式,这样比较直观。步骤8、第七步,这时需要我们选择一下Android手机的屏幕大小,这对分辨率是有影响,请根据开发的目标环境而定。在这里我们选择的是主流5寸屏。步骤9、第八步,我们放进两个Label控件、两个Text控件、两件Button控件,这一步不多讲,从右下角的标签栏拖出就是。然后命名方式根据开发项目组的习惯吧。步骤10、第九步,这时还有一步要做,就是选择移动程序调试的模拟器或真实手机设备。步骤11、第十步,按F9或单击小三角形图标进行编译与运行移动应用程序,在最下方可以看到编译信息及部署信息。步骤12、第十一步,部署者岁需要一到两分钟皮纤,我们到Android模拟器看看执行的效果图吧!步骤13、到这里为止,我们就得到了一个空壳的移动应用程序,尽管什么代码都没有写,整个框架就出来

④ delphi if 用法

1、IF.. THEN
if 1=1 then
begin//这里手洞耐写执行语句
end;
2、IF..ELSE
if 1=1 then
begin
..............
end //记住这里不能加分号。
else
begin
.....................
end; //这里需要加分号
3、IF...ELSE IF..
if 1=1 then
begin
..............
end /毕春/记住这颤纳里不能加分号。
else IF 1=2
THEN
begin
.....................
end; //这里需要加分号。

⑤ 请问delphi android如何调用so文件

so本质就是个动态链接库
用gcc编译就能生链基成了

delphi xe里
if not Tfile.Exists(TPath.GetDocumentsPath+'/libserial_port.so') then
begin
showmessage(TPath.GetDocumentsPath+'/libserial_port.so not found');
end;
Handle1:=LoadLibrary(pchar(TPath.GetDocumentsPath+'/libserial_port.so'));//动态装入库
if Handle1<>0 then //找到库
begin
fun1:=GetProcAddress(Handle1,'openport');
//念庆搜索库函数Add,并返回函数指针
if Assigned(fun1) then
begin
。棚高谨。。。

至于上面的GetDocumentsPath 或者别的目录也可以 参看TPath的说明
和so文件存放目录有关系

另外值得注意的事传递的字符串 xe中是双字节的。

⑥ Delphi. Android需要用那些控件 实现这个界面!初次接触安卓如能提供代码深表感谢!

这个界面主要几个Fragment加上一个框架,ImageView,TextView,钊林IT分享

⑦ Delphi 控制打开设置Android WIFI热点

1·申请权限:
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE
android.permission.WAKE_LOCK
2·获取WifiManager
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
3·开启、关闭橘皮wifi
if (wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(false);
} else {
wifiManager.setWifiEnabled(true);
}
4·注意
如果遇到force-close, 选wait即可, 因为启动wifi需要几孝伍余秒钟, UI如果5妙钟还没反映的话, 系统会给你这个巧滚force close exception

⑧ 如何使Android客户端通过socket与delphi的服务端通讯

andriod代码如下
Button b_send=(Button) findViewById(R.id.send_button);

b_send.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
EditText e_send =(EditText) findViewById(R.id.send_edit);
TextView t_send=(TextView) findViewById(R.id.send_textview);
String mesg=e_send.getText().toString();

try
{
socket=new Socket("168.0.0.205",4321);

PrintWriter out=new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(mesg);
out.close();
}

}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}

delphi代码如下搏和:(瞎腔使磨银衫用的INDY组件)
procere TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
wlm_buff: array[0..255] of Byte;
wlm_char: string[255];
begin
StrCopy(@wlm_buff[0], #0);
if AThread.Connection.Connected then
begin
AThread.Connection.ReadBuffer(wlm_buff, 255);
CopyMemory(@wlm_char, @wlm_buff[0], 255);
Label1.Caption := wlm_char;
end;
end;

⑨ 如何在DelphiXE7下写一个AndroidAPP

开发环境完全不一样

开发语言也不一样,delphi用的闷蠢拆是pasic语言,vb用的是basic语言。

Delphi,是Windows平台下着名的快速应用程序开发工具蚂枣(RapidApplicationDevelopment,简称RAD)。它的前身,即是DOS时代盛行一时的“Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为AndersHejlsberg。经过数年的发展档碰,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的ObjectPascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

VisualBasic是一种由公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

⑩ delphi android 获得锁屏状态

好久没写过博客咯!瞎忙的不得了!整来整去没整出个正经东西,目前自己实现的电子病历已经投入使用,功能还不全面,很弱,质控以及标准化都还没去细整,平时业余的时间一个人整,还真是没那么多的时间与精力去一一的细化!哎,只能慢慢的来吧!年初整了个小米手机,功能上还是不错的,不像某些人说的那么垃圾,总之我用的还是很不错的。各种游戏,神马的跑动起来小意思,流畅狠。今天要整的主题就是手机上的一个功能了,直接给搬运到Delphi上来。那就是手机锁屏之后,开屏的时候,要求咱们输入密码的那个滑动效果输入的控件。想想,整在软件中,用来在客户离开计算机,锁屏的时候还是蛮不错的一种方式,而且一般的图形图像给人的记忆比纯粹的数字文字类的更能让人印象深刻。所以决定将这个东西整到PC上来。
Android的那个锁屏的效果,用过的人应该都知道是个什么效果,也就是横竖各3行,排列成九宫格的效果,然后由用户在上面滑动以此来达到密码输入进而进行解锁和加密的效果。那么首先,俺们可以分析一下,他的具体形成思路,实际上是很简单的,就是一个排列,然后根据滑动产生的内容形成密码来达到解密的目的,那么最主要的就是这个密码和他本身的密码是如何对应解密的,实际上很简单,咱们给他排列的九宫格,都固定好位置
1 2 3
4 5 6
7 8 9
就像这样,排列的给他的位置固定好,然后每一个格子表示一个字符或者说字符串,进而用户滑动的时候,将对应的位置序列进入到一个列表中去保存,然后鼠标放开的时候,那么入队的选择位置进行组合,那么就是对应的密码了,比如
这样的输入就是表示123,如此顺序记录,就可以形成密码了,然后用户进行滑屏录入之后和以前的进行比较就可以知道密码是否正确了,当然我这个组合是相当简单的,如果想要整的复杂,可以给每个顺序位置给定复杂的字符串,这样形成的密码就足够的复杂了!给一般人去看,也是看不明白的。
那么分析清楚了,思路也就简单了,鼠标按下的时候,开始可以滑动形成密码,鼠标按下的第一个点,作为队列的第一个,然后再滑过的就顺序的一一的记录到队列中,鼠标放开的时候,从队列中获取各个顺序位置,组合形成密码然后和原密码比对,判断密码是否正确!源码如下:

{
Delphi实现的类似Android鼠标锁屏效果的控件
作者:不得闲
2012-7-23
}
unit AndroidLockControl;

interface
uses Windows,Classes,SysUtils,Graphics,Controls;

type
TDxLockItem = class
private
r: TRect;
IsEnter: Boolean;
IsChecked: Boolean;
Value: AnsiChar;
FRadio: TPoint;
public
constructor Create;
end;

TInPutPwdEvent = procere(Sender: TObject;InputPwd: string) of object;
TDxAndroidLock = class(TGraphicControl)
private
FItemSpace: Integer;
FRowCount: Integer;
FColCount: Integer;
FItemRaidio: Integer;
Items: TList;
FUseNum: Boolean;
FPassword: string;
IsDown: Boolean;
LastInItem: TDxLockItem;
PwdItems: TList;
FOnInputPwd: TInPutPwdEvent;
procere SetItemSpace(const Value: Integer);
procere SetItemRaidio(const Value: Integer);
procere SetUseNum(const Value: Boolean);
protected
procere paint;override;
procere MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procere MouseMove(Shift: TShiftState; X, Y: Integer); override;
procere MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
procere CalcItemRects;
public
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
property Password: string read FPassword write FPassWord;
published
property ItemSpace: Integer read FItemSpace write SetItemSpace default 10;
property OnInputPwd: TInPutPwdEvent read FOnInputPwd write FOnInputPwd;
property ItemRaidio: Integer read FItemRaidio write SetItemRaidio default 20;
property UseNum: Boolean read FUseNum write SetUseNum;
end;
implementation
uses pngimage;
{$R LockRc.RES}
var
PngIn,PngOut: TPngImage;
{ TDxAndroidLock }

procere TDxAndroidLock.CalcItemRects;
var
i,j: Integer;
p: TPoint;
r: TRect;
item: TDxLockItem;
begin
p.Y := FItemRaidio;
for i := 1 to 3 do
begin
p.X := FItemRaidio;
r.Left := p.X - FItemRaidio;r.Top := p.Y - FItemRaidio;
r.Right := p.x + FItemRaidio;r.Bottom := p.Y + FItemRaidio;
for j := 1 to 3 do
begin
item := Items[3*(i-1)+j - 1];
item.Value := AnsiChar(3*(i-1)+j+48);
item.FRadio := p;
item.r := r;
p.X := p.X + FItemRaidio * 2 + FItemSpace;
r.Left := p.X - FItemRaidio;r.Right := p.X + FItemRaidio;
end;
p.Y := p.Y + FItemRaidio * 2 + FItemSpace;
end;
end;

constructor TDxAndroidLock.create(AOwner: TComponent);
var
i: Integer;
begin
inherited;
LastInItem := nil;
PwdItems := TList.Create;
FPassWord := '';
Items := TList.Create;
FItemSpace := 10;
FRowCount := 3;
FColCount := 3;
FItemRaidio := 20;
Width := FItemRaidio * 2 * 3 + FItemSpace * 2;
Height := FItemRaidio * 2 * 3 + FItemSpace * 2;
for i := 0 to 8 do
begin
Items.Add(TDxLockItem.Create);
end;
CalcItemRects;
end;

destructor TDxAndroidLock.Destroy;
begin
while Items.Count > 0 do
begin
TDxLockItem(Items[Items.Count - 1]).Free;
Items.Delete(Items.Count - 1);
end;
PwdItems.Free;
inherited;
end;

procere TDxAndroidLock.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
IsDown := Button = mbLeft;
if IsDown then
begin
if LastInItem <> nil then
begin
LastInItem.IsChecked := IsDown;
PwdItems.Add(LastInItem);
end;
Invalidate;
end;
end;

procere TDxAndroidLock.MouseMove(Shift: TShiftState; X, Y: Integer);
var
i: Integer;
p: TPoint;
OldInItem,Item: TDxLockItem;
begin
OldInItem := LastInItem;
p := Point(x,y);
LastInItem := nil;
for i := 0 to items.Count - 1 do
begin
item := Items[i];
if PtInRect(Item.r,p) then
begin
LastInItem := Item;
LastInItem.IsEnter := True;
LastInItem.IsChecked := IsDown;
Break;
end;
end;
if LastInItem <> OldInItem then
begin
if OldInItem <> nil then
OldInItem.IsEnter := False;
if IsDown then
begin
if LastInItem <> nil then
begin
PwdItems.Add(LastInItem);
end;
Invalidate;
end;
end;
end;

procere TDxAndroidLock.MouseUp(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
var
i: Integer;
item: TDxLockItem;
Np: string;
begin
IsDown := False;
for i := 0 to items.Count - 1 do
begin
item := Items[i];
item.IsChecked := False;
end;
for i := 0 to PwdItems.Count - 1 do
Np := Np + TDxLockItem(PwdItems[i]).Value;
PwdItems.Clear;
Invalidate;
if Assigned(FOnInputPwd) then
FOnInputPwd(self,Np);
end;

procere DrawLineArrow(canvas: TCanvas; p1, p2: TPoint);
const
l = 6; //箭头长度
w = 4; //箭头宽度
var
slope, angle: Double;
points: array[0..2] of TPoint;
Xl,b: Single;
begin
canvas.Brush.Color := canvas.Pen.Color;
canvas.Brush.Style := bsSolid;
canvas.MoveTo(p1.X,p1.Y);
canvas.LineTo(p2.X,p2.Y);
if (p2.Y <> p1.Y) and (P2.X <> p1.X) then
begin
xl := (P2.Y - p1.Y) / (P2.X - p1.X);
b := p2.Y - xl * p2.X;
p2.X := (p2.X - p1.X) div 2 + p1.X;
p2.Y := Trunc(p2.X * xl + b);
end
else if p2.Y = p1.Y then
p2.X := (p2.X - p1.X) div 2 + p1.X
else P2.Y := (p2.Y - p1.Y) div 2 + p1.Y;
//画箭头
points[0] := Point(p2.x, p2.y);//箭头顶点
if (p2.x - p1.x = 0) then
begin //垂直
if (p2.y - p1.y > 0) then slope := -1 else slope := 1;
points[1] := Point(p2.x - w, p2.y + Trunc(l * slope));
points[2] := Point(p2.x + w, p2.y + Trunc(l * slope));
end else
begin //倾斜
slope := (p2.y - p1.y) / (p2.x - p1.x);
angle := ArcTan(slope);
if (p2.x - p1.x > 0) then angle := angle - PI;
points[1] := Point(p2.x + trunc(l * cos(angle) - w * sin(angle)),
p2.y + trunc(l * sin(angle) + w * cos(angle)));
points[2] := Point(p2.x + Trunc(l * cos(angle) + w * sin(angle)),
p2.y + Trunc(l * sin(angle) - w * cos(angle)));
end;
canvas.Polygon(points);
end;

procere TDxAndroidLock.paint;
var
i: Integer;
item,item1: TDxLockItem;
r: TRect;
begin
if not IsDown then
begin
for i := 0 to Items.Count - 1 do
begin
item := items[i];
r.Left := item.FRadio.X - 5;r.Right := item.FRadio.X + 5;
r.Top := item.FRadio.Y - 5;r.Bottom := item.FRadio.Y + 5;
Canvas.Draw(r.Left,r.Top,pngIn);
end;
end
else
begin
//绘制指向线条
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clGreen;
for i := 0 to PwdItems.Count - 2 do
begin
item := PwdItems[i];
item1 := PwdItems[i + 1];
Canvas.MoveTo(item.FRadio.X,item.FRadio.Y);
Canvas.LineTo(item1.FRadio.X,item1.FRadio.Y);
DrawLineArrow(Canvas,item.FRadio,item1.FRadio);
end;
for i := 0 to Items.Count - 1 do
begin
item := items[i];
if item.IsChecked then
begin
Canvas.Draw(item.r.Left,item.r.Top,pngOut);
end;
r.Left := item.FRadio.X - 5;r.Right := item.FRadio.X + 5;
r.Top := item.FRadio.Y - 5;r.Bottom := item.FRadio.Y + 5;
Canvas.Draw(r.Left,r.Top,pngIn);
end;
end;
end;

procere TDxAndroidLock.SetItemRaidio(const Value: Integer);
begin
FItemRaidio := Value;
end;

procere TDxAndroidLock.SetItemSpace(const Value: Integer);
begin
FItemSpace := Value;
end;

procere TDxAndroidLock.SetUseNum(const Value: Boolean);
begin
FUseNum := Value;
end;

{ TDxLockItem }

constructor TDxLockItem.Create;
begin
r := Rect(0,0,0,0);
IsEnter := False;
end;

initialization
PngIn := TPngImage.Create;
PngIn.LoadFromResourceName(Hinstance,'InnerGra');
PngOut := TPngImage.Create;
PngOut.LoadFromResourceName(Hinstance,'Outer');

finalization
PngIn.Free;
PngOut.Free;
end.

运行之后的效果就是

热点内容
和平精英安卓版怎么调成中文 发布:2025-02-13 22:16:10 浏览:36
混沌起源需要什么配置玩 发布:2025-02-13 22:14:33 浏览:277
vs引入文件夹 发布:2025-02-13 22:05:52 浏览:127
安卓手机如何调无限电量 发布:2025-02-13 22:05:50 浏览:113
phppost长度 发布:2025-02-13 22:05:45 浏览:626
烈火战神源码 发布:2025-02-13 22:04:51 浏览:619
源码猫交易 发布:2025-02-13 22:04:49 浏览:756
广告脚本镜头 发布:2025-02-13 22:04:48 浏览:986
安卓手机哪个app自拍更真实 发布:2025-02-13 22:00:19 浏览:194
安卓系统密码忘了怎么办 发布:2025-02-13 21:49:28 浏览:972