當前位置:首頁 » 安卓系統 » 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 18:44:19 瀏覽:72
php房產網 發布:2025-02-13 18:18:06 瀏覽:86
源碼資源吧 發布:2025-02-13 18:14:39 瀏覽:80
java培訓價錢 發布:2025-02-13 17:59:33 瀏覽:975
c語言中變數類型 發布:2025-02-13 17:52:20 瀏覽:259
ftp導出報錯 發布:2025-02-13 17:41:20 瀏覽:998
腳本下載教程 發布:2025-02-13 17:39:06 瀏覽:236
解壓密碼re 發布:2025-02-13 17:39:02 瀏覽:559
linuxdump內存 發布:2025-02-13 17:37:30 瀏覽:58
游戲客戶端源碼 發布:2025-02-13 17:37:19 瀏覽:595